{"version":3,"file":"vendor.d60c781e065e8c99.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP,6EAA6E,OAAO;AACpF;AACA;AACA;AACA;AA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA,oCAAoC,iDAAe;AACnD,iCAAiC,yCAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,sEAAU,sBAAsB,sEAAU;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS,yBAAyB,yEAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4EAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mFAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mFAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;mFAaE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,qDAAqD,mDAAQ;AAC7D,YAAY,6EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,yBAAyB,gDAAK;AAC9B,wBAAwB,gDAAK;AAC7B,sBAAsB,gDAAK;AAC3B,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,6BAA6B,iDAAM;AACnC,oBAAoB,iDAAM;AAC1B,0BAA0B,sDAAW;AACrC,2BAA2B,sDAAW;AACtC,qBAAqB,sDAAW;AAChC,qBAAqB,sDAAW;AAChC,wBAAwB,sDAAW;AACnC,4BAA4B,sDAAW,2CAA2C,sDAAW;AAC7F,0BAA0B,sDAAW,0CAA0C,sDAAW;AAC1F,2BAA2B,sDAAW;AACtC,sBAAsB,uDAAY;AAClC,qBAAqB,uDAAY;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2EAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0EAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;6BAiBE;AACF;AACA;AACA;AACA,YAAY,6EAAmB;AAC/B,YAAY,qDAAU;AACtB;AACA;AACA,uBAAuB,gDAAK;AAC5B,wBAAwB,gDAAK;AAC7B,oBAAoB,gDAAK;AACzB,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,uBAAuB,iDAAM;AAC7B,sBAAsB,0DAAe;AACrC,2BAA2B,sDAAW;AACtC,4BAA4B,sDAAW;AACvC,6BAA6B,sDAAW;AACxC,qBAAqB,sDAAW;AAChC,qBAAqB,sDAAW;AAChC,wBAAwB,sDAAW;AACnC,sBAAsB,sDAAW;AACjC,kBAAkB,sDAAW;AAC7B,2BAA2B,sDAAW;AACtC,2BAA2B,sDAAW;AACtC,8BAA8B,sDAAW;AACzC,sBAAsB,uDAAY;AAClC,sBAAsB,uDAAY;AAClC,uBAAuB,uDAAY;AACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;wNAME;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;mYAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4PAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;gRAqCE;AACF;AACA,mBAAmB,gDAAK;AACxB,wBAAwB,gDAAK;AAC7B,2BAA2B,gDAAK;AAChC,0BAA0B,iDAAM;AAChC,yBAAyB,iDAAM;AAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;uCAKE;AACF;AACA;AACA;AACA,YAAY,qDAAU;AACtB;AACA;AACA,oBAAoB,gDAAK;AACzB,+BAA+B,sDAAW;AAC1C;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4OAKE;AACF;AACA;AACA,YAAY,2DAAgB;AAC5B;AACA;AACA,8BAA8B,gDAAK;AACnC;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;sfAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,sDAAM;AACzE,gDAAgD,+CAAS;AACzD,sBAAsB,sDAAM,kDAAkD,sDAAM;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2CAAK;AACtC;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAAC;AACD;AACA;AACA;AACA;AACA,8BAA8B,yDAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC,wBAAwB,uDAAY;AACpC,yBAAyB,uDAAY;AACrC,yBAAyB,uDAAY;AACrC,8BAA8B,uDAAY;AAC1C,2BAA2B,uDAAY;AACvC,uBAAuB,uDAAY;AACnC,uBAAuB,uDAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0EAAc;AACzD;AACA;AACA,gDAAgD,wEAAY;AAC5D;AACA;AACA;AACA;AACA;AACA,iCAAiC,uEAAW;AAC5C;AACA;AACA,iCAAiC,oEAAQ;AACzC;AACA;AACA,iCAAiC,wEAAY,4CAA4C,0EAAc;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0EAAc,4CAA4C,2EAAe;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sEAAU,gBAAgB,sEAAU;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wKAGE;AACF;AACA;AACA,4CAA4C,iDAAM;AAClD;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,sBAAsB,oEAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iIAmEE;AACF;AACA;AACA;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB,YAAY,uEAAY;AACxB,YAAY,qDAAU;AACtB,YAAY,6EAAmB;AAC/B;AACA;AACA,mBAAmB,gDAAK;AACxB,mBAAmB,gDAAK;AACxB,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,uBAAuB,gDAAK;AAC5B,wBAAwB,gDAAK;AAC7B,mBAAmB,gDAAK;AACxB,0BAA0B,gDAAK;AAC/B,+BAA+B,gDAAK;AACpC,8BAA8B,gDAAK;AACnC,0BAA0B,iDAAM;AAChC,wBAAwB,iDAAM;AAC9B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,mBAAmB,iDAAM;AACzB,oBAAoB,iDAAM;AAC1B,2BAA2B,uDAAY;AACvC,qBAAqB,oDAAS;AAC9B,0BAA0B,oDAAS,8CAA8C,qDAAU;AAC3F,4BAA4B,oDAAS;AACrC,2BAA2B,oDAAS,8BAA8B,2DAAgB;AAClF,wBAAwB,sDAAW;AACnC,4BAA4B,sDAAW,uCAAuC,sDAAW,6CAA6C,sDAAW;AACjJ,kBAAkB,sDAAW;AAC7B,sBAAsB,uDAAY;AAClC,uBAAuB,uDAAY;AACnC,oBAAoB,uDAAY;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;meAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC,sBAAsB,oEAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2CAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mFAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mFAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iIAuDE;AACF;AACA;AACA;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB,YAAY,uEAAY;AACxB,YAAY,qDAAU;AACtB,YAAY,6EAAmB;AAC/B;AACA;AACA,mBAAmB,gDAAK;AACxB,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,sBAAsB,gDAAK;AAC3B,mBAAmB,gDAAK;AACxB,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,wBAAwB,iDAAM;AAC9B,mBAAmB,iDAAM;AACzB,oBAAoB,iDAAM;AAC1B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,sBAAsB,sDAAW;AACjC,4BAA4B,sDAAW,uCAAuC,sDAAW;AACzF,kBAAkB,sDAAW;AAC7B,2BAA2B,uDAAY;AACvC,qBAAqB,oDAAS;AAC9B,yBAAyB,oDAAS;AAClC,4BAA4B,oDAAS;AACrC,wBAAwB,oDAAS,8BAA8B,2DAAgB;AAC/E,sBAAsB,uDAAY;AAClC,uBAAuB,uDAAY;AACnC,oBAAoB,uDAAY;AAChC,wBAAwB,uDAAY;AACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;4eAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oJAyCE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,6EAAmB;AAC/B;AACA;AACA,mBAAmB,gDAAK;AACxB,oBAAoB,gDAAK;AACzB,mBAAmB,gDAAK;AACxB,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,2BAA2B,gDAAK;AAChC,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,qBAAqB,iDAAM;AAC3B,uBAAuB,sDAAW;AAClC,wBAAwB,sDAAW;AACnC,2BAA2B,sDAAW;AACtC,0BAA0B,sDAAW;AACrC,2BAA2B,sDAAW;AACtC,4BAA4B,sDAAW;AACvC,4BAA4B,sDAAW;AACvC,2BAA2B,sDAAW;AACtC,wBAAwB,sDAAW;AACnC,sBAAsB,uDAAY;AAClC,qBAAqB,uDAAY;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;6BAeE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;AACA;AACA,wBAAwB,sDAAW;AACnC,wBAAwB,sDAAW;AACnC,wBAAwB,gDAAK;AAC7B,6BAA6B,iDAAM;AACnC,qBAAqB,iDAAM;AAC3B,oBAAoB,0DAAe;AACnC,qBAAqB,sDAAW;AAChC,uBAAuB,sDAAW;AAClC,sBAAsB,uDAAY;AAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;sYAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;6PAKE;AACF;AACA;AACA;AACA;AACA;AACijB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACz4FjjB;AACA;AACA;AACA;AACuI;AACtF;AACF;AACJ;AACG;AAC9C;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C,6BAA6B,uDAAY;AACzC,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gEAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kYAKE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB;AACA;AACA,yBAAyB,gDAAK;AAC9B,yBAAyB,iDAAM;AAC/B,wBAAwB,iDAAM;AAC9B,2BAA2B,iDAAM;AACjC;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;+WAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;6RAKE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB;AACA;AACA,qBAAqB,gDAAK;AAC1B,oBAAoB,gDAAK;AACzB;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;oPAME;AACF;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2CAAK,CAAC,+CAAS,yBAAyB,+CAAS;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0CAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;2KAGE;AACF;AACA;AACA,YAAY,iDAAM;AAClB;;;2GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA,kBAAkB,yDAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;0VAME;AACF;AACA;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB;AACA;AACA,wBAAwB,gDAAK;AAC7B,qBAAqB,iDAAM;AAC3B;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;0OAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACziBxS;AACA;AACA;AACA;AACyX;AAC5S;AAC2B;AACoS;AACnR;AAClD;AACuG;AAC7F;AACP;AAC3B;AACO;AACtD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,cAAc,kEAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAS;AACxB;AACA;AACA,eAAe,oEAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kEAAO,gCAAgC,kEAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kEAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qEAAU;AACvC,2BAA2B,qEAAU;AACrC,8BAA8B,qEAAU;AACxC,6BAA6B,qEAAU;AACvC,iCAAiC,uEAAY;AAC7C,iCAAiC,uEAAY;AAC7C,oCAAoC,+EAAoB;AACxD,mCAAmC,8EAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uEAAY;AAC3B;AACA;AACA,wCAAwC,uEAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+EAAoB;AAC9C,yBAAyB,8EAAmB;AAC5C;AACA;AACA;AACA,6BAA6B,qEAAU;AACvC;AACA,gDAAgD,qEAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6EAAiB,8BAA8B,6EAAiB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6EAAiB;AACtC,iCAAiC,6EAAiB;AAClD,yCAAyC,6EAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6EAAiB,CAAC,+EAAoB;AAChE,eAAe,sEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6EAAiB;AAChC;AACA;AACA,uBAAuB,+EAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,+EAAoB,2BAA2B,8EAAmB;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,+EAAmB;AAClC;AACA;AACA,eAAe,+EAAmB;AAClC;AACA;AACA,yBAAyB,6EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,mBAAmB,uEAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA;;;;;;;0BAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAQ;AACrC,2BAA2B,oEAAQ;AACnC,8BAA8B,oEAAQ;AACtC,6BAA6B,oEAAQ;AACrC,iCAAiC,qEAAU;AAC3C,iCAAiC,qEAAU;AAC3C,oCAAoC,6EAAiB;AACrD,mCAAmC,4EAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAU;AACzB;AACA;AACA,wCAAwC,qEAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6EAAiB;AAC3C,yBAAyB,4EAAgB;AACzC;AACA;AACA;AACA,6BAA6B,oEAAQ;AACrC;AACA,gDAAgD,oEAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6EAAiB;AAC3C,eAAe,sEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6EAAiB;AACxC;AACA;AACA;AACA;AACA;AACA,kBAAkB,6EAAiB,2BAA2B,4EAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA,eAAe,6EAAiB;AAChC;AACA;AACA,eAAe,6EAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAAU;AAC7B;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA;;;;;;;0BAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kEAAO;AACpC,2BAA2B,oEAAQ;AACnC,8BAA8B,kEAAO;AACrC,6BAA6B,oEAAQ;AACrC,iCAAiC,qEAAS;AAC1C,iCAAiC,qEAAS;AAC1C,oCAAoC,2EAAe;AACnD,mCAAmC,0EAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAS;AACxB;AACA;AACA,wCAAwC,qEAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2EAAe;AAC9C,8BAA8B,kEAAO;AACrC,8BAA8B,0EAAc;AAC5C,6BAA6B,kEAAO;AACpC;AACA;AACA,qBAAqB,qEAAS;AAC9B;AACA;AACA;AACA,6BAA6B,kEAAO;AACpC;AACA,gDAAgD,kEAAO;AACvD,gCAAgC,kEAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAO,0BAA0B,kEAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qEAAS;AAC3D;AACA;AACA;AACA,sBAAsB,kEAAO;AAC7B,iCAAiC,kEAAO;AACxC,0CAA0C,kEAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4EAAgB;AAC/B;AACA;AACA,eAAe,4EAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;;;qKAGE;AACF;AACA;AACA,YAAY,sEAAW;AACvB;;;gIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qEAAS;AACtC,2BAA2B,qEAAS;AACpC,8BAA8B,qEAAS;AACvC,6BAA6B,qEAAS;AACtC,iCAAiC,oEAAQ;AACzC,iCAAiC,oEAAQ;AACzC,oCAAoC,4EAAgB;AACpD,mCAAmC,2EAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAQ;AACvB;AACA;AACA,wCAAwC,oEAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4EAAgB;AAC1C,yBAAyB,2EAAe;AACxC;AACA;AACA;AACA;AACA,6BAA6B,qEAAS;AACtC;AACA,gDAAgD,qEAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sEAAU;AACzC,iCAAiC,sEAAU;AAC3C,mDAAmD,sEAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2EAAe;AAC9B;AACA;AACA,eAAe,2EAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA;;;;kKAGE;AACF;AACA;AACA,YAAY,sEAAW;AACvB;;;gIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;+JAGE;AACF;AACA;AACA,YAAY,mDAAQ;AACpB;;;6GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;0BAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gDAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yDAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,8BAA8B,uDAAY;AAC1C,gCAAgC,uDAAY;AAC5C;AACA,8BAA8B,0CAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oDAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oDAAa,CAAC,yCAAE,SAAS,+CAAQ,IAAI,iDAAuB,QAAQ,oDAAG,uBAAuB,qDAAI,gBAAgB,0DAAS,iBAAiB,oDAAG;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oFAAmB,KAAK,gDAAS,2CAA2C,wCAAK;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;kGAiBE;AACF;AACA;AACA,4CAA4C,iDAAM;AAClD,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,iDAAM;AAClB;AACA;AACA,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B,wBAAwB,gDAAK;AAC7B,wBAAwB,gDAAK;AAC7B,2BAA2B,gDAAK;AAChC,kCAAkC,gDAAK;AACvC,+BAA+B,gDAAK;AACpC,6BAA6B,gDAAK;AAClC,mBAAmB,gDAAK;AACxB,mBAAmB,gDAAK;AACxB,oBAAoB,gDAAK;AACzB,gCAAgC,iDAAM;AACtC,yBAAyB,iDAAM;AAC/B,2BAA2B,iDAAM;AACjC,6BAA6B,sDAAW,wCAAwC,sDAAW;AAC3F,8BAA8B,sDAAW;AACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oEAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;wUAiCE;AACF;AACA;AACA;AACA;AACA,YAAY,sEAAW;AACvB,YAAY,4DAAiB;AAC7B,YAAY,oDAAS;AACrB;AACA;AACA,yBAAyB,gDAAK;AAC9B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,0BAA0B,gDAAK;AAC/B,0BAA0B,gDAAK;AAC/B,0BAA0B,iDAAM;AAChC,yBAAyB,iDAAM;AAC/B,6BAA6B,oDAAS;AACtC,mBAAmB,oDAAS;AAC5B,gCAAgC,sDAAW;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD,+BAA+B,uDAAY;AAC3C,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mQA0DE;AACF;AACA;AACA;AACA,YAAY,4DAAiB;AAC7B,YAAY,sEAAW;AACvB;AACA,YAAY,oDAAS;AACrB;AACA;AACA,8BAA8B,gDAAK;AACnC,oCAAoC,gDAAK;AACzC,qCAAqC,gDAAK;AAC1C,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,oBAAoB,gDAAK;AACzB,yBAAyB,gDAAK;AAC9B,+BAA+B,iDAAM;AACrC,0BAA0B,iDAAM;AAChC,yBAAyB,iDAAM;AAC/B,6BAA6B,oDAAS;AACtC,mBAAmB,oDAAS;AAC5B,gCAAgC,sDAAW;AAC3C,qCAAqC,sDAAW;AAChD,oCAAoC,sDAAW;AAC/C,sCAAsC,sDAAW;AACjD,uCAAuC,sDAAW;AAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wKAGE;AACF;AACA;AACA;AACA;;;wEAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wKAGE;AACF;AACA;AACA;AACA,YAAY,iDAAM;AAClB;;;yIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gMAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;+MAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4MAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kNAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qNAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;8NAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qNAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;8NAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC,0BAA0B,uDAAY;AACtC,oCAAoC,uDAAY;AAChD;AACA;;;;;AAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kEAAO;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,kEAAO;AACrF,wEAAwE,kEAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wDAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAiB;AAC9B,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,0DAAa;AAC1B,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA,aAAa,uEAAU;AACvB,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qEAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD;AACA;AACA;AACA;AACA,wCAAwC,uDAAY;AACpD;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA,uBAAuB,qEAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sDAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oEAAS;AACjD,4BAA4B,kEAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oEAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iEAAsB;AACnC;AACA;AACA;AACA,0CAA0C,2CAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kEAAO;AACtD,2BAA2B,oEAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAS;AACtC,qCAAqC,oEAAS;AAC9C,sCAAsC,oEAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oEAAS;AAChD,qBAAqB,oEAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iEAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oEAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yEAAY,EAAE,4EAAe,EAAE,2EAAc,EAAE,2EAAc;AAC9F;AACA;AACA;AACA;AACA,aAAa,kEAAO;AACpB;AACA;AACA;AACA;AACA,6BAA6B,uEAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uNAwDE;AACF;AACA;AACA;AACA;AACA,YAAY,qDAAU;AACtB;AACA,YAAY,oDAAS;AACrB,YAAY,4DAAiB;AAC7B,YAAY,iDAAM;AAClB,YAAY,mDAAQ;AACpB;AACA;AACA,gDAAgD,mDAAQ;AACxD;AACA;AACA,iBAAiB,gDAAK;AACtB,0BAA0B,gDAAK;AAC/B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,8BAA8B,gDAAK;AACnC,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,yBAAyB,gDAAK;AAC9B,yBAAyB,gDAAK;AAC9B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,yBAAyB,gDAAK,YAAY,sDAAW;AACrD,+BAA+B,iDAAM;AACrC,mCAAmC,iDAAM;AACzC,0BAA0B,iDAAM;AAChC,2BAA2B,uDAAY;AACvC,8BAA8B,gDAAK;AACnC,gCAAgC,uDAAY;AAC5C,mCAAmC,gDAAK;AACxC,+BAA+B,uDAAY;AAC3C,kCAAkC,gDAAK;AACvC,iCAAiC,uDAAY;AAC7C,oCAAoC,gDAAK;AACzC,kCAAkC,uDAAY;AAC9C,qCAAqC,gDAAK;AAC1C,iCAAiC,uDAAY;AAC7C,oCAAoC,gDAAK;AACzC,kCAAkC,uDAAY;AAC9C,qCAAqC,gDAAK;AAC1C,qCAAqC,uDAAY;AACjD,wCAAwC,gDAAK;AAC7C,6BAA6B,oDAAS;AACtC,wBAAwB,oDAAS;AACjC,uBAAuB,sDAAW;AAClC,yBAAyB,sDAAW;AACpC,+BAA+B,sDAAW;AAC1C,2BAA2B,sDAAW,2CAA2C,sDAAW;AAC5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kEAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oEAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAS;AAChC;AACA;AACA;AACA;AACA;AACA,2BAA2B,qEAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oEAAS;AAC9C;AACA;AACA,yCAAyC,0EAAc,CAAC,qEAAS;AACjE;AACA;AACA;AACA;AACA,iCAAiC,sEAAU;AAC3C;AACA,qCAAqC,0EAAc,CAAC,qEAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAS;AAC/B,8BAA8B,oEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,kEAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sDAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oEAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oEAAS;AAC1C,kCAAkC,oEAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oFAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kEAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qEAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2EAAc;AAC5C;AACA;AACA;AACA;AACA,iBAAiB,2EAAc;AAC/B;AACA;AACA,iBAAiB,yEAAY;AAC7B;AACA;AACA,iBAAiB,4EAAe;AAChC;AACA;AACA,iBAAiB,2EAAc;AAC/B;AACA;AACA,iBAAiB,sEAAS;AAC1B;AACA;AACA,iBAAiB,qEAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4QA4EE;AACF;AACA;AACA,YAAY,4DAAiB;AAC7B,YAAY,sEAAW;AACvB,YAAY,oDAAS;AACrB,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB,YAAY,mDAAQ;AACpB,YAAY,8EAAmB;AAC/B,gDAAgD,mDAAQ;AACxD;AACA;AACA,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,2BAA2B,gDAAK;AAChC,uBAAuB,gDAAK;AAC5B,qBAAqB,gDAAK;AAC1B,gCAAgC,gDAAK;AACrC,0BAA0B,gDAAK;AAC/B,oBAAoB,gDAAK;AACzB,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,8BAA8B,gDAAK;AACnC,0BAA0B,gDAAK;AAC/B,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,0BAA0B,iDAAM;AAChC,0BAA0B,iDAAM;AAChC,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,wBAAwB,oDAAS;AACjC,mBAAmB,oDAAS;AAC5B,2BAA2B,sDAAW,uCAAuC,sDAAW;AACxF,4BAA4B,sDAAW;AACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yDAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA,wBAAwB,qEAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6EAAY;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sDAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAS;AACtC,8BAA8B,oEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA,4BAA4B,2EAAc;AAC1C;AACA;AACA,4BAA4B,yEAAY;AACxC;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gDAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY,+BAA+B,6EAAY;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iSAiGE;AACF;AACA;AACA,YAAY,iDAAM;AAClB,YAAY,8EAAmB;AAC/B,YAAY,4DAAiB;AAC7B,YAAY,wEAAY;AACxB,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,mDAAQ;AACpB;AACA;AACA,0CAA0C,mDAAQ,YAAY,iDAAM;AACpE;AACA;AACA,wBAAwB,oDAAS,8BAA8B,2DAAgB;AAC/E,4BAA4B,oDAAS;AACrC,sBAAsB,oDAAS;AAC/B,2BAA2B,uDAAY;AACvC,8BAA8B,gDAAK;AACnC,gCAAgC,uDAAY;AAC5C,mCAAmC,gDAAK;AACxC,+BAA+B,uDAAY;AAC3C,kCAAkC,gDAAK;AACvC,iCAAiC,uDAAY;AAC7C,oCAAoC,gDAAK;AACzC,kCAAkC,uDAAY;AAC9C,qCAAqC,gDAAK;AAC1C,iCAAiC,uDAAY;AAC7C,oCAAoC,gDAAK;AACzC,kCAAkC,uDAAY;AAC9C,qCAAqC,gDAAK;AAC1C,qCAAqC,uDAAY;AACjD,wCAAwC,gDAAK;AAC7C,0BAA0B,gDAAK;AAC/B,yBAAyB,gDAAK;AAC9B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,4BAA4B,gDAAK;AACjC,yBAAyB,gDAAK;AAC9B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,0BAA0B,gDAAK;AAC/B,oBAAoB,gDAAK;AACzB,qBAAqB,gDAAK;AAC1B,gCAAgC,gDAAK;AACrC,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,oBAAoB,gDAAK;AACzB,8BAA8B,gDAAK;AACnC,sCAAsC,gDAAK;AAC3C,yBAAyB,gDAAK;AAC9B,0BAA0B,iDAAM;AAChC,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,mBAAmB,iDAAM;AACzB,oBAAoB,iDAAM;AAC1B,6BAA6B,sDAAW,uCAAuC,sDAAW;AAC1F,4BAA4B,sDAAW;AACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA,wBAAwB,qEAAI;AAC5B;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAS;AAC7B,oBAAoB,oEAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6EAAY;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sDAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA,4BAA4B,yEAAY;AACxC;AACA;AACA,4BAA4B,2EAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAO;AACnB;AACA;AACA;AACA;AACA,qBAAqB,oEAAS;AAC9B;AACA;AACA;AACA,iCAAiC,oEAAS;AAC1C,kCAAkC,oEAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gDAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY,+BAA+B,6EAAY;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ySA8GE;AACF;AACA;AACA,YAAY,iDAAM;AAClB,YAAY,8EAAmB;AAC/B,YAAY,4DAAiB;AAC7B,YAAY,wEAAY;AACxB,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,mDAAQ;AACpB;AACA,YAAY,sEAAW;AACvB,0CAA0C,mDAAQ,YAAY,iDAAM;AACpE;AACA;AACA,wBAAwB,oDAAS,8BAA8B,2DAAgB;AAC/E,4BAA4B,oDAAS;AACrC,sBAAsB,oDAAS;AAC/B,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,qBAAqB,gDAAK;AAC1B,gCAAgC,gDAAK;AACrC,0BAA0B,gDAAK;AAC/B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,2BAA2B,gDAAK;AAChC,wBAAwB,gDAAK;AAC7B,oBAAoB,gDAAK;AACzB,4BAA4B,gDAAK;AACjC,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,oBAAoB,gDAAK;AACzB,8BAA8B,gDAAK;AACnC,oBAAoB,gDAAK;AACzB,0BAA0B,iDAAM;AAChC,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,mBAAmB,iDAAM;AACzB,oBAAoB,iDAAM;AAC1B,6BAA6B,sDAAW,uCAAuC,sDAAW;AAC1F,4BAA4B,sDAAW;AACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oEAAS;AACxC;AACA;AACA;AACA,+BAA+B,oEAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAS;AAC7B,2BAA2B,kEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAG;AACrB;AACA;AACA;AACA;AACA;AACA,uEAAuE,gDAAS;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,6EAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,6EAAY,iCAAiC,6EAAY;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kEAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kEAAO;AAC3C,gDAAgD,6EAAY;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6EAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yEAAY;AACvC,iBAAiB,wEAAW;AAC5B;AACA;AACA,2CAA2C,2EAAc;AACzD;AACA;AACA,2BAA2B,4EAAe;AAC1C;AACA;AACA,2BAA2B,2EAAc;AACzC;AACA;AACA,+FAA+F,uEAAU;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAO;AACnB;AACA;AACA,qBAAqB,oEAAS;AAC9B,8BAA8B,oEAAS;AACvC,6BAA6B,oEAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,kEAAO,CAAC,kEAAO,gBAAgB,kEAAO;AACjG,+BAA+B,oEAAS;AACxC,2DAA2D,kEAAO,CAAC,kEAAO,gBAAgB,kEAAO;AACjG,+BAA+B,oEAAS;AACxC;AACA;AACA;AACA,iDAAiD,kEAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uYAsPE;AACF;AACA;AACA,YAAY,wEAAY;AACxB,YAAY,sEAAW;AACvB,YAAY,4DAAiB;AAC7B;AACA,YAAY,iDAAM;AAClB,YAAY,qDAAU;AACtB,0CAA0C,iDAAM;AAChD,YAAY,8EAAmB;AAC/B;AACA;AACA;AACA,0BAA0B,sDAAW,uCAAuC,sDAAW;AACvF,sBAAsB,oDAAS;AAC/B,oBAAoB,gDAAK;AACzB,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,4BAA4B,gDAAK;AACjC,0BAA0B,gDAAK;AAC/B,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,2BAA2B,gDAAK;AAChC,gCAAgC,gDAAK;AACrC,0BAA0B,gDAAK;AAC/B,oBAAoB,gDAAK;AACzB,0BAA0B,gDAAK;AAC/B,yBAAyB,gDAAK;AAC9B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,8BAA8B,gDAAK;AACnC,sCAAsC,gDAAK;AAC3C,0BAA0B,iDAAM;AAChC,mBAAmB,iDAAM;AACzB,oBAAoB,iDAAM;AAC1B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,yBAAyB,gDAAK;AAC9B,2BAA2B,uDAAY;AACvC,gCAAgC,uDAAY;AAC5C,+BAA+B,uDAAY;AAC3C,iCAAiC,uDAAY;AAC7C,kCAAkC,uDAAY;AAC9C,iCAAiC,uDAAY;AAC7C,kCAAkC,uDAAY;AAC9C,wBAAwB,oDAAS,8BAA8B,2DAAgB;AAC/E,4BAA4B,oDAAS,kCAAkC,sDAAW;AAClF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAS;AACnC,2BAA2B,oEAAS;AACpC;AACA,eAAe,oEAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;+HAwCE;AACF;AACA;AACA;AACA,YAAY,4DAAiB;AAC7B;AACA;AACA,8BAA8B,gDAAK;AACnC,oCAAoC,gDAAK;AACzC,qCAAqC,gDAAK;AAC1C,6BAA6B,gDAAK;AAClC,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,6BAA6B,gDAAK;AAClC,oBAAoB,gDAAK;AACzB,oBAAoB,gDAAK;AACzB,yBAAyB,gDAAK;AAC9B,0BAA0B,iDAAM;AAChC,wBAAwB,iDAAM;AAC9B,wBAAwB,iDAAM;AAC9B,gCAAgC,sDAAW;AAC3C,qCAAqC,sDAAW;AAChD,oCAAoC,sDAAW;AAC/C,sCAAsC,sDAAW;AACjD,uCAAuC,sDAAW;AAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAiB;AAC9B,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,0DAAa;AAC1B,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qEAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C,uBAAuB,qEAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oEAAS;AACjD,4BAA4B,kEAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kEAAO;AACtD,2BAA2B,oEAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oEAAS;AAClC,iCAAiC,oEAAS;AAC1C,kCAAkC,oEAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oEAAS;AAChD,qBAAqB,oEAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iKAsEE;AACF;AACA;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,8EAAmB;AAC/B;AACA,YAAY,oDAAS;AACrB,YAAY,4DAAiB;AAC7B,YAAY,iDAAM;AAClB;AACA;AACA;AACA,iBAAiB,gDAAK;AACtB,0BAA0B,gDAAK;AAC/B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,8BAA8B,gDAAK;AACnC,2CAA2C,gDAAK;AAChD,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,yBAAyB,gDAAK;AAC9B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,yBAAyB,gDAAK;AAC9B,6BAA6B,gDAAK;AAClC,6BAA6B,gDAAK;AAClC,oBAAoB,gDAAK;AACzB,+BAA+B,iDAAM;AACrC,wBAAwB,iDAAM;AAC9B,wBAAwB,iDAAM;AAC9B,0BAA0B,iDAAM;AAChC,2BAA2B,uDAAY;AACvC,8BAA8B,gDAAK;AACnC,gCAAgC,uDAAY;AAC5C,mCAAmC,gDAAK;AACxC,+BAA+B,uDAAY;AAC3C,kCAAkC,gDAAK;AACvC,iCAAiC,uDAAY;AAC7C,oCAAoC,gDAAK;AACzC,kCAAkC,uDAAY;AAC9C,qCAAqC,gDAAK;AAC1C,iCAAiC,uDAAY;AAC7C,oCAAoC,gDAAK;AACzC,kCAAkC,uDAAY;AAC9C,qCAAqC,gDAAK;AAC1C,uBAAuB,oDAAS;AAChC,uBAAuB,sDAAW;AAClC,yBAAyB,sDAAW;AACpC,+BAA+B,sDAAW;AAC1C,2BAA2B,sDAAW,2CAA2C,sDAAW;AAC5F,mCAAmC,sDAAW;AAC9C,yBAAyB,uDAAY;AACrC,0BAA0B,uDAAY;AACtC,+BAA+B,uDAAY;AAC3C,+BAA+B,uDAAY;AAC3C,8BAA8B,uDAAY;AAC1C,0BAA0B,uDAAY;AACtC,sBAAsB,uDAAY;AAClC,oBAAoB,uDAAY;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;sNAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kDAAe;AAClD;AACA;AACA;AACA,gCAAgC,kDAAe;AAC/C;AACA;AACA;AACA;AACA,6BAA6B,kDAAe;AAC5C;AACA;AACA;AACA;AACA,+BAA+B,kDAAe;AAC9C;AACA;AACA;AACA,mCAAmC,kDAAe;AAClD;AACA;AACA;AACA,0BAA0B,kDAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,wBAAwB,qEAAI;AAC5B,yCAAyC,+CAAY;AACrD,sCAAsC,+CAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,gDAAS;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAAK;AAC7C,sBAAsB,uDAAM,uCAAuC,oDAAG;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW,2BAA2B,yEAAY;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gDAAS;AACzC,iCAAiC,gDAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,+CAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gDAAS,qEAAqE,gDAAS;AAChK;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;4HAYE;AACF;AACA;AACA,YAAY,wEAAY;AACxB;AACA,YAAY,iDAAM;AAClB,0CAA0C,mDAAQ,YAAY,iDAAM,SAAS,8DAAG;AAChF;AACA;AACA,wBAAwB,oDAAS,8BAA8B,2DAAgB;AAC/E,8BAA8B,oDAAS;AACvC,8BAA8B,uDAAY;AAC1C,2BAA2B,uDAAY;AACvC,8BAA8B,0DAAe;AAC7C,sBAAsB,gDAAK;AAC3B,qBAAqB,gDAAK;AAC1B,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B,qBAAqB,gDAAK;AAC1B,mBAAmB,iDAAM;AACzB,oBAAoB,iDAAM;AAC1B,qBAAqB,iDAAM;AAC3B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;wHAUE;AACF;AACA,2BAA2B,0DAAe;AAC1C;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAY;AAClD,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gDAAS;AACrB,YAAY,gDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,uCAAuC,2EAAc;AACrD;AACA;AACA;AACA;AACA;AACA,iDAAiD,oEAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,oEAAS;AAC9G;AACA;AACA;AACA;AACA,YAAY,kEAAO;AACnB;AACA;AACA,kCAAkC,oEAAS;AAC3C;AACA;AACA;;;;6XAKE;AACF;AACA;AACA;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,iDAAM;AAClB;AACA;AACA,4BAA4B,gDAAK;AACjC,sCAAsC,gDAAK;AAC3C;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,oEAAS;AACnE;AACA;AACA;AACA;AACA,YAAY,kEAAO;AACnB;AACA;AACA,kCAAkC,oEAAS;AAC3C;AACA;AACA;;;;mYAKE;AACF;AACA;AACA;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,iDAAM;AAClB;AACA;AACA,4BAA4B,gDAAK;AACjC,sCAAsC,gDAAK;AAC3C;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uDAAY;AACpD;AACA;AACA;AACA;AACA,wCAAwC,uDAAY;AACpD,yCAAyC,+CAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kEAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oEAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;maAKE;AACF;AACA;AACA;AACA,YAAY,4DAAiB;AAC7B,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,mDAAmD,mDAAQ;AAC3D;AACA;AACA,4BAA4B,gDAAK;AACjC,6BAA6B,gDAAK;AAClC,6BAA6B,gDAAK;AAClC,mCAAmC,iDAAM;AACzC,mCAAmC,iDAAM;AACzC;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;mUAGE;AACF;AACA;AACA,YAAY,2DAAgB;AAC5B,YAAY,sDAAW;AACvB,YAAY,0DAAe;AAC3B;AACA;AACA,qBAAqB,gDAAK;AAC1B,0BAA0B,gDAAK;AAC/B,2BAA2B,gDAAK;AAChC;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,kEAAO,YAAY,kEAAO;AAC1E;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;2PA0BE;AACF;AACA;AACA;AACA,YAAY,4DAAiB;AAC7B,YAAY,8EAAmB;AAC/B,YAAY,sEAAW;AACvB;AACA;AACA;AACA,yBAAyB,gDAAK;AAC9B,0BAA0B,gDAAK;AAC/B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,0BAA0B,gDAAK;AAC/B,0BAA0B,gDAAK;AAC/B,oBAAoB,iDAAM;AAC1B,gCAAgC,sDAAW;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qKAGE;AACF;AACA;AACA,YAAY,sEAAW;AACvB;;;gIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC;AACA;AACA,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sEAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;qRAkDE;AACF;AACA;AACA;AACA,YAAY,sEAAW;AACvB,YAAY,4DAAiB;AAC7B;AACA,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB;AACA;AACA;AACA,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,0BAA0B,gDAAK;AAC/B,2BAA2B,gDAAK;AAChC,uBAAuB,gDAAK;AAC5B,6BAA6B,gDAAK;AAClC,6BAA6B,gDAAK;AAClC,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,yBAAyB,gDAAK;AAC9B,wBAAwB,gDAAK;AAC7B,0BAA0B,gDAAK;AAC/B,oCAAoC,gDAAK;AACzC,qBAAqB,iDAAM;AAC3B,wBAAwB,iDAAM;AAC9B,wBAAwB,iDAAM;AAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;weAeE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2oBAwBE;AACF;AACA;AACA;AACA;AACA,+BAA+B,4EAAiB;AAChD;;;;oPAAC;AACD;AACA,oBAAoB,gDAAK;AACzB;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;wMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;+XAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6zBA6BE;AACF;AACA;AACA;AACA;AACA,uBAAuB,4EAAiB;AACxC;;;;4SAAC;AACD;AACA,oBAAoB,gDAAK;AACzB,8BAA8B,gDAAK;AACnC,8BAA8B,gDAAK;AACnC;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;iNAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;80BA2BE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;sQAYE;AACF;AACA;AACA;AACA;AACA,gCAAgC,4EAAiB;AACjD;;;;sRAAC;AACD;AACA,wBAAwB,gDAAK;AAC7B,wBAAwB,gDAAK;AAC7B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;gpBAeE;AACF;AACA;AACA;AACA;AACA,iCAAiC,4EAAiB;AAClD;;;;0QAAC;AACD;AACA,oBAAoB,gDAAK;AACzB,qBAAqB,gDAAK;AAC1B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;0MAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA,aAAa,gEAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2UAyBE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uEAAW;AACf,IAAI,yEAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;uSAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oFAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oFAAmB;AAChC;AACA;AACA;AACA;AACA;;;;;;;0BAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kEAAO,wBAAwB,kEAAO;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAO,oBAAoB,kEAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;yJAGE;AACF;AACA;AACA,YAAY,sEAAW;AACvB;;;gIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAO,oBAAoB,kEAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;+JAGE;AACF;AACA;AACA,YAAY,sEAAW;AACvB;;;gIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAO,oBAAoB,kEAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;+JAGE;AACF;AACA;AACA,YAAY,sEAAW;AACvB;;;gIAAE;AACF;AACA;AACA,kBAAkB,oEAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qKAGE;AACF;AACA;AACA,YAAY,sEAAW;AACvB;;;gIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B,mBAAmB,oEAAS;AAC5B;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6DAAY,OAAO,oDAAG,6BAA6B,oDAAG,iCAAiC,oDAAG;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;8QA+BE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,mDAAQ;AACpB;AACA,YAAY,oDAAS;AACrB,YAAY,iDAAM;AAClB;AACA;AACA,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,mBAAmB,gDAAK;AACxB,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,oBAAoB,gDAAK;AACzB,0BAA0B,iDAAM;AAChC,6BAA6B,oDAAS;AACtC,uBAAuB,sDAAW;AAClC,6BAA6B,sDAAW;AACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,oEAAS;AAC3D,aAAa,iEAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oEAAS,eAAe,kEAAO;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2EAAc,EAAE,4EAAe;AAChE;AACA;AACA;AACA,wBAAwB,uEAAU;AAClC;AACA;AACA,6BAA6B,2EAAc,gBAAgB,4EAAe;AAC1E,uCAAuC,2EAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yVAoHE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B,YAAY,4DAAiB;AAC7B,YAAY,qDAAU;AACtB,YAAY,sEAAW;AACvB;AACA,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB,gDAAgD,mDAAQ;AACxD;AACA;AACA,qBAAqB,oDAAS;AAC9B,qBAAqB,oDAAS;AAC9B,kBAAkB,oDAAS;AAC3B,wBAAwB,uDAAY;AACpC,+BAA+B,uDAAY;AAC3C,6BAA6B,sDAAW;AACxC,4BAA4B,sDAAW;AACvC,qBAAqB,gDAAK;AAC1B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,2BAA2B,gDAAK;AAChC,wBAAwB,gDAAK;AAC7B,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,oBAAoB,gDAAK;AACzB,oBAAoB,gDAAK;AACzB,0BAA0B,iDAAM;AAChC,0BAA0B,iDAAM;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA,iCAAiC,4EAAiB;AAClD;;;;wXAAC;AACD;AACA,qBAAqB,gDAAK;AAC1B,0BAA0B,gDAAK;AAC/B,qBAAqB,gDAAK;AAC1B,0BAA0B,gDAAK;AAC/B,kBAAkB,gDAAK;AACvB,uBAAuB,gDAAK;AAC5B,qBAAqB,gDAAK;AAC1B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;0MAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;4MAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qEAAU;AACd,IAAI,uEAAW;AACf;AACA,IAAI,yEAAY;AAChB;AACA,aAAa,gEAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;sbAQE;AACF;AACA;AACA;AACA;AACA,yBAAyB,4EAAiB;AAC1C;;;;4dAAC;AACD;AACA,qBAAqB,gDAAK;AAC1B,sBAAsB,gDAAK;AAC3B,2BAA2B,gDAAK;AAChC,sBAAsB,gDAAK;AAC3B,2BAA2B,gDAAK;AAChC,qBAAqB,gDAAK;AAC1B,0BAA0B,gDAAK;AAC/B,qBAAqB,gDAAK;AAC1B,0BAA0B,gDAAK;AAC/B,oBAAoB,gDAAK;AACzB,kBAAkB,gDAAK;AACvB,uBAAuB,gDAAK;AAC5B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;8MAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gEAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gQAwBE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;+YAME;AACF;AACA;AACA;AACA;AACA;AAC2lE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACn2X3lE;AACA;AACA;AACA;AACiU;AAChP;AACuC;AAChE;AAC6B;AACgC;AACY;AACxE;AACV;AAC/C;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sDAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;yQAcE;AACF;AACA;AACA,YAAY,qDAAU;AACtB;AACA;AACA,sBAAsB,gDAAK;AAC3B,qBAAqB,gDAAK;AAC1B,qBAAqB,iDAAM;AAC3B,mCAAmC,sDAAW;AAC9C,wBAAwB,sDAAW;AACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA,wCAAwC,yDAAc;AACtD;AACA;AACA;AACA;AACA,0CAA0C,6EAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;sMAAC;AACD;AACA;AACA,yCAAyC,iDAAM,SAAS,qEAAW;AACnE,YAAY,wEAAc,uBAAuB,mDAAQ;AACzD,0CAA0C,mDAAQ,YAAY,iDAAM,SAAS,6DAAG;AAChF,YAAY,6EAAmB,uBAAuB,mDAAQ,YAAY,iDAAM;AAChF;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+FAyCE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,6EAAmB,uBAAuB,mDAAQ;AAC9D;AACA;AACA,oBAAoB,iDAAM;AAC1B,iBAAiB,gDAAK;AACtB,yBAAyB,gDAAK;AAC9B,wBAAwB,sDAAW,gDAAgD,sDAAW;AAC9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA2CE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,6EAAmB;AAC/B;AACA;AACA,sBAAsB,gDAAK;AAC3B,4BAA4B,gDAAK;AACjC,iCAAiC,gDAAK;AACtC,oBAAoB,gDAAK;AACzB,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,qBAAqB,gDAAK;AAC1B,wBAAwB,gDAAK;AAC7B,wBAAwB,gDAAK;AAC7B,qBAAqB,iDAAM;AAC3B,oBAAoB,iDAAM;AAC1B,kBAAkB,sDAAW;AAC7B,uBAAuB,sDAAW;AAClC,8BAA8B,uDAAY;AAC1C,2BAA2B,oDAAS;AACpC,0BAA0B,oDAAS;AACnC,iCAAiC,uDAAY;AAC7C,2BAA2B,sDAAW;AACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sDAAM;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;WAAC;AACD;AACA,6BAA6B,oDAAS;AACtC,4BAA4B,oDAAS;AACrC;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;uLAAC;AACD;;;0BAGE;AACF;AACA;AACA,kFAAkF,sDAAW;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2CAAK;AAC5B;AACA,QAAQ,2CAAK,qDAAqD,mDAAG,sEAAsE,sDAAM;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAI;AACtB;AACA;AACA;AACA,QAAQ,sDAAK;AACb;AACA;AACA;AACA,yBAAyB,wDAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sDAAW;AAClD;AACA;AACA;AACA;AACA,gDAAgD,oDAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,sDAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4JAGE;AACF;AACA;AACA,YAAY,mEAAwB;AACpC,yDAAyD,iDAAM;AAC/D;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0DAAS,sBAAsB,oDAAG,0BAA0B,mDAAG;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,yBAAyB,uDAAY;AACrC,0BAA0B,uDAAY;AACtC,+BAA+B,uDAAY;AAC3C,6BAA6B,uDAAY;AACzC,2BAA2B,uDAAY;AACvC,+BAA+B,uDAAY;AAC3C,6BAA6B,uDAAY;AACzC;AACA;AACA,iCAAiC,+CAAY;AAC7C,oCAAoC,+CAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oDAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0DAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oDAAG;AACtC;AACA;AACA;AACA;AACA,gBAAgB,0DAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4EAAc;AACnC;AACA,sBAAsB,oEAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gFAAkB,4BAA4B,gFAAkB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+EAAiB;AAChC;AACA;;;;wKAGE;AACF;AACA;AACA,YAAY,iDAAM;AAClB;;;2GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yCAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2CAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;+CAKE;AACF;AACA;AACA,YAAY,+EAAkB,uBAAuB,+CAAI;AACzD,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB;AACA;AACA;AACA,wBAAwB,gDAAK;AAC7B,wBAAwB,sDAAW;AACnC;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+EAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;6JAYE;AACF;AACA;AACA,YAAY,qDAAU;AACtB;AACA,YAAY,iDAAM;AAClB;AACA;AACA,uBAAuB,gDAAK;AAC5B,wBAAwB,sDAAW,gDAAgD,sDAAW;AAC9F,0BAA0B,sDAAW;AACrC,qBAAqB,uDAAY;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wKAGE;AACF;AACA;AACA;AACA;;;2EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,sCAAsC,+CAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0EAAS;AACzB;AACA;AACA;AACA,YAAY,0EAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ggBA0DE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB;AACA;AACA,YAAY,iDAAM;AAClB,YAAY,6EAAmB;AAC/B;AACA;AACA,iCAAiC,gDAAK;AACtC,oBAAoB,gDAAK;AACzB,wBAAwB,gDAAK;AAC7B,wBAAwB,gDAAK;AAC7B,0BAA0B,gDAAK;AAC/B,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,wBAAwB,gDAAK;AAC7B,oBAAoB,gDAAK;AACzB,qBAAqB,gDAAK;AAC1B,kBAAkB,gDAAK;AACvB,mBAAmB,gDAAK;AACxB,wBAAwB,iDAAM;AAC9B,sBAAsB,iDAAM;AAC5B,0BAA0B,iDAAM;AAChC,wBAAwB,iDAAM;AAC9B,oBAAoB,iDAAM;AAC1B,0BAA0B,iDAAM;AAChC,2BAA2B,iDAAM;AACjC,wBAAwB,iDAAM;AAC9B,yBAAyB,iDAAM;AAC/B,0BAA0B,iDAAM;AAChC,uBAAuB,sDAAW;AAClC,0BAA0B,sDAAW,uCAAuC,sDAAW;AACvF,kBAAkB,sDAAW;AAC7B,2BAA2B,oDAAS;AACpC,8BAA8B,uDAAY;AAC1C,4BAA4B,uDAAY;AACxC,4BAA4B,sDAAW;AACvC,6BAA6B,sDAAW;AACxC,4BAA4B,sDAAW;AACvC,oCAAoC,sDAAW;AAC/C,oCAAoC,sDAAW;AAC/C,iCAAiC,uDAAY;AAC7C,+BAA+B,uDAAY;AAC3C,8BAA8B,uDAAY;AAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA,4CAA4C,oEAAM;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;yFAaE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,oDAAoD,mDAAQ;AAC5D,YAAY,6EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,qBAAqB,gDAAK;AAC1B,yBAAyB,sDAAW;AACpC,sBAAsB,uDAAY;AAClC,sBAAsB,sDAAW;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA,4CAA4C,oEAAM;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;yFAaE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,oDAAoD,mDAAQ;AAC5D,YAAY,6EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,qBAAqB,gDAAK;AAC1B,yBAAyB,sDAAW;AACpC,sBAAsB,uDAAY;AAClC,sBAAsB,sDAAW;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA,yCAAyC,oEAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;yFAaE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,oDAAoD,mDAAQ;AAC5D,YAAY,6EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,qBAAqB,gDAAK;AAC1B,yBAAyB,sDAAW;AACpC,sBAAsB,uDAAY;AAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA,2CAA2C,oEAAM;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;yFAaE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,oDAAoD,mDAAQ;AAC5D,YAAY,6EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,qBAAqB,gDAAK;AAC1B,yBAAyB,sDAAW;AACpC,sBAAsB,uDAAY;AAClC,sBAAsB,sDAAW;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;uLAAC;AACD;;;0BAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2CAAK,uCAAuC,oDAAI;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sDAAW;AAClD;AACA;AACA,+CAA+C,sDAAW;AAC1D;AACA;AACA;AACA;AACA,gDAAgD,oDAAS;AACzD;AACA;AACA;AACA;AACA;AACA,iDAAiD,sDAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4JAGE;AACF;AACA;AACA,YAAY,mEAAwB;AACpC,yDAAyD,iDAAM;AAC/D;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iMAKE;AACF;AACA;AACA,YAAY,2DAAgB;AAC5B;AACA;;;;;;uJAAE;AACF;AACA;AACA;AACA;AACA,uBAAuB,2EAAiB;AACxC;;;;4UAAC;AACD;AACA,yBAAyB,gDAAK;AAC9B,2BAA2B,gDAAK;AAChC,4BAA4B,gDAAK;AACjC,4BAA4B,gDAAK;AACjC;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAcE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;;;;;;;;;;;;;;;uIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;gMAYE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;;;;;;;;;;;;;uIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;yhBAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;oaASE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iMAKE;AACF;AACA;AACA,YAAY,2DAAgB;AAC5B;AACA;;;;;;uJAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;i0BASE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;mMAKE;AACF;AACA;AACA;AACA;AACA;AACkwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjsFlwB;AACA;AACA;AACA;AACqU;AACrN;AAChD;AACmC;AACtB;AACkF;AACrF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACX;AAChB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C,0BAA0B,uDAAY;AACtC,2BAA2B,uDAAY;AACvC,2BAA2B,uDAAY;AACvC,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;6BA8BE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B,YAAY,oDAAS;AACrB;AACA;AACA,iBAAiB,gDAAK;AACtB,qBAAqB,gDAAK;AAC1B,wBAAwB,gDAAK;AAC7B,+BAA+B,gDAAK;AACpC,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,wBAAwB,gDAAK;AAC7B,mBAAmB,gDAAK;AACxB,wBAAwB,gDAAK;AAC7B,4BAA4B,gDAAK;AACjC,0BAA0B,iDAAM;AAChC,qBAAqB,iDAAM;AAC3B,sBAAsB,iDAAM;AAC5B,sBAAsB,iDAAM;AAC5B,yBAAyB,iDAAM;AAC/B,oBAAoB,oDAAS;AAC7B,6BAA6B,sDAAW;AACxC,0BAA0B,gDAAK;AAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gUAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4UAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4UAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;sUAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;oWAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC,4BAA4B,uDAAY;AACxC,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iLAGE;AACF;AACA;AACA;AACA;;;qEAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC,yBAAyB,uDAAY;AACrC,yBAAyB,uDAAY;AACrC,uBAAuB,uDAAY;AACnC,uBAAuB,uDAAY;AACnC,sBAAsB,uDAAY;AAClC,yBAAyB,uDAAY;AACrC,wBAAwB,uDAAY;AACpC,wBAAwB,uDAAY;AACpC,0BAA0B,uDAAY;AACtC,6BAA6B,uDAAY;AACzC,wBAAwB,uDAAY;AACpC,uBAAuB,uDAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wKAGE;AACF;AACA;AACA;AACA;AACA;;;0GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4UAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;oMAKE;AACF;AACA;AACA,YAAY,qDAAU;AACtB;;;;;;+GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA,kCAAkC,2CAAK,qCAAqC,mDAAG;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAS,4CAA4C,yDAAS,OAAO,mDAAG,gCAAgC,mDAAG;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0VAoGE;AACF;AACA;AACA;AACA,YAAY,qDAAU;AACtB;AACA;AACA,YAAY,4DAAiB;AAC7B,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB;AACA;AACA,uBAAuB,gDAAK;AAC5B,sBAAsB,gDAAK;AAC3B,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,iCAAiC,gDAAK;AACtC,mBAAmB,gDAAK;AACxB,iBAAiB,gDAAK;AACtB,2BAA2B,gDAAK;AAChC,gCAAgC,gDAAK;AACrC,sBAAsB,gDAAK;AAC3B,mBAAmB,gDAAK;AACxB,sBAAsB,iDAAM;AAC5B,yBAAyB,iDAAM;AAC/B,oBAAoB,uDAAY;AAChC,sBAAsB,oDAAS;AAC/B,mBAAmB,oDAAS;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAiB;AAC9B;AACA,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0CAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA,oEAAoE,uDAAM;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,2CAAK;AAC3C;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kSAqGE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;AACA,YAAY,uEAAY;AACxB;AACA;AACA;AACA,YAAY,iDAAM;AAClB,YAAY,4DAAiB;AAC7B,YAAY,oDAAS;AACrB,YAAY,qDAAU;AACtB;AACA;AACA,6BAA6B,gDAAK;AAClC,0BAA0B,gDAAK;AAC/B,mBAAmB,gDAAK;AACxB,oBAAoB,gDAAK;AACzB,yBAAyB,gDAAK;AAC9B,0BAA0B,gDAAK;AAC/B,4BAA4B,gDAAK;AACjC,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,0BAA0B,gDAAK;AAC/B,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B,2BAA2B,gDAAK;AAChC,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,0BAA0B,iDAAM;AAChC,2BAA2B,iDAAM;AACjC,mBAAmB,iDAAM;AACzB,oBAAoB,iDAAM;AAC1B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,uBAAuB,uDAAY;AACnC,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC,4BAA4B,uDAAY;AACxC,iCAAiC,uDAAY;AAC7C,wBAAwB,oDAAS,8BAA8B,2DAAgB;AAC/E,4BAA4B,oDAAS;AACrC,wBAAwB,oDAAS;AACjC,0BAA0B,oDAAS;AACnC,4BAA4B,sDAAW,uCAAuC,sDAAW,6CAA6C,sDAAW;AACjJ,wBAAwB,sDAAW;AACnC,yBAAyB,sDAAW;AACpC,kBAAkB,sDAAW;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA,0BAA0B,yDAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAiB;AAC9B;AACA,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mDAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0CAAO;AAC7C,gCAAgC,0CAAO;AACvC,qCAAqC,0CAAO;AAC5C,oCAAoC,0CAAO;AAC3C,wBAAwB,+CAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uDAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mDAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAS,sDAAsD,6DAAY;AAC9G,kEAAkE,mDAAG;AACrE;AACA;AACA;AACA,YAAY,uDAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,mDAAG;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,mDAAG;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2CAAK;AAC5B,6CAA6C,2DAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAAK;AAC3B,kBAAkB,uDAAM;AACxB;AACA;AACA;AACA;AACA,wDAAwD,mDAAG;AAC3D;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAAK,qEAAqE,uDAAM;AACtG,kBAAkB,mDAAG;AACrB;AACA;AACA,YAAY,mDAAG;AACf;AACA;AACA;AACA,0DAA0D,uDAAM,oBAAoB,mDAAG,gCAAgC,mDAAG;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qEAAoB;AACtC;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wVA+GE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B,YAAY,uEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,iDAAM;AAClB,YAAY,4DAAiB;AAC7B,YAAY,oDAAS;AACrB,YAAY,qDAAU;AACtB,0CAA0C,mDAAQ,YAAY,iDAAM;AACpE;AACA;AACA,0BAA0B,gDAAK;AAC/B,0BAA0B,gDAAK;AAC/B,mBAAmB,gDAAK;AACxB,oBAAoB,gDAAK;AACzB,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B,6BAA6B,gDAAK;AAClC,8BAA8B,gDAAK;AACnC,0BAA0B,gDAAK;AAC/B,4BAA4B,gDAAK;AACjC,yBAAyB,gDAAK;AAC9B,wBAAwB,gDAAK;AAC7B,sBAAsB,gDAAK;AAC3B,sBAAsB,gDAAK;AAC3B,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,2BAA2B,gDAAK;AAChC,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,0BAA0B,iDAAM;AAChC,8BAA8B,iDAAM;AACpC,2BAA2B,iDAAM;AACjC,mBAAmB,iDAAM;AACzB,oBAAoB,iDAAM;AAC1B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,uBAAuB,uDAAY;AACnC,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC,4BAA4B,uDAAY;AACxC,iCAAiC,uDAAY;AAC7C,wBAAwB,oDAAS,8BAA8B,2DAAgB;AAC/E,4BAA4B,oDAAS;AACrC,wBAAwB,oDAAS;AACjC,0BAA0B,oDAAS;AACnC,4BAA4B,sDAAW,uCAAuC,sDAAW,yCAAyC,sDAAW;AAC7I,wBAAwB,sDAAW;AACnC,kBAAkB,sDAAW;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;uMAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAiB;AAC9B;AACA,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C,iCAAiC,uDAAY;AAC7C,kCAAkC,uDAAY;AAC9C,kCAAkC,uDAAY;AAC9C,yCAAyC,+CAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mFAAmB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA,2EAA2E,uDAAM,oBAAoB,mDAAG;AACxG;AACA;AACA,uCAAuC,2CAAK,qCAAqC,uDAAM,2DAA2D,mDAAG,iCAAiC,mDAAG;AACzL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,2CAAK,0FAA0F,0DAAS,4DAA4D,0DAAS;AACnN,kBAAkB,uDAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mDAAG;AACrB;AACA;AACA;AACA,iEAAiE,0DAAS,OAAO,+CAAQ,UAAU,qDAAI,KAAK,0DAAS;AACrH;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAAK,0BAA0B,0DAAS,OAAO,+CAAQ,UAAU,qDAAI,KAAK,0DAAS,0DAA0D,mDAAG,6DAA6D,uDAAM;AACnO;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;siBA4JE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B,YAAY,uEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB,YAAY,qDAAU;AACtB,YAAY,4DAAiB;AAC7B,0CAA0C,mDAAQ,YAAY,iDAAM;AACpE;AACA;AACA,0BAA0B,gDAAK;AAC/B,wBAAwB,gDAAK;AAC7B,sBAAsB,gDAAK;AAC3B,mBAAmB,gDAAK;AACxB,oBAAoB,gDAAK;AACzB,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B,4BAA4B,gDAAK;AACjC,yBAAyB,gDAAK;AAC9B,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,2BAA2B,gDAAK;AAChC,uBAAuB,gDAAK;AAC5B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,yBAAyB,gDAAK;AAC9B,oBAAoB,gDAAK;AACzB,6BAA6B,gDAAK;AAClC,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,0BAA0B,iDAAM;AAChC,2BAA2B,iDAAM;AACjC,8BAA8B,iDAAM;AACpC,mBAAmB,iDAAM;AACzB,oBAAoB,iDAAM;AAC1B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,2BAA2B,uDAAY;AACvC,4BAA4B,uDAAY;AACxC,iCAAiC,uDAAY;AAC7C,4BAA4B,uDAAY;AACxC,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC,wBAAwB,oDAAS,8BAA8B,2DAAgB;AAC/E,4BAA4B,oDAAS;AACrC,sBAAsB,oDAAS;AAC/B,0BAA0B,oDAAS;AACnC,4BAA4B,sDAAW,uCAAuC,sDAAW,yCAAyC,sDAAW;AAC7I,kBAAkB,sDAAW;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qNAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gMAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;+MAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAiB;AAC9B;AACA,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mDAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0CAAO;AAC7C,2CAA2C,+CAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uDAAM;AACpD;AACA;AACA,2CAA2C,uDAAM;AACjD,6CAA6C,uDAAM;AACnD,4CAA4C,uDAAM;AAClD,kDAAkD,uDAAM;AACxD,+CAA+C,uDAAM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,mDAAG;AACvE;AACA;AACA;AACA,kCAAkC,2DAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yUAqIE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B,YAAY,uEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,4DAAiB;AAC7B,YAAY,0DAAe;AAC3B,YAAY,oDAAS;AACrB,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB,0CAA0C,mDAAQ,YAAY,iDAAM;AACpE;AACA;AACA,0BAA0B,gDAAK;AAC/B,wBAAwB,gDAAK;AAC7B,sBAAsB,gDAAK;AAC3B,mBAAmB,gDAAK;AACxB,oBAAoB,gDAAK;AACzB,yBAAyB,gDAAK;AAC9B,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,2BAA2B,gDAAK;AAChC,uBAAuB,gDAAK;AAC5B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,4BAA4B,gDAAK;AACjC,yBAAyB,gDAAK;AAC9B,6BAA6B,gDAAK;AAClC,0BAA0B,gDAAK;AAC/B,wBAAwB,gDAAK;AAC7B,0BAA0B,gDAAK;AAC/B,8BAA8B,gDAAK;AACnC,2BAA2B,iDAAM;AACjC,0BAA0B,iDAAM;AAChC,mBAAmB,iDAAM;AACzB,oBAAoB,iDAAM;AAC1B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,wBAAwB,iDAAM;AAC9B,wBAAwB,oDAAS,8BAA8B,2DAAgB;AAC/E,wBAAwB,oDAAS;AACjC,4BAA4B,oDAAS;AACrC,sBAAsB,oDAAS;AAC/B,0BAA0B,oDAAS;AACnC,uBAAuB,uDAAY;AACnC,iCAAiC,uDAAY;AAC7C,4BAA4B,uDAAY;AACxC,iCAAiC,uDAAY;AAC7C,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC,0BAA0B,uDAAY;AACtC,+BAA+B,uDAAY;AAC3C,6BAA6B,uDAAY;AACzC,4BAA4B,sDAAW,uCAAuC,sDAAW,4CAA4C,sDAAW;AAChJ,kBAAkB,sDAAW;AAC7B,2BAA2B,sDAAW;AACtC,4BAA4B,sDAAW;AACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;+QAyCE;AACF;AACA,mBAAmB,gDAAK;AACxB,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,uBAAuB,gDAAK;AAC5B,wBAAwB,gDAAK;AAC7B,iBAAiB,gDAAK;AACtB,wBAAwB,iDAAM;AAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4OAKE;AACF;AACA;AACA,YAAY,2DAAgB;AAC5B;AACA;AACA,8BAA8B,gDAAK;AACnC;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;iGAKE;AACF;AACA;AACA;AACA;AACA;AACA,oBAAoB,sDAAW,mCAAmC,gDAAK;AACvE,qBAAqB,sDAAW,wCAAwC,sDAAW,2CAA2C,gDAAK;AACnI,gCAAgC,gDAAK;AACrC,+BAA+B,sDAAW;AAC1C,gCAAgC,sDAAW;AAC3C,sBAAsB,uDAAY;AAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iVAKE;AACF;AACA;AACA;AACA;AACA;AACA,wBAAwB,gDAAK;AAC7B;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;6RAKE;AACF;AACA;AACA;AACA;AACA;AACA,mBAAmB,gDAAK;AACxB,6BAA6B,gDAAK;AAClC,yBAAyB,gDAAK;AAC9B;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA,uBAAuB,2EAAiB;AACxC;;;;wQAAC;AACD;AACA,yBAAyB,gDAAK;AAC9B,yBAAyB,gDAAK;AAC9B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAgBE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;;;;;;;;;;;;;;;;;uIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;gMAYE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;;;;;;;;;;;;;uIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;0nBAME;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;6hCAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;2RAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;+QAQE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iTAKE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB;AACA;AACA,sBAAsB,gDAAK;AAC3B;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;uXAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;kgBAQE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;oPAKE;AACF;AACA;AACA;AACA;AACA;AACsiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnkOtiC;AACA;AACA;AACA;AAC2K;AACvH;AACyB;;;AACvC;AACS;AACiC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gEAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;mIAAC;AACD;AACA,oBAAoB,gDAAK;AACzB,oBAAoB,gDAAK;AACzB,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,gCAAgC,gDAAK;AACrC,uBAAuB,0DAAe;AACtC;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oDAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kEAAM;AACd;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;mHAcE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,uBAAuB,gDAAK;AAC5B,yBAAyB,gDAAK;AAC9B,0BAA0B,gDAAK;AAC/B,sBAAsB,gDAAK;AAC3B,mBAAmB,gDAAK;AACxB,yBAAyB,gDAAK;AAC9B,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,oBAAoB,gDAAK;AACzB,iCAAiC,gDAAK;AACtC,uCAAuC,gDAAK;AAC5C,sBAAsB,0DAAe;AACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wNAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;0OAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oCAAoC,uDAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4LAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iNAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;mOAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4LAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iNAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kMAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kMAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;8MAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oDAAS;AAC5C;AACA;AACA;AACA,uCAAuC,oDAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;odAAC;AACD;AACA,wBAAwB,gDAAK;AAC7B,0BAA0B,gDAAK;AAC/B,gCAAgC,gDAAK;AACrC,oBAAoB,gDAAK;AACzB,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,yBAAyB,gDAAK;AAC9B,+BAA+B,gDAAK;AACpC,oBAAoB,gDAAK;AACzB,0BAA0B,gDAAK;AAC/B,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,0BAA0B,gDAAK;AAC/B,0BAA0B,gDAAK;AAC/B,8BAA8B,0DAAe;AAC7C,6BAA6B,uDAAY;AACzC,kCAAkC,0DAAe;AACjD;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2CAAK,CAAC,wCAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yDAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;8MAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;8MAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;wLAYE;AACF;AACA;AACA,+CAA+C,mDAAQ,YAAY,+CAAI,YAAY,mDAAQ;AAC3F;AACA;AACA,oBAAoB,gDAAK;AACzB,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,wBAAwB,gDAAK;AAC7B,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,yBAAyB,gDAAK;AAC9B,uBAAuB,gDAAK;AAC5B,uBAAuB,uDAAY;AACnC,kCAAkC,uDAAY;AAC9C,wCAAwC,uDAAY;AACpD,kCAAkC,uDAAY;AAC9C,2BAA2B,uDAAY;AACvC,iCAAiC,uDAAY;AAC7C,iCAAiC,uDAAY;AAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAS;AACrC,gCAAgC,oDAAS;AACzC;AACA;AACA;AACA,gCAAgC,oDAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;4LAYE;AACF;AACA;AACA,+CAA+C,mDAAQ,YAAY,+CAAI,YAAY,mDAAQ;AAC3F;AACA;AACA,uBAAuB,0DAAe;AACtC,2BAA2B,0DAAe;AAC1C,2BAA2B,0DAAe;AAC1C,uBAAuB,gDAAK;AAC5B,qBAAqB,gDAAK;AAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;6LAYE;AACF;AACA;AACA,+CAA+C,mDAAQ,YAAY,+CAAI,YAAY,mDAAQ;AAC3F;AACA;AACA,uBAAuB,0DAAe;AACtC;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;mQAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;AACA;AACA,qBAAqB,gDAAK;AAC1B;;;;;;;;;;;oBAAE;AACF;AACA,+BAA+B,mFAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA,iCAAiC,+CAAS,wBAAwB,yDAAS;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;oLAGE;AACF;AACA;AACA,YAAY,iDAAM;AAClB,YAAY,4DAAiB;AAC7B;;;mLAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,iCAAiC,uDAAY;AAC7C,yBAAyB,uDAAY;AACrC,2BAA2B,uDAAY;AACvC,yBAAyB,uDAAY;AACrC,2BAA2B,uDAAY;AACvC,4BAA4B,uDAAY;AACxC,8BAA8B,uDAAY;AAC1C;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qKAGE;AACF;AACA;AACA;AACA;AACA;;;6GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uDAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;0QAAC;AACD;AACA,2BAA2B,gDAAK;AAChC,2BAA2B,gDAAK;AAChC,iCAAiC,iDAAM;AACvC;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,iCAAiC,0CAAO;AACxC,8DAA8D,0DAAS,gDAAgD,qDAAI;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;sJAGE;AACF;AACA;AACA,YAAY,iDAAM;AAClB;;;2GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4JAGE;AACF;AACA;AACA,0CAA0C,mDAAQ,YAAY,iDAAM;AACpE;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oDAAS;AACvC,+BAA+B,oDAAS;AACxC,iCAAiC,oDAAS;AAC1C,oCAAoC,oDAAS;AAC7C,qCAAqC,oDAAS;AAC9C,wCAAwC,oDAAS;AACjD;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA,qCAAqC,qDAAI;AACzC;AACA;AACA;AACA;;;;gMAGE;AACF;AACA;AACA,YAAY,iDAAM;AAClB;;;2GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;2MAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yDAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;2LAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC,8BAA8B,0CAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC,2BAA2B,uDAAY;AACvC,+BAA+B,uDAAY;AAC3C,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,gBAAgB,wDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;uOAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;AACA;AACA,uBAAuB,gDAAK;AAC5B;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA,iCAAiC,+CAAY;AAC7C,sCAAsC,+CAAY;AAClD,oCAAoC,+CAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAS,oBAAoB,oDAAG;AAC5D;AACA;AACA;AACA,8CAA8C,qEAAoB,6CAA6C,uDAAM,qDAAqD,oDAAG;AAC7K;AACA,0CAA0C,uDAAM;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,+CAAY;AAC1D;AACA;AACA;AACA,4CAA4C,+CAAY;AACxD;AACA;AACA;AACA;AACA;;;;wKAGE;AACF;AACA;AACA,YAAY,iDAAM;AAClB;;;2GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAY;AAClD,8BAA8B,0CAAO;AACrC;AACA,2DAA2D,6DAAY;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0CAAG;AACX,kBAAkB,qDAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;2KAGE;AACF;AACA;AACA,YAAY,wEAAY;AACxB,YAAY,oDAAS;AACrB,YAAY,iDAAM;AAClB;AACA,YAAY,8EAAmB;AAC/B;;;sXAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,+DAAoB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kKAGE;AACF;AACA;AACA,YAAY,oEAAY;AACxB;;;8HAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;0BAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;uWAWE;AACF;AACA;AACA,4CAA4C,mDAAQ,YAAY,iDAAM,mCAAmC,mDAAQ;AACjH,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB;;;;;;;;;;;;;;;;;;;mKAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAO;AACnC;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0EAAc,gBAAgB,2EAAe;AACvF,gBAAgB,wEAAY,gBAAgB,0EAAc;AAC1D;AACA,gBAAgB,uEAAW,gBAAgB,yEAAa;AACxD,gBAAgB,qEAAS,gBAAgB,oEAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2CAAI,cAAc,oDAAG;AACjC,oCAAoC,qDAAI,KAAK,oDAAG;AAChD;AACA,wBAAwB,+CAAY;AACpC;AACA;AACA,gDAAgD,0DAAS;AACzD;AACA,mDAAmD,uDAAM,uCAAuC,0DAAS,oBAAoB,0DAAS;AACtI;AACA,qDAAqD,uDAAM;AAC3D;AACA;AACA;AACA;AACA,sCAAsC,uDAAM,6DAA6D,uDAAM,mDAAmD,0DAAS;AAC3K;AACA;AACA;AACA;AACA;AACA,kDAAkD,uDAAM,0BAA0B,oEAAQ,oCAAoC,4DAAW,8BAA8B,0DAAS;AAChL;AACA,QAAQ,+CAAQ,SAAS,qDAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAc;AAC/B;AACA;AACA,iBAAiB,wEAAY;AAC7B;AACA;AACA,iBAAiB,2EAAe;AAChC;AACA;AACA,iBAAiB,0EAAc;AAC/B;AACA;AACA,iBAAiB,yEAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uEAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qEAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sEAAU;AAC3B,iBAAiB,mEAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,sEAAU;AAC7E,6BAA6B,uEAAW,qBAAqB,mEAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sEAAU;AACvD,4CAA4C,uEAAW;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wKAGE;AACF;AACA;AACA,YAAY,iDAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAiB;AAC7B,YAAY,8EAAmB;AAC/B,qDAAqD,mDAAQ;AAC7D;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gJAGE;AACF;AACA;;;gDAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD,gCAAgC,uDAAY;AAC5C,qCAAqC,uDAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA;AACA;AACA;AACA;;;;;AAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wDAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G,uDAAM;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA,uBAAuB,uDAAY;AACnC;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,0CAA0C,uDAAY;AACtD;AACA;AACA;AACA,sCAAsC,uDAAY;AAClD;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,2BAA2B,oDAAS;AACpC,0BAA0B,oDAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA,6CAA6C,0EAAU;AACvD;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA,YAAY,yEAAS;AACrB,2EAA2E,qDAAI;AAC/E;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB,sCAAsC,qDAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAS;AACtD;AACA;AACA,wBAAwB,sDAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,qDAAI;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wDAAS;AAClC;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2CAAK,sBAAsB,oDAAG;AAC1C;AACA,uCAAuC,oDAAG,iIAAiI,oDAAG;AAC9K;AACA,yCAAyC,oDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAM;AACxB;AACA;AACA;AACA;AACA,qEAAqE,uDAAM,uCAAuC,0DAAS,gDAAgD,qDAAI;AAC/K;AACA;AACA;AACA,uDAAuD,oDAA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kDAAe;AAC3C,4BAA4B,oDAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yDAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C,8BAA8B,uDAAY;AAC1C,gCAAgC,uDAAY;AAC5C;AACA,iCAAiC,oDAAS;AAC1C,8BAA8B,0CAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2CAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAAa,qBAAqB,uEAAW;AAC1E,yCAAyC,yEAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+CAAS,8CAA8C,oDAAG,2BAA2B,uDAAM,qCAAqC,oDAAG;AACtK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uDAAM,kCAAkC,uDAAM;AAClG;AACA;AACA;AACA,YAAY,oDAAG;AACf;AACA,sDAAsD,uDAAM;AAC5D;AACA,sDAAsD,uDAAM;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,qDAAI;AAC5E,eAAe,2CAAK;AACpB,kBAAkB,uDAAM,YAAY,4DAAW;AAC/C,kBAAkB,uDAAM;AACxB,kBAAkB,oDAAG,wCAAwC,uDAAM;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uDAAM,yCAAyC,sDAAK;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2CAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oDAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2YAmGE;AACF;AACA;AACA,4CAA4C,iDAAM;AAClD;AACA;AACA;AACA;AACA,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA,YAAY,4DAAiB;AAC7B;AACA;AACA;AACA;AACA,wBAAwB,sDAAW;AACnC,uBAAuB,sDAAW;AAClC,mBAAmB,gDAAK;AACxB,qBAAqB,gDAAK;AAC1B,oBAAoB,gDAAK;AACzB,wBAAwB,gDAAK;AAC7B,8BAA8B,gDAAK;AACnC,mBAAmB,gDAAK;AACxB,mBAAmB,gDAAK;AACxB,sBAAsB,gDAAK;AAC3B,6BAA6B,gDAAK;AAClC,gCAAgC,gDAAK;AACrC,yBAAyB,gDAAK;AAC9B,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B,uBAAuB,gDAAK;AAC5B,sBAAsB,gDAAK;AAC3B,sBAAsB,gDAAK;AAC3B,6BAA6B,gDAAK;AAClC,wBAAwB,gDAAK;AAC7B,4BAA4B,iDAAM;AAClC,yBAAyB,iDAAM;AAC/B,2BAA2B,iDAAM;AACjC,wBAAwB,oDAAS;AACjC,8BAA8B,oDAAS;AACvC,0BAA0B,oDAAS;AACnC,oBAAoB,oDAAS;AAC7B,4BAA4B,uDAAY,SAAS,iFAAqB;AACtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;yYAKE;AACF;AACA;AACA;AACA,YAAY,4DAAiB;AAC7B;AACA;AACA;AACA,mBAAmB,gDAAK;AACxB,mBAAmB,gDAAK;AACxB,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,oBAAoB,gDAAK;AACzB,mBAAmB,gDAAK;AACxB;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wQAKE;AACF;AACA;AACA;AACA,YAAY,4DAAiB;AAC7B;;;;;;+IAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uDAAY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAAY;AAC7C;AACA,+BAA+B,2CAAK,6BAA6B,oDAAG,4EAA4E,oDAAG;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8DAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8DAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gfAME;AACF;AACA;AACA;AACA;AACA;AACA,uCAAuC,iDAAM;AAC7C,+BAA+B,gDAAK;AACpC,6BAA6B,gDAAK;AAClC,iCAAiC,gDAAK;AACtC,gCAAgC,gDAAK;AACrC;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA,uBAAuB,4EAAiB;AACxC;;;;0gEAAC;AACD;AACA,8BAA8B,gDAAK;AACnC,wBAAwB,gDAAK;AAC7B,6BAA6B,gDAAK;AAClC,4BAA4B,gDAAK;AACjC,gCAAgC,gDAAK;AACrC,4BAA4B,gDAAK;AACjC,wBAAwB,gDAAK;AAC7B,gCAAgC,gDAAK;AACrC,sBAAsB,gDAAK;AAC3B,yBAAyB,gDAAK;AAC9B,qBAAqB,gDAAK;AAC1B,+BAA+B,gDAAK;AACpC,kCAAkC,gDAAK;AACvC,mCAAmC,gDAAK;AACxC,sCAAsC,gDAAK;AAC3C,oCAAoC,gDAAK;AACzC,uCAAuC,gDAAK;AAC5C,uCAAuC,gDAAK;AAC5C,qCAAqC,gDAAK;AAC1C,wCAAwC,gDAAK;AAC7C,qCAAqC,gDAAK;AAC1C,gCAAgC,gDAAK;AACrC,+BAA+B,gDAAK;AACpC,gCAAgC,gDAAK;AACrC,+BAA+B,gDAAK;AACpC,2BAA2B,gDAAK;AAChC,4BAA4B,gDAAK;AACjC,+BAA+B,gDAAK;AACpC,yCAAyC,gDAAK;AAC9C,kCAAkC,gDAAK;AACvC,mCAAmC,gDAAK;AACxC,0CAA0C,gDAAK;AAC/C,iCAAiC,gDAAK;AACtC,gCAAgC,gDAAK;AACrC,6BAA6B,gDAAK;AAClC,4BAA4B,gDAAK;AACjC,sBAAsB,gDAAK;AAC3B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,mBAAmB,gDAAK;AACxB,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,6BAA6B,gDAAK;AAClC,8BAA8B,gDAAK;AACnC,+BAA+B,gDAAK;AACpC,4BAA4B,gDAAK;AACjC,2BAA2B,gDAAK;AAChC,2BAA2B,gDAAK;AAChC,2BAA2B,gDAAK;AAChC,6BAA6B,gDAAK;AAClC;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;gMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;yNA0BE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,sBAAsB,gDAAK;AAC3B,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,6BAA6B,gDAAK;AAClC,8BAA8B,gDAAK;AACnC,iCAAiC,gDAAK;AACtC,6BAA6B,sDAAW;AACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uFAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uFAA2B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;oUAqBE;AACF;AACA,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gKAAC;AACD;AACA,mBAAmB,gDAAK;AACxB;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,uFAA2B;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uFAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oDAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAG,oBAAoB,oDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;WAAC;AACD;AACA,0BAA0B,sDAAW;AACrC,2BAA2B,0DAAe;AAC1C;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;8YAAC;AACD;AACA,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,qBAAqB,gDAAK;AAC1B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;+NA2BE;AACF;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,0BAA0B,gDAAK;AAC/B,4BAA4B,gDAAK;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,kCAAkC,0CAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6DAAY,oBAAoB,uDAAM;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;6TAKE;AACF;AACA;AACA,wCAAwC,+CAAI,YAAY,iDAAM,SAAS,8DAAiB;AACxF,YAAY,iDAAM;AAClB,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB;AACA;AACA,0BAA0B,gDAAK;AAC/B,oBAAoB,gDAAK;AACzB;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;;;;;;;;;iRAAC;AACD;AACA,wBAAwB,gDAAK;AAC7B,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,oBAAoB,uDAAY;AAChC,8BAA8B,gDAAK;AACnC;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;iGAeE;AACF;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAW;AACrC,kCAAkC,sDAAW;AAC7C,4BAA4B,gDAAK;AACjC;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wSAAC;AACD;AACA,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;wSAoBE;AACF;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,0BAA0B,gDAAK;AAC/B,4BAA4B,gDAAK;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAU,qBAAqB,sEAAU;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;iQA+BE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,0BAA0B,sDAAW;AACrC,uBAAuB,oDAAS;AAChC,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B,4BAA4B,gDAAK;AACjC,oBAAoB,gDAAK;AACzB,0BAA0B,iDAAM;AAChC,oBAAoB,iDAAM;AAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;oLAmBE;AACF;AACA;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,4BAA4B,gDAAK;AACjC,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,mBAAmB,gDAAK;AACxB,yBAAyB,gDAAK;AAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;iJAAC;AACD;AACA,0BAA0B,sDAAW;AACrC,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;oLAuBE;AACF;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B,YAAY,4DAAiB;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;yOAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ofAAC;AACD;AACA,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,qBAAqB,gDAAK;AAC1B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,gCAAgC,gDAAK;AACrC,0BAA0B,gDAAK;AAC/B,yBAAyB,gDAAK;AAC9B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,yBAAyB,gDAAK;AAC9B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;mLA6BE;AACF;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,4BAA4B,gDAAK;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;sJAYE;AACF;AACA,sBAAsB,gDAAK;AAC3B,qBAAqB,gDAAK;AAC1B,6BAA6B,gDAAK;AAClC;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;6BAUE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,wBAAwB,sDAAW;AACnC;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kTAKE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB;AACA,gDAAgD,mDAAQ;AACxD;AACA;AACA,0BAA0B,gDAAK;AAC/B,0CAA0C,gDAAK;AAC/C;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4OAKE;AACF;AACA;AACA,YAAY,2DAAgB;AAC5B;AACA;AACA,8BAA8B,gDAAK;AACnC;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;mJAGE;AACF;AACA;AACA;AACA;;;mEAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;wFAUE;AACF;AACA;AACA;AACA,YAAY,qDAAU;AACtB;AACA;AACA;AACA,YAAY,oDAAS;AACrB,YAAY,iDAAM;AAClB,4CAA4C,mDAAQ,YAAY,iDAAM;AACtE;AACA;AACA,8BAA8B,gDAAK;AACnC,8BAA8B,gDAAK;AACnC,+BAA+B,gDAAK;AACpC,uBAAuB,gDAAK;AAC5B,sBAAsB,gDAAK;AAC3B,sBAAsB,gDAAK;AAC3B,wBAAwB,gDAAK;AAC7B,2BAA2B,gDAAK;AAChC,uBAAuB,gDAAK;AAC5B,+BAA+B,gDAAK;AACpC,iBAAiB,sDAAW;AAC5B,2BAA2B,sDAAW;AACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;6TAKE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gDAAK;AACnC,8BAA8B,gDAAK;AACnC,gCAAgC,gDAAK;AACrC,qCAAqC,gDAAK;AAC1C,2BAA2B,gDAAK;AAChC,uBAAuB,gDAAK;AAC5B,uBAAuB,sDAAW;AAClC,2BAA2B,sDAAW;AACtC,uBAAuB,sDAAW;AAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8DAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;8JAME;AACF;AACA;AACA,YAAY,sEAAW;AACvB;;;;;;;gIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAM;AAChC,qCAAqC,uDAAM,2BAA2B,oDAAG,6BAA6B,oDAAG,mBAAmB,0DAAS,uBAAuB,uDAAM,iCAAiC,oDAAG,gBAAgB,4DAAW;AACjO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;2EAKE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB;AACA,YAAY,iDAAM;AAClB,YAAY,4DAAiB;AAC7B;AACA;AACA,qBAAqB,gDAAK;AAC1B,6BAA6B,gDAAK;AAClC,uBAAuB,sDAAW;AAClC;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ojCAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;wMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;8MAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;wMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;qMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;uMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;0MAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;sMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;wMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;0MAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;uMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;gNAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;oMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;6MAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;qMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;uMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;wMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;sMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0DAAY;AAChB,IAAI,gEAAmB;AACvB,IAAI,wDAAW;AACf,IAAI,kFAAkB;AACtB,IAAI,kFAAkB;AACtB,IAAI,yEAAY;AAChB,IAAI,iFAAgB;AACpB,IAAI,uEAAW;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8HAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wQAAC;AACD;AACA,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;oRAKE;AACF;AACA;AACA,YAAY,2DAAgB;AAC5B,YAAY,mEAAwB;AACpC;;;;;;oMAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;4vBAQE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;6UAuBE;AACF;AACA;AACA;AACA;AACA;AACA,oBAAoB,gDAAK;AACzB,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B,yBAAyB,iDAAM;AAC/B,6BAA6B,sDAAW;AACxC,6BAA6B,sDAAW;AACxC,0BAA0B,sDAAW;AACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;sHA0CE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA,YAAY,4DAAiB;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+OAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;sHA0CE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA,YAAY,4DAAiB;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+OAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;iOAiCE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B,YAAY,4DAAiB;AAC7B;AACA;AACA;AACA,0BAA0B,gDAAK;AAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;mRAwBE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA,YAAY,iDAAM;AAClB,YAAY,4DAAiB;AAC7B;AACA;AACA,2BAA2B,oDAAS,SAAS,oFAAuB;AACpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;iDAOE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B,YAAY,4DAAiB;AAC7B;AACA;AACA;AACA,sBAAsB,sDAAW,2CAA2C,sDAAW;AACvF;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;0KAiBE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B,YAAY,4DAAiB;AAC7B;AACA;AACA;AACA,wBAAwB,gDAAK;AAC7B,sBAAsB,sDAAW,4CAA4C,sDAAW;AACxF;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA,IAAI,0DAAY;AAChB,IAAI,yEAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;mTAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;yVAqEE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gDAAK;AAC5B,8BAA8B,gDAAK;AACnC,mBAAmB,gDAAK;AACxB,kCAAkC,gDAAK;AACvC,yBAAyB,gDAAK;AAC9B,gCAAgC,gDAAK;AACrC,mCAAmC,gDAAK;AACxC,iCAAiC,gDAAK;AACtC,sBAAsB,gDAAK;AAC3B,qBAAqB,gDAAK;AAC1B,6BAA6B,sDAAW;AACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,yBAAyB,uDAAY;AACrC,wBAAwB,uDAAY;AACpC,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA,kDAAkD,uDAAM;AACxD,4CAA4C,uDAAM;AAClD;AACA;AACA;AACA,4CAA4C,uDAAM;AAClD;AACA;AACA;AACA,4CAA4C,uDAAM;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;6QAKE;AACF;AACA;AACA,YAAY,qDAAU;AACtB;AACA;AACA;AACA,sBAAsB,gDAAK;AAC3B,oBAAoB,iDAAM;AAC1B,oBAAoB,iDAAM;AAC1B,mBAAmB,iDAAM;AACzB;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA,+BAA+B,oDAAS;AACxC;AACA,gCAAgC,+CAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAY;AAClD;AACA,qCAAqC,2CAAK,qBAAqB,2CAAI;AACnE;AACA,qCAAqC,2CAAK,qBAAqB,2CAAI;AACnE;AACA,qCAAqC,2CAAK,oBAAoB,2CAAI;AAClE,qDAAqD,oDAAG,+BAA+B,uDAAM,8EAA8E,oDAAG,yBAAyB,4DAAW,iBAAiB,0DAAS,kBAAkB,oDAAG;AACjQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;0VA8CE;AACF;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B,YAAY,4DAAiB;AAC7B;AACA;AACA,qBAAqB,iDAAM;AAC3B,+BAA+B,sDAAW,gDAAgD,sDAAW;AACrG,mBAAmB,gDAAK;AACxB,qBAAqB,gDAAK;AAC1B,0BAA0B,uDAAY;AACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uDAAY;AAC/C,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;iDAgBE;AACF;AACA,8BAA8B,iDAAM;AACpC,qBAAqB,iDAAM;AAC3B,oBAAoB,gDAAK;AACzB,yBAAyB,gDAAK;AAC9B,kCAAkC,sDAAW;AAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,wCAAE,iBAAiB,sDAAK,OAAO,0DAAS;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,uDAAM,qBAAqB,uDAAM,mGAAmG,oDAAG;AACvO;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAS,kDAAkD,oDAAG;AAC1E;AACA;AACA,YAAY,0DAAS,uCAAuC,oDAAG;AAC/D;AACA;AACA;AACA,YAAY,oDAAG,sBAAsB,oDAAG,qBAAqB,0DAAS,+BAA+B,oDAAG,8BAA8B,oDAAG,+BAA+B,4DAAW;AACnL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;gGAKE;AACF;AACA;AACA,YAAY,8EAAkB,uBAAuB,+CAAI;AACzD,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB;AACA;AACA;AACA;AACA,YAAY,oDAAS;AACrB;AACA;AACA,sBAAsB,gDAAK;AAC3B,yBAAyB,gDAAK;AAC9B,mBAAmB,iDAAM;AACzB,wBAAwB,sDAAW;AACnC;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;yRAME;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;6qBAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAS;AACxC,gCAAgC,+CAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAY;AAClD,4BAA4B,2CAAK;AACjC,4BAA4B,2CAAK;AACjC,2BAA2B,2CAAK;AAChC,qDAAqD,oDAAG;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAM,8DAA8D,0DAAS,sDAAsD,oDAAG,mGAAmG,oDAAG,mCAAmC,oDAAG,yBAAyB,0DAAS,2BAA2B,oDAAG,cAAc,0DAAS,kBAAkB,oDAAG;AAC1Y;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0DAAS,eAAe,0DAAS,cAAc,oDAAG;AACxE;AACA,eAAe,wCAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;4zBA4LE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B,YAAY,4DAAiB;AAC7B;AACA;AACA,gCAAgC,gDAAK;AACrC,sBAAsB,gDAAK;AAC3B,qBAAqB,gDAAK;AAC1B,6BAA6B,gDAAK;AAClC,yBAAyB,gDAAK;AAC9B,yBAAyB,gDAAK;AAC9B,mBAAmB,gDAAK;AACxB,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,wBAAwB,gDAAK;AAC7B,iCAAiC,gDAAK;AACtC,wBAAwB,gDAAK;AAC7B,0BAA0B,gDAAK;AAC/B,yBAAyB,gDAAK;AAC9B,iCAAiC,gDAAK;AACtC,gCAAgC,gDAAK;AACrC,0BAA0B,sDAAW;AACrC,0BAA0B,uDAAY;AACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,0DAAS,6BAA6B,oDAAG,yBAAyB,oDAAG;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wCAAE,iBAAiB,sDAAK,OAAO,0DAAS;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uDAAM,+BAA+B,uDAAM;AAC7F,4CAA4C,uDAAM;AAClD;AACA,4CAA4C,uDAAM;AAClD;AACA,yDAAyD,uDAAM,2BAA2B,uDAAM,gCAAgC,qDAAI;AACpI;AACA,gGAAgG,oDAAG,mBAAmB,oDAAG,yCAAyC,0DAAS,oDAAoD,0DAAS;AACxO;AACA;AACA;AACA;AACA;AACA,4CAA4C,uDAAM;AAClD;AACA,4CAA4C,uDAAM;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;6DAKE;AACF;AACA;AACA,YAAY,8EAAkB,uBAAuB,+CAAI;AACzD,YAAY,qDAAU;AACtB;AACA,YAAY,iDAAM;AAClB,YAAY,4DAAiB;AAC7B,YAAY,8EAAmB;AAC/B;AACA;AACA,sBAAsB,gDAAK;AAC3B,qBAAqB,gDAAK;AAC1B,sBAAsB,sDAAW;AACjC,wBAAwB,sDAAW;AACnC,yBAAyB,sDAAW;AACpC,sBAAsB,uDAAY;AAClC;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;wKAKE;AACF;AACA;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,iDAAM;AAClB;AACA;AACA,oBAAoB,gDAAK;AACzB,8BAA8B,iDAAM;AACpC,mBAAmB,sDAAW;AAC9B;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;wJAsBE;AACF;AACA;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kjBAmCE;AACF;AACA;AACA,gDAAgD,mDAAQ;AACxD;AACA,YAAY,8EAAmB;AAC/B,YAAY,4DAAiB;AAC7B;AACA;AACA,oBAAoB,iDAAM;AAC1B,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,2BAA2B,gDAAK;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;kIAgBE;AACF;AACA;AACA;AACA,4BAA4B,gDAAK;AACjC,4BAA4B,gDAAK;AACjC;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;yRAiBE;AACF;AACA,wBAAwB,gDAAK;AAC7B,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,4BAA4B,gDAAK;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;sNA+BE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,0BAA0B,sDAAW;AACrC,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,oBAAoB,gDAAK;AACzB,4BAA4B,gDAAK;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;+OA8CE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,0BAA0B,sDAAW;AACrC,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,oBAAoB,gDAAK;AACzB,4BAA4B,gDAAK;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;wLA4BE;AACF;AACA,wBAAwB,gDAAK;AAC7B,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,4BAA4B,gDAAK;AACjC,mBAAmB,gDAAK;AACxB,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,qBAAqB,gDAAK;AAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;4OAoDE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,0BAA0B,sDAAW;AACrC,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,oBAAoB,gDAAK;AACzB,4BAA4B,gDAAK;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;kGAmBE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,0BAA0B,sDAAW;AACrC,qBAAqB,gDAAK;AAC1B,4BAA4B,gDAAK;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gUAKE;AACF;AACA;AACA,YAAY,2DAAgB;AAC5B,YAAY,mEAAwB;AACpC;AACA;AACA,4BAA4B,gDAAK;AACjC;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;wLAiCE;AACF;AACA;AACA;AACA;AACA;AACA,wBAAwB,gDAAK;AAC7B,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,4BAA4B,gDAAK;AACjC,qBAAqB,gDAAK;AAC1B,gCAAgC,gDAAK;AACrC,0BAA0B,gDAAK;AAC/B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,yBAAyB,gDAAK;AAC9B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,yBAAyB,gDAAK;AAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;u5BAQE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,yBAAyB,uDAAY;AACrC,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;6MAgBE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB;AACA;AACA,wBAAwB,sDAAW;AACnC,oBAAoB,iDAAM;AAC1B,oBAAoB,iDAAM;AAC1B,2BAA2B,iDAAM;AACjC,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B,2BAA2B,gDAAK;AAChC,wBAAwB,gDAAK;AAC7B,wBAAwB,gDAAK;AAC7B,2BAA2B,gDAAK;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;gEA0BE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA,YAAY,wEAAY;AACxB,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB,YAAY,4DAAiB;AAC7B;AACA;AACA,uBAAuB,gDAAK;AAC5B,2BAA2B,gDAAK;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;2CAAC;AACD;AACA,sBAAsB,gDAAK;AAC3B,wBAAwB,sDAAW;AACnC;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;yJAqBE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA,YAAY,4DAAiB;AAC7B;AACA;AACA,qBAAqB,iDAAM;AAC3B,uBAAuB,iDAAM;AAC7B,uBAAuB,gDAAK;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;kKAkBE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,qBAAqB,iDAAM;AAC3B,uBAAuB,iDAAM;AAC7B,uBAAuB,gDAAK;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;+OAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAuCE;AACF;AACA,wBAAwB,iDAAM;AAC9B,qBAAqB,iDAAM;AAC3B,uBAAuB,iDAAM;AAC7B,mBAAmB,gDAAK;AACxB,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,8BAA8B,uDAAY;AAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;oEAaE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;;;;;;;;;;;;;;+JAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;uVAkCE;AACF;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA;AACA,yBAAyB,sDAAW,4DAA4D,gDAAK;AACrG,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,iCAAiC,gDAAK;AACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;oEASE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA,YAAY,4DAAiB;AAC7B;;;;;;;;;;6OAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;62BAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0DAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;0hBAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;+LAYE;AACF;AACA;AACA,+CAA+C,mDAAQ,YAAY,+CAAI,YAAY,mDAAQ;AAC3F;AACA;AACA,uBAAuB,uDAAY;AACnC;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;gMAYE;AACF;AACA;AACA,+CAA+C,mDAAQ,YAAY,+CAAI,YAAY,mDAAQ;AAC3F;AACA;AACA,4BAA4B,gDAAK;AACjC,uBAAuB,uDAAY;AACnC;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sEAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;+EAKE;AACF;AACA;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,iDAAM;AAClB;AACA;AACA,wBAAwB,gDAAK;AAC7B,mBAAmB,sDAAW;AAC9B;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;scA6ME;AACF;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB,YAAY,qDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAK;AAC3B,yBAAyB,gDAAK;AAC9B,qBAAqB,gDAAK;AAC1B,6BAA6B,gDAAK;AAClC,gCAAgC,gDAAK;AACrC,mBAAmB,gDAAK;AACxB,mBAAmB,gDAAK;AACxB,yBAAyB,gDAAK;AAC9B,yBAAyB,gDAAK;AAC9B,4BAA4B,gDAAK;AACjC,uBAAuB,gDAAK;AAC5B,kCAAkC,gDAAK;AACvC,+BAA+B,gDAAK;AACpC,iCAAiC,gDAAK;AACtC,gCAAgC,gDAAK;AACrC,6BAA6B,gDAAK;AAClC,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;g5BA6DE;AACF;AACA;AACA;AACA;AACA,4CAA4C,mDAAQ,YAAY,iDAAM;AACtE;AACA;AACA,+BAA+B,sDAAW;AAC1C,qBAAqB,gDAAK;AAC1B,0BAA0B,gDAAK;AAC/B,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oEAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;iGAKE;AACF;AACA;AACA;AACA,4CAA4C,iDAAM;AAClD,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,8EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,sBAAsB,sDAAW;AACjC,2BAA2B,sDAAW;AACtC,sBAAsB,uDAAY;AAClC;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oEAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;iGAKE;AACF;AACA;AACA;AACA,4CAA4C,iDAAM;AAClD,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,8EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,sBAAsB,sDAAW;AACjC,2BAA2B,sDAAW;AACtC,sBAAsB,uDAAY;AAClC;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oEAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;iGAKE;AACF;AACA;AACA;AACA,4CAA4C,iDAAM;AAClD,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,8EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,sBAAsB,sDAAW;AACjC,2BAA2B,sDAAW;AACtC,sBAAsB,uDAAY;AAClC;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oEAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;iGAKE;AACF;AACA;AACA;AACA,4CAA4C,iDAAM;AAClD,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,8EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,sBAAsB,sDAAW;AACjC,2BAA2B,sDAAW;AACtC,sBAAsB,uDAAY;AAClC;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oEAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;iGAKE;AACF;AACA;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,8EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,sBAAsB,uDAAY;AAClC,2BAA2B,sDAAW;AACtC;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0DAAY;AAChB,IAAI,gEAAmB;AACvB,IAAI,wDAAW;AACf;AACA;AACA,IAAI,iFAAoB;AACxB,IAAI,iFAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;0ZAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;8RAgCE;AACF;AACA,sBAAsB,gDAAK;AAC3B,qBAAqB,gDAAK;AAC1B,6BAA6B,gDAAK;AAClC,yBAAyB,gDAAK;AAC9B,iCAAiC,gDAAK;AACtC,0BAA0B,sDAAW;AACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAI,0DAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;6SAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;+JAaE;AACF;AACA;AACA;AACA;AACA;AACA,yBAAyB,sDAAW;AACpC,uBAAuB,gDAAK;AAC5B;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6CAAU;AACjD,4BAA4B,qDAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4NAAC;AACD;AACA,0BAA0B,gDAAK;AAC/B,iCAAiC,gDAAK;AACtC;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qWAKE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gDAAK;AACjC;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;yWAKE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gDAAK;AACnC;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iWAKE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gDAAK;AACnC;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA,0CAA0C,mEAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oEAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;8XAGE;AACF;AACA;AACA;AACA,YAAY,4DAAiB;AAC7B;AACA;AACA;AACA,oCAAoC,gDAAK;AACzC,mBAAmB,gDAAK;AACxB,qBAAqB,gDAAK;AAC1B,oBAAoB,gDAAK;AACzB;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8mHAmBE;AACF;AACA,mCAAmC,mFAAkB;AACrD;;;;;;;;;;;0BAME;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qFAAoB;AACzD;AACA;AACA;AACA;;;;mRAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mFAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA,2BAA2B,oDAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qDAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qDAAI;AACzD;AACA;AACA;;;;;;;;;;;;;+NAME;AACF;AACA;AACA;AACA;AACA,YAAY,iDAAM;AAClB,YAAY,qDAAU;AACtB;AACA;AACA,uBAAuB,gDAAK;AAC5B,sBAAsB,0DAAe;AACrC,8BAA8B,uDAAY;AAC1C,oCAAoC,uDAAY;AAChD;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oEAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;iGAKE;AACF;AACA;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,8EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,sBAAsB,uDAAY;AAClC,uBAAuB,sDAAW;AAClC;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;qVAME;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mEAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oDAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAAU;AAC3C,8CAA8C,qDAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qFAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+EAAS;AACjB,YAAY,kEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;2YAME;AACF;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,uBAAuB,gDAAK;AAC5B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,mBAAmB,gDAAK;AACxB,yBAAyB,gDAAK;AAC9B,uBAAuB,gDAAK;AAC5B,wBAAwB,gDAAK;AAC7B,iCAAiC,gDAAK;AACtC,uCAAuC,gDAAK;AAC5C,0BAA0B,gDAAK;AAC/B,sBAAsB,0DAAe,SAAS,4EAAU;AACxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oEAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;iGAKE;AACF;AACA;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,8EAAmB;AAC/B,YAAY,iDAAM;AAClB;AACA;AACA,sBAAsB,uDAAY;AAClC,yBAAyB,sDAAW;AACpC;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;wYAME;AACF;AACA;AACA;AACA;AACA;AACm5I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1nlBn5I;AACA;AACA;AACA;AAC+T;AACvN;AAC5B;AACuB;AAC5B;AACiC;AAC6E;AAC1H;AACA;AACZ;AAC2B;AACD;AACzE;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iMAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6EAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qDAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU;AACtB,qDAAqD,oDAAI;AACzD;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,0EAAc;AAC3B,aAAa,2EAAe;AAC5B,aAAa,0EAAc;AAC3B,aAAa,wEAAY;AACzB,aAAa,uEAAW;AACxB,aAAa,yEAAa;AAC1B,aAAa,qEAAS;AACtB,aAAa,oEAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+CAAS;AACvC,4BAA4B,+CAAS;AACrC,6BAA6B,+CAAS;AACtC,gDAAgD,sDAAM,6CAA6C,yDAAS,OAAO,+CAAQ,WAAW,0DAAS,MAAM,0DAAS,CAAC,4CAAK;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8EAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6aAqFE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B,YAAY,mDAAQ;AACpB,YAAY,oDAAS;AACrB,YAAY,iDAAM;AAClB,YAAY,4DAAiB;AAC7B,YAAY,qDAAU;AACtB;AACA;AACA,0BAA0B,gDAAK;AAC/B,6BAA6B,gDAAK;AAClC,sBAAsB,gDAAK;AAC3B,6BAA6B,gDAAK;AAClC,0BAA0B,gDAAK;AAC/B,4BAA4B,gDAAK;AACjC,oBAAoB,gDAAK;AACzB,8BAA8B,gDAAK;AACnC,uBAAuB,gDAAK;AAC5B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,wBAAwB,gDAAK;AAC7B,wBAAwB,gDAAK;AAC7B,6BAA6B,gDAAK;AAClC,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,0BAA0B,iDAAM;AAChC,sBAAsB,oDAAS;AAC/B,oBAAoB,oDAAS;AAC7B,yBAAyB,oDAAS;AAClC,8BAA8B,oDAAS;AACvC,6BAA6B,oDAAS,0BAA0B,qDAAU;AAC1E,oBAAoB,oDAAS;AAC7B,6BAA6B,oDAAS;AACtC,6BAA6B,oDAAS;AACtC,4BAA4B,uDAAY;AACxC,wBAAwB,sDAAW;AACnC,8BAA8B,sDAAW;AACzC,4BAA4B,sDAAW;AACvC,0BAA0B,sDAAW;AACrC,0BAA0B,sDAAW;AACrC,gCAAgC,sDAAW;AAC3C,4BAA4B,sDAAW;AACvC,2BAA2B,sDAAW;AACtC,2BAA2B,sDAAW;AACtC,sBAAsB,sDAAW;AACjC,sBAAsB,sDAAW;AACjC,wBAAwB,sDAAW;AACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2DAAO,IAAI,gEAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAI;AACtB;AACA;AACA;AACA,yCAAyC,qDAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sEAAU,gBAAgB,sEAAU;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gMAyCE;AACF;AACA;AACA,YAAY,oDAAS;AACrB,YAAY,qDAAU;AACtB,YAAY,8EAAmB;AAC/B,YAAY,mDAAQ;AACpB,YAAY,4DAAiB;AAC7B,YAAY,iDAAM;AAClB;AACA;AACA,0BAA0B,gDAAK;AAC/B,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,0BAA0B,iDAAM;AAChC,sBAAsB,oDAAS;AAC/B,wBAAwB,sDAAW;AACnC,sBAAsB,sDAAW;AACjC,2BAA2B,sDAAW;AACtC,2BAA2B,sDAAW;AACtC,0BAA0B,sDAAW,uCAAuC,sDAAW;AACvF,4BAA4B,sDAAW;AACvC,6BAA6B,sDAAW;AACxC,4BAA4B,sDAAW;AACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mFAAmB;AACnC,0CAA0C,+CAAS;AACnD,2BAA2B,6DAAY;AACvC;AACA;AACA,qCAAqC,+CAAS;AAC9C;AACA;AACA,yCAAyC,qDAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4EAAY,wBAAwB,4EAAY;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;wFAaE;AACF;AACA;AACA,YAAY,oDAAS;AACrB,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB,YAAY,4DAAiB;AAC7B,YAAY,mDAAQ;AACpB,0CAA0C,mDAAQ,YAAY,iDAAM,SAAS,8DAAG;AAChF;AACA;AACA,2BAA2B,sDAAW;AACtC,4BAA4B,sDAAW;AACvC,wBAAwB,sDAAW;AACnC,0BAA0B,iDAAM;AAChC,uBAAuB,gDAAK;AAC5B,oBAAoB,gDAAK;AACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,6CAAU,qBAAqB,uDAAY;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uDAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;+FASE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,4DAAiB;AAC7B,0CAA0C,mDAAQ,YAAY,iDAAM,SAAS,8DAAG;AAChF;AACA;AACA,0BAA0B,sDAAW;AACrC,mCAAmC,sDAAW;AAC9C,2BAA2B,sDAAW;AACtC,2BAA2B,sDAAW;AACtC,wBAAwB,sDAAW;AACnC,iBAAiB,gDAAK;AACtB,4BAA4B,gDAAK;AACjC,yBAAyB,uDAAY,SAAS,sEAAU;AACxD,uBAAuB,uDAAY;AACnC,0BAA0B,uDAAY,SAAS,qDAAS;AACxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;oBASE;AACF;AACA;AACA,YAAY,oDAAS;AACrB,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB;AACA;AACA,wBAAwB,sDAAW;AACnC,oBAAoB,gDAAK;AACzB;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8EAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0EAAc;AAC5C;AACA;AACA,mCAAmC,wEAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qDAAS;AAClD;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,4DAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wDAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4PAwEE;AACF;AACA;AACA,YAAY,sEAAW;AACvB,YAAY,oDAAS;AACrB,YAAY,8EAAmB;AAC/B,YAAY,mDAAQ;AACpB,YAAY,iDAAM;AAClB,YAAY,4DAAiB;AAC7B,YAAY,qDAAU;AACtB;AACA;AACA,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,oBAAoB,gDAAK;AACzB,0BAA0B,gDAAK;AAC/B,qBAAqB,gDAAK;AAC1B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,uBAAuB,gDAAK;AAC5B,0BAA0B,gDAAK;AAC/B,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,8BAA8B,gDAAK;AACnC,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,oBAAoB,gDAAK;AACzB,0BAA0B,iDAAM;AAChC,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,2BAA2B,oDAAS;AACpC,0BAA0B,oDAAS;AACnC,wBAAwB,sDAAW;AACnC,4BAA4B,sDAAW,uCAAuC,sDAAW;AACzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA,qCAAqC,4EAAiB;AACtD;;;;gSAAC;AACD;AACA,wBAAwB,gDAAK;AAC7B,wBAAwB,gDAAK;AAC7B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;8MAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qDAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sIA6CE;AACF;AACA;AACA;AACA,YAAY,oDAAS;AACrB,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB,YAAY,mDAAQ;AACpB,YAAY,4DAAiB;AAC7B,0CAA0C,mDAAQ,YAAY,iDAAM,SAAS,8DAAG;AAChF;AACA;AACA,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,oBAAoB,gDAAK;AACzB,wBAAwB,sDAAW;AACnC,0BAA0B,sDAAW,uCAAuC,sDAAW;AACvF,gCAAgC,sDAAW;AAC3C,mBAAmB,gDAAK;AACxB,oBAAoB,gDAAK;AACzB,oBAAoB,gDAAK;AACzB,qBAAqB,gDAAK;AAC1B,gCAAgC,gDAAK;AACrC,8BAA8B,gDAAK;AACnC,0BAA0B,gDAAK;AAC/B,6BAA6B,gDAAK;AAClC,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,0BAA0B,iDAAM;AAChC,oBAAoB,oDAAS;AAC7B,2BAA2B,uDAAY;AACvC,2BAA2B,uDAAY;AACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;6UAwBE;AACF;AACA;AACA,0CAA0C,mDAAQ,YAAY,iDAAM,SAAS,8DAAG;AAChF;AACA;AACA,6BAA6B,sDAAW;AACxC,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,wBAAwB,gDAAK;AAC7B,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,4BAA4B,gDAAK;AACjC,2BAA2B,uDAAY;AACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA,6BAA6B,4EAAiB;AAC9C;;;;0SAAC;AACD;AACA,wBAAwB,gDAAK;AAC7B,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;sMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;sxBAkBE;AACF;AACA;AACA;AACA;AACA,uBAAuB,4EAAiB;AACxC;;;;0OAAC;AACD;AACA,iBAAiB,gDAAK;AACtB,kBAAkB,gDAAK;AACvB;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;sMAYE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;moBAeE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,8EAAmB;AAC/B;;;;;;;;;;;;wIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ikBAcE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;scAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;scAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wEAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0EAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gEAAW;AAC7B;AACA;AACA,QAAQ,oEAAU;AAClB,gBAAgB,oEAAU;AAC1B;AACA,4BAA4B,gEAAW,cAAc,gEAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0EAAc,sBAAsB,sEAAU;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAQ,gBAAgB,uEAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uPA8EE;AACF;AACA;AACA,YAAY,wEAAY;AACxB,YAAY,8EAAmB;AAC/B;AACA;AACA,0BAA0B,sDAAW,uCAAuC,sDAAW;AACvF,wBAAwB,sDAAW;AACnC,0BAA0B,gDAAK;AAC/B,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,qBAAqB,gDAAK;AAC1B,oBAAoB,gDAAK;AACzB,4BAA4B,gDAAK;AACjC,8BAA8B,gDAAK;AACnC,+BAA+B,gDAAK;AACpC,mBAAmB,gDAAK;AACxB,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,0BAA0B,iDAAM;AAChC,mBAAmB,iDAAM;AACzB,oBAAoB,iDAAM;AAC1B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,+BAA+B,iDAAM;AACrC,wBAAwB,oDAAS,8BAA8B,2DAAgB;AAC/E,sBAAsB,oDAAS;AAC/B,4BAA4B,oDAAS;AACrC,sBAAsB,oDAAS,4BAA4B,qDAAU;AACrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAc;AAC/B;AACA;AACA,iBAAiB,wEAAY;AAC7B;AACA;AACA,iBAAiB,2EAAe;AAChC;AACA;AACA,iBAAiB,0EAAc;AAC/B;AACA;AACA,iBAAiB,sEAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yJA2CE;AACF;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,wBAAwB,sDAAW;AACnC,wBAAwB,sDAAW;AACnC,iBAAiB,gDAAK;AACtB,qBAAqB,gDAAK;AAC1B,oBAAoB,gDAAK;AACzB,sBAAsB,gDAAK;AAC3B,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,8BAA8B,iDAAM;AACpC,0BAA0B,iDAAM;AAChC,4BAA4B,iDAAM;AAClC,2BAA2B,sDAAW;AACtC,0BAA0B,sDAAW,uCAAuC,sDAAW;AACvF,4BAA4B,sDAAW;AACvC,4BAA4B,uDAAY;AACxC,6BAA6B,uDAAY;AACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mFAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6OAoFE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB,YAAY,4DAAiB;AAC7B,YAAY,8EAAmB;AAC/B;AACA;AACA,0BAA0B,sDAAW,uCAAuC,sDAAW;AACvF,4BAA4B,sDAAW;AACvC,2BAA2B,sDAAW;AACtC,yBAAyB,sDAAW;AACpC,iBAAiB,gDAAK;AACtB,wBAAwB,sDAAW;AACnC,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,0BAA0B,gDAAK;AAC/B,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,0BAA0B,iDAAM;AAChC,qBAAqB,gDAAK;AAC1B,0BAA0B,oDAAS;AACnC,8BAA8B,oDAAS;AACvC,yBAAyB,oDAAS;AAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mFAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wHAwFE;AACF;AACA;AACA,YAAY,qDAAU;AACtB;AACA;AACA,oBAAoB,gDAAK;AACzB,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,0BAA0B,iDAAM;AAChC,8BAA8B,sDAAW;AACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iMAKE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB;;;;;;4KAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yMAgBE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;WAKE;AACF;AACA,yBAAyB,sDAAW;AACpC;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;6WAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;WAKE;AACF;AACA,yBAAyB,sDAAW;AACpC;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;sXAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;6BAQE;AACF;AACA,wBAAwB,sDAAW;AACnC,oBAAoB,gDAAK;AACzB,4BAA4B,sDAAW;AACvC,yBAAyB,sDAAW;AACpC,uBAAuB,sDAAW;AAClC,0BAA0B,sDAAW;AACrC;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;6BAQE;AACF;AACA,oBAAoB,gDAAK;AACzB,wBAAwB,sDAAW;AACnC,yBAAyB,sDAAW;AACpC,uBAAuB,sDAAW;AAClC,0BAA0B,sDAAW;AACrC;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qEAAyB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,mFAAmB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+FAoBE;AACF;AACA;AACA,YAAY,oDAAS;AACrB,YAAY,8EAAmB;AAC/B;AACA;AACA,wBAAwB,sDAAW;AACnC,wBAAwB,sDAAW;AACnC,yBAAyB,sDAAW;AACpC,4BAA4B,sDAAW;AACvC,2BAA2B,0DAAe,SAAS,qDAAS;AAC5D,iCAAiC,0DAAe,SAAS,qDAAS,UAAU,qDAAU;AACtF,yBAAyB,uDAAY,SAAS,sEAAU;AACxD,4BAA4B,0DAAe;AAC3C,2BAA2B,0DAAe;AAC1C,wBAAwB,gDAAK;AAC7B,0BAA0B,gDAAK;AAC/B,yBAAyB,gDAAK;AAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;8aAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;0bAME;AACF;AACA;AACA;AACA;AACA;AACu4B;;;;;;;;;;;;;;;;;;;;;;;;;ACz7MxwB;;;;;;;;;;;;;;;;;;;;;;;;ACA/H;AAC2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,8BAA8B,KAAK;AACnC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,oCAAoC,KAAK;AACzC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAiB;AACnC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO,cAAc,wDAAiB;AACtC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;;;;;;;;;;;;;;;;ACvJP;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACsH;AACsG;AAC5N;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gEAAe;AACpD;AACA;AACA;AACA,mCAAmC,8DAAa;AAChD;AACA;AACA;AACA,8BAA8B,yDAAQ;AACtC;AACA;AACA;AACA,4BAA4B,uDAAM;AAClC;AACA;AACA;AACA,gCAAgC,2DAAU;AAC1C;AACA;AACA;AACA,kCAAkC,6DAAY;AAC9C;AACA;AACA;AACA,0BAA0B,qDAAI;AAC9B;AACA;AACA;AACA,mCAAmC,8DAAa;AAChD;AACA;AACA;AACA,+BAA+B,0DAAS;AACxC;AACA;AACA;AACA,iCAAiC,4DAAW;AAC5C;AACA;AACA;AACA,qCAAqC,gEAAe;AACpD;AACA;AACA;AACA,8BAA8B,yDAAQ;AACtC;AACA;AACA;AACA,kCAAkC,6DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+DAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yCAOE;AACF,8BAA8B,+DAAgB,uEAAuE,qDAAM,CAAC,oDAAS;;;;;;;;gDAAiD;AACtL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kKAGE;AACF;AACA;AACA,yCAAyC,iDAAM,SAAS,oDAAS;AACjE;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;6IAKE;AACF;AACA;AACA;AACA;;;;;;qEAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;mJAKE;AACF;AACA;AACA;AACA;;;;;;qEAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;gOAME;AACF;AACA;AACA;AACA;AACA;AAC4f;;;;;;;;;;;;AC5d5f,cAAc,wEAA+C;AAC7D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,wBAAwB,EAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB,GAAG,MAAM,EAAE;AAC/B,oBAAoB,GAAG,MAAM,EAAE;AAC/B,sBAAsB,EAAE,GAAG,EAAE;AAC7B,qBAAqB,EAAE,GAAG,EAAE;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACl6ED,cAAc,wEAA+C;AAC7D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB,IAAI,EAAE;AAC1B,oBAAoB,IAAI,EAAE;AAC1B,sBAAsB,EAAE,GAAG,EAAE;AAC7B,qBAAqB,EAAE,GAAG,EAAE;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB,EAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3oED;AACA;AACA;AACA;AAC6E;AAC7B;AACA;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,oDAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yDAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iDAAe;AAC1C;AACA;AACA;AACA,sBAAsB,mDAAG,oDAAoD,mDAAG;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;8KAGE;AACF;AACA;AACA,yCAAyC,iDAAM;AAC/C,iDAAiD,mDAAQ;AACzD,0CAA0C,mDAAQ,YAAY,iDAAM;AACpE;;;;;;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpKpF;AACA;AACA;AACA;AACqU;AACrP;AACyB;AACM;AAC7C;AACmB;AACtC;AAC/C;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAO;AACvC,qCAAqC,iDAAe;AACpD,+BAA+B,yCAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kKAGE;AACF;AACA;;;gDAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iMAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;uMAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAsHE;AACF;AACA;AACA,wDAAwD,mDAAQ,YAAY,+CAAI,YAAY,mDAAQ;AACpG;AACA,YAAY,qDAAU;AACtB;AACA;AACA,oBAAoB,gDAAK;AACzB,iBAAiB,gDAAK;AACtB,mBAAmB,gDAAK;AACxB,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,sBAAsB,gDAAK;AAC3B,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,qBAAqB,oDAAS;AAC9B,6BAA6B,oDAAS;AACtC,mBAAmB,sDAAW;AAC9B,6BAA6B,sDAAW;AACxC,yBAAyB,sDAAW;AACpC,iCAAiC,sDAAW;AAC5C,kCAAkC,sDAAW;AAC7C,kCAAkC,sDAAW;AAC7C,qBAAqB,sDAAW;AAChC,2BAA2B,sDAAW;AACtC,2BAA2B,sDAAW;AACtC,2BAA2B,sDAAW;AACtC,6BAA6B,uDAAY;AACzC,2BAA2B,0DAAe;AAC1C,8BAA8B,0DAAe;AAC7C,6BAA6B,0DAAe;AAC5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gNAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAU;AACvB,aAAa,sEAAU;AACvB,aAAa,wEAAY;AACzB,6BAA6B,0EAAc,EAAE,2EAAe;AAC5D,aAAa,0EAAc;AAC3B,6BAA6B,2EAAe,EAAE,0EAAc;AAC5D,aAAa,oEAAQ;AACrB,aAAa,qEAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAAU,sBAAsB,wEAAY,sBAAsB,0EAAc;AAClH,kCAAkC,0EAAc,sBAAsB,2EAAe,sBAAsB,qEAAS;AACpH,kCAAkC,oEAAQ,sBAAsB,uEAAW,sBAAsB,yEAAa;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2KAmCE;AACF;AACA;AACA,YAAY,qDAAU;AACtB;AACA,YAAY,6EAAmB;AAC/B;AACA;AACA,yBAAyB,gDAAK;AAC9B,yBAAyB,gDAAK;AAC9B,sBAAsB,gDAAK;AAC3B,qBAAqB,gDAAK;AAC1B,8BAA8B,gDAAK;AACnC,oBAAoB,gDAAK;AACzB,0BAA0B,iDAAM;AAChC,uBAAuB,sDAAW;AAClC,mBAAmB,sDAAW;AAC9B,+BAA+B,sDAAW;AAC1C,yBAAyB,sDAAW;AACpC,uBAAuB,sDAAW;AAClC,kBAAkB,sDAAW;AAC7B,uBAAuB,uDAAY;AACnC,2BAA2B,0DAAe;AAC1C,gCAAgC,0DAAe;AAC/C,6BAA6B,uDAAY;AACzC,+BAA+B,uDAAY;AAC3C,+BAA+B,uDAAY;AAC3C,8BAA8B,uDAAY;AAC1C,iCAAiC,uDAAY;AAC7C,0BAA0B,sDAAW,uCAAuC,sDAAW;AACvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;8FAUE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB,YAAY,4DAAiB;AAC7B;AACA;AACA,oBAAoB,gDAAK;AACzB,mBAAmB,gDAAK;AACxB,kBAAkB,gDAAK;AACvB,kBAAkB,gDAAK;AACvB,wBAAwB,gDAAK;AAC7B,0BAA0B,gDAAK;AAC/B,yBAAyB,gDAAK;AAC9B,wBAAwB,gDAAK;AAC7B,0BAA0B,gDAAK;AAC/B,+BAA+B,gDAAK;AACpC,6BAA6B,gDAAK;AAClC,yBAAyB,iDAAM;AAC/B,8BAA8B,iDAAM;AACpC,+BAA+B,sDAAW;AAC1C,wBAAwB,sDAAW;AACnC,8BAA8B,sDAAW;AACzC,kCAAkC,sDAAW;AAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kKAGE;AACF;AACA;AACA,YAAY,iDAAM;AAClB;;;2GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;kRA6BE;AACF;AACA;AACA,YAAY,qDAAU;AACtB;AACA,YAAY,6EAAmB;AAC/B,wDAAwD,mDAAQ,YAAY,+CAAI,YAAY,iDAAM;AAClG;AACA;AACA,0BAA0B,gDAAK;AAC/B,2BAA2B,iDAAM;AACjC,0BAA0B,sDAAW,uCAAuC,sDAAW,yCAAyC,sDAAW;AAC3I,oCAAoC,sDAAW;AAC/C,kCAAkC,sDAAW;AAC7C,kBAAkB,sDAAW;AAC7B,uBAAuB,sDAAW;AAClC,oBAAoB,0DAAe;AACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kLAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4KAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;6TAOE;AACF;AACA,oBAAoB,gDAAK;AACzB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,0BAA0B,0DAAe;AACzC,uBAAuB,uDAAY;AACnC;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0EAAc,EAAE,2EAAe;AAC5D,6BAA6B,2EAAe,EAAE,0EAAc;AAC5D,6BAA6B,0EAAc,EAAE,wEAAY;AACzD,6BAA6B,wEAAY,EAAE,0EAAc;AACzD,aAAa,qEAAS;AACtB,aAAa,oEAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,wEAAY;AACxD,8CAA8C,0EAAc;AAC5D,8CAA8C,0EAAc;AAC5D,+CAA+C,2EAAe;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sEAAU,iFAAiF,qEAAS;AAClI,8BAA8B,oEAAQ,sBAAsB,uEAAW,sBAAsB,yEAAa;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAgFE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B,YAAY,oDAAS;AACrB,YAAY,qDAAU;AACtB;AACA;AACA,qBAAqB,gDAAK;AAC1B,sBAAsB,gDAAK;AAC3B,2BAA2B,gDAAK;AAChC,0BAA0B,gDAAK;AAC/B,6BAA6B,gDAAK;AAClC,sBAAsB,oDAAS;AAC/B,wBAAwB,iDAAM;AAC9B,0BAA0B,sDAAW,uCAAuC,sDAAW,yCAAyC,sDAAW,0CAA0C,sDAAW;AAChM,wBAAwB,sDAAW;AACnC,0BAA0B,sDAAW;AACrC,2BAA2B,sDAAW;AACtC,yBAAyB,sDAAW;AACpC,kBAAkB,sDAAW;AAC7B,mBAAmB,0DAAe;AAClC,mCAAmC,uDAAY;AAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;8LAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;0MAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gNAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gNAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK;AACb,QAAQ,4DAAO,0BAA0B,0DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK;AACb,QAAQ,4DAAO,0BAA0B,0DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK;AACb,QAAQ,4DAAO,0BAA0B,0DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK;AACb,QAAQ,4DAAO,0BAA0B,0DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK;AACb,QAAQ,4DAAO,0BAA0B,0DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK;AACb,QAAQ,4DAAO,0BAA0B,0DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK;AACb,QAAQ,4DAAO,0BAA0B,0DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK;AACb,QAAQ,4DAAO,0BAA0B,0DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK;AACb,QAAQ,4DAAO,0BAA0B,0DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK;AACb,QAAQ,4DAAO,0BAA0B,0DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;gDAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oDAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0MAqCE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,iEAAgB;AAC5B,YAAY,6EAAmB;AAC/B;AACA;AACA;AACA,0BAA0B,sDAAW,uCAAuC,sDAAW;AACvF,iCAAiC,sDAAW;AAC5C,+BAA+B,sDAAW;AAC1C,qCAAqC,sDAAW;AAChD,yBAAyB,sDAAW;AACpC,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,oBAAoB,gDAAK;AACzB,wBAAwB,gDAAK;AAC7B,2BAA2B,gDAAK;AAChC,oBAAoB,gDAAK;AACzB,wBAAwB,sDAAW;AACnC,wBAAwB,gDAAK;AAC7B,qBAAqB,iDAAM;AAC3B,uBAAuB,iDAAM;AAC7B,qBAAqB,iDAAM;AAC3B,6BAA6B,iDAAM;AACnC,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC,2BAA2B,uDAAY;AACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;0MAoBE;AACF;AACA,wBAAwB,sDAAW;AACnC,oBAAoB,gDAAK;AACzB,0BAA0B,sDAAW;AACrC,2BAA2B,sDAAW;AACtC,0BAA0B,sDAAW;AACrC,wBAAwB,gDAAK;AAC7B,oBAAoB,gDAAK;AACzB,0BAA0B,sDAAW;AACrC,qBAAqB,gDAAK;AAC1B,2BAA2B,sDAAW;AACtC,6BAA6B,sDAAW;AACxC,0BAA0B,sDAAW;AACrC,yBAAyB,sDAAW;AACpC,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;6BAeE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;AACA;AACA,wBAAwB,sDAAW,uCAAuC,sDAAW;AACrF,yBAAyB,sDAAW;AACpC,uBAAuB,sDAAW;AAClC,yBAAyB,sDAAW;AACpC,wBAAwB,sDAAW;AACnC,0BAA0B,gDAAK;AAC/B,oBAAoB,gDAAK;AACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;6BAQE;AACF;AACA,wBAAwB,sDAAW;AACnC;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;6BAQE;AACF;AACA,wBAAwB,sDAAW;AACnC;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;6BAQE;AACF;AACA,wBAAwB,sDAAW;AACnC;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sDAAW;AAClD;AACA;;;;;;;;;;;;;;;;;mNAsBE;AACF;AACA,wBAAwB,sDAAW;AACnC,6BAA6B,sDAAW;AACxC,yBAAyB,sDAAW;AACpC,uBAAuB,sDAAW;AAClC,0BAA0B,sDAAW;AACrC,4BAA4B,sDAAW;AACvC,8BAA8B,sDAAW;AACzC,0BAA0B,gDAAK;AAC/B,qBAAqB,gDAAK;AAC1B,sBAAsB,gDAAK;AAC3B,qBAAqB,iDAAM;AAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;mEAKE;AACF;AACA,wBAAwB,sDAAW;AACnC,4BAA4B,sDAAW;AACvC,8BAA8B,sDAAW;AACzC,oBAAoB,sDAAW,oCAAoC,gDAAK;AACxE,0BAA0B,gDAAK;AAC/B;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;WAKE;AACF;AACA,wBAAwB,sDAAW;AACnC;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;WAKE;AACF;AACA,wBAAwB,sDAAW;AACnC;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;WAKE;AACF;AACA,wBAAwB,sDAAW;AACnC;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;okBAOE;AACF;AACA;AACA;AACA;AACA;AACA,kDAAkD,wCAAE,iBAAiB,sDAAK,OAAO,0DAAS;AAC1F;AACA;AACA,UAAU,0DAAS,0BAA0B,oDAAG;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAU;AAClC;AACA;AACA;AACA,6CAA6C,0EAAc;AAC3D;AACA;AACA,6CAA6C,2EAAe;AAC5D;AACA;AACA,8CAA8C,wEAAY;AAC1D;AACA;AACA,8CAA8C,0EAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,wDAAwD,oDAAG,mBAAmB,uDAAM,+CAA+C,oDAAG,wDAAwD,oDAAG,8DAA8D,0DAAS,kDAAkD,0DAAS;AACnU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;6BAUE;AACF;AACA;AACA,YAAY,8EAAkB,uBAAuB,+CAAI;AACzD;AACA,YAAY,6EAAmB;AAC/B;AACA;AACA,0BAA0B,gDAAK,YAAY,sDAAW;AACtD,oBAAoB,gDAAK;AACzB,uBAAuB,sDAAW;AAClC,sBAAsB,sDAAW;AACjC,uBAAuB,sDAAW;AAClC,0BAA0B,sDAAW;AACrC,0BAA0B,sDAAW;AACrC,oBAAoB,sDAAW,6CAA6C,sDAAW;AACvF,0BAA0B,uDAAY;AACtC,wBAAwB,uDAAY;AACpC,yBAAyB,uDAAY;AACrC,wBAAwB,uDAAY;AACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;8KAUE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;weAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;8FAgBE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;AACA;AACA,wBAAwB,sDAAW;AACnC,2BAA2B,sDAAW;AACtC,wBAAwB,sDAAW;AACnC,wBAAwB,sDAAW;AACnC,8BAA8B,sDAAW;AACzC,wBAAwB,sDAAW;AACnC,qBAAqB,uDAAY;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;6BASE;AACF;AACA;AACA;AACA,0BAA0B,sDAAW;AACrC;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;mNAqBE;AACF;AACA;AACA;AACA;AACA;AACA,mBAAmB,gDAAK;AACxB,oBAAoB,gDAAK;AACzB,2BAA2B,gDAAK;AAChC,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,4BAA4B,sDAAW;AACvC,4BAA4B,sDAAW;AACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;qRA2BE;AACF;AACA;AACA;AACA,YAAY,oDAAS;AACrB,YAAY,iDAAM;AAClB,YAAY,4DAAiB;AAC7B,YAAY,qDAAU;AACtB;AACA;AACA,oBAAoB,gDAAK;AACzB,2BAA2B,gDAAK;AAChC,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;4tBAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;orBAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;sWAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;8PAYE;AACF;AACA;AACA;AACA;AACA;AAC07B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpqH17B;AACA;AACA;AACA;AACwD;AACoO;AAC5M;AACpB;AAC6B;AACE;AAC5C;AAC/C;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qLAGiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iEAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4EAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;2LAAE;AACF,iBAAiB,iDAAU,EAExB,CAAC,iDAAU,uBAAuB,iDAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;oMAAE;AACF,oBAAoB,iDAAU,EAE3B,CAAC,iDAAU;AACd;AACA,QAAQ,6EAAmB;AAC3B,QAAQ,iDAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qLAAE;AACF,eAAe,iDAAU,EAEtB,CAAC,iDAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA,6BAA6B,4EAAY;AACzC;AACA;AACA;AACA;AACA;;;;uMAGuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4LAAE;AACF,wBAAwB,iDAAU,EAI/B,CAAC,8CAAO,IAAI,uDAAQ;AACvB,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wMAAE;AACF,4BAA4B,iDAAU,EAInC,CAAC,8CAAO,IAAI,uDAAQ;AACvB,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;iNAAE;AACF,+BAA+B,iDAAU,EAItC,CAAC,8CAAO,IAAI,uDAAQ;AACvB,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;wQAAE;AACF,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC,oDAMsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;uIAAC;AACD,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,mFAAmB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0EAAc,gBAAgB,2EAAe;AAC/E,iCAAiC,wEAAY,gBAAgB,0EAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;kFAAE;AACF,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,kCAAkC,iDAAU,EAgCzC,CAAC,8CAAO,IAAI,uDAAQ;AACvB,IAAI,iDAAU;AACd;AACA;AACA;AACA,QAAQ,6EAAmB;AAC3B,QAAQ,iDAAM;AACd,QAAQ,oDAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;uSAAE;AACF,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,gBAAgB,iDAAU,EAqBvB,CAAC,iDAAU;AACd;AACA;AACA;AACA,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd,QAAQ,qDAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mFAAmB;AAC3B,mBAAmB,qDAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kOAAE;AACF,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,wDAAS;AACb,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,wDAAS;AACb,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,gBAAgB,iDAAU,EA4DvB,CAAC,iDAAU;AACd;AACA,QAAQ,4DAAiB;AACzB,QAAQ,oDAAS;AACjB,QAAQ,uEAAY;AACpB,QAAQ,qDAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;;;;;;;8DAAE;AACF,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,gBAAgB,iDAAU,EAIvB,CAAC,iDAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;;;;;;;iEAAE;AACF,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,uBAAuB,iDAAU,EAI9B,CAAC,iDAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;0NAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wmBAAE;AACF,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,4BAA4B,iDAAU,EAKnC,CAAC,iDAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;mmBAAE;AACF,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,uBAAuB,iDAAU,EAK9B,CAAC,iDAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;mPAOe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;6MAAE;AACF,+BAA+B,iDAAU,EAItC,CAAC,8CAAO,IAAI,uDAAQ;AACvB,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;sNAAE;AACF,0BAA0B,iDAAU,EAEjC,CAAC,iDAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;yNAG6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;2XAAE;AACF,sCAAsC,iDAAU,EAM7C,CAAC,iDAAU,uBAAuB,qDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;uGAAE;AACF,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,6BAA6B,iDAAU,EAKpC,CAAC,iDAAU,uBAAuB,qDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,oEAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uEAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0DAAE;AACF,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,2DAAgB;AAC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;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;gMAAE;AACF,sDAAsD,iDAAU,EAW7D,CAAC,iDAAU,uBAAuB,6EAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAO;AAClC,8BAA8B,yCAAO;AACrC,kCAAkC,yCAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;8KAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4IAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;iDAAE;AACF,4BAA4B,iDAAU,EA2BnC,CAAC,iDAAU,uBAAuB,6EAAmB;AACxD;AACA,QAAQ,4DAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;qJAAE;AACF,iDAAU;AACV,IAAI,wDAAS;AACb,IAAI,iDAAU,gBAAgB,oFAAqB;AACnD;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,0BAA0B,iDAAU,EAgBjC,CAAC,iDAAU,uBAAuB,6EAAmB;AACxD,QAAQ,4DAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;+LAAE;AACF,yBAAyB,iDAAU,EAIhC,CAAC,8CAAO,IAAI,uDAAQ;AACvB,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8NAAE;AACF,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,+BAA+B,iDAAU,EAyDtC,CAAC,iDAAU,uBAAuB,6EAAmB;AACxD,QAAQ,4DAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;iDAAE;AACF,4BAA4B,iDAAU,EA2BnC,CAAC,iDAAU,uBAAuB,6EAAmB;AACxD;AACA,QAAQ,4DAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;iRAAE;AACF,iDAAU;AACV,IAAI,wDAAS,CAAC,mFAAuB;AACrC,IAAI,iDAAU,gBAAgB,mFAAuB;AACrD;AACA,sBAAsB,iDAAU,EAyB7B,CAAC,iDAAU,uBAAuB,6EAAmB;AACxD;AACA,QAAQ,iDAAM;AACd,QAAQ,4DAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;iDAAE;AACF,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,qBAAqB,iDAAU,EAM5B,CAAC,iDAAU,uBAAuB,6EAAmB;AACxD,QAAQ,4DAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C;AACA;AACA;AACA;AACA,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0bAAE;AACF,iDAAU;AACV,IAAI,wDAAS,CAAC,iFAAqB;AACnC,IAAI,iDAAU,gBAAgB,iFAAqB;AACnD;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iBAAiB,iDAAU,EA4DxB,CAAC,iDAAU;AACd,QAAQ,qDAAU;AAClB,QAAQ,6EAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAAE;AACF,4DAA4D,iDAAU,EAUnE,CAAC,iDAAU,uBAAuB,6EAAmB;AACxD;AACA;AACA;AACA,IAAI,yDAAY;AAChB,IAAI,gFAAoB;AACxB,IAAI,iFAAkB;AACtB,IAAI,wEAAY;AAChB,IAAI,8EAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qEAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQgB;AAChB;AACA;AACA;AACA;AACA;AACuW;;;;;;;;;;;;;;;;;;;;;;;;;ACxyCvW;AACA;AACA;AACA;AACuH;AAC1D;AACT;AACpD;;;;AACA;AACA;AACA;AACA;AACA;;;;qLAKE;AACF;AACA;AACA,YAAY,sDAAW,uBAAuB,mDAAQ;AACtD;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;0VAME;AACF;AACA,mBAAmB,gDAAK;AACxB,kBAAkB,gDAAK;AACvB,oBAAoB,gDAAK;AACzB,qBAAqB,gDAAK;AAC1B;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gEAAO;AACtB;AACA;AACA,eAAe,kEAAS;AACxB;AACA;AACA,QAAQ,kEAAM;AACd;AACA;;;;;;;;;;;;;;;;6BAME;AACF;AACA;AACA,YAAY,qDAAU;AACtB;AACA;AACA,qBAAqB,gDAAK;AAC1B,yBAAyB,gDAAK;AAC9B,6BAA6B,gDAAK;AAClC,2BAA2B,gDAAK;AAChC,sBAAsB,gDAAK;AAC3B,mBAAmB,gDAAK;AACxB,8BAA8B,gDAAK;AACnC,uBAAuB,gDAAK;AAC5B,yBAAyB,gDAAK;AAC9B,uBAAuB,gDAAK;AAC5B,wBAAwB,gDAAK;AAC7B,qBAAqB,gDAAK;AAC1B,wBAAwB,gDAAK;AAC7B,4BAA4B,gDAAK;AACjC,oBAAoB,gDAAK;AACzB,wBAAwB,gDAAK;AAC7B,uBAAuB,gDAAK;AAC5B,0BAA0B,gDAAK;AAC/B,uBAAuB,gDAAK;AAC5B,sBAAsB,gDAAK;AAC3B,oBAAoB,gDAAK;AACzB,oCAAoC,uDAAY;AAChD,8BAA8B,uDAAY;AAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;qTAME;AACF;AACA;AACA;AACA;AACA;AAC0G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtQ1G;AACA;AACA;AACA;AACqP;AAC7C;AAC1E;AAChF;AACH;AAC4B;AACxB;AAC/C;AACA;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mFAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mFAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mFAAmB;AACvC;AACA;AACA,oBAAoB,8EAAgB;AACpC;AACA;AACA;AACA,mCAAmC,qEAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uEAAS;AACxB;AACA;AACA,eAAe,mEAAK;AACpB;AACA;AACA,eAAe,4EAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oEAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gFAAkB;AACjC;AACA;AACA,eAAe,0EAAY;AAC3B;AACA;AACA,eAAe,4EAAc;AAC7B;AACA;AACA,eAAe,4EAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+EAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;0BAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yDAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;yJAGE;AACF;AACA;AACA;AACA,yCAAyC,iDAAM,4BAA4B,mDAAQ;AACnF;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kKAGE;AACF;AACA;AACA;AACA,yCAAyC,iDAAM,4BAA4B,mDAAQ;AACnF;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA,gCAAgC,+CAAS;AACzC,sBAAsB,yDAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4JAGE;AACF;AACA;AACA;AACA,YAAY,iDAAM;AAClB;;;iIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mFAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA,oDAAoD,+CAAS,mBAAmB,yDAAS;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2CAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wKAGE;AACF;AACA;AACA;AACA,YAAY,iDAAM;AAClB;;;iIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,uBAAuB,uDAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wDAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAK;AACjB,YAAY,4DAAO,0BAA0B,0DAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qKAGE;AACF;AACA;AACA,YAAY,iEAAgB;AAC5B;;;2HAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uDAAY;AACnD;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0CAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4EAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;sSAeE;AACF;AACA;AACA,YAAY,qDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAS;AACrB,YAAY,iDAAM;AAClB;AACA;AACA,sBAAsB,gDAAK;AAC3B,qBAAqB,gDAAK;AAC1B,0BAA0B,gDAAK;AAC/B,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B,+BAA+B,gDAAK;AACpC,yBAAyB,gDAAK;AAC9B,2BAA2B,gDAAK;AAChC,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,kCAAkC,iDAAM;AACxC,oBAAoB,iDAAM;AAC1B,mBAAmB,iDAAM;AACzB,6BAA6B,iDAAM;AACnC,+BAA+B,oDAAS;AACxC,2BAA2B,oDAAS,SAAS,iFAAqB;AAClE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yDAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,sDAAW;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sDAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;yJAGE;AACF;AACA;AACA,YAAY,yDAAc;AAC1B,YAAY,mEAAwB;AACpC,YAAY,mDAAQ;AACpB,YAAY,qDAAU,uBAAuB,iDAAM,sCAAsC,mDAAQ;AACjG;;;;;;;;kCAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;mbASE;AACF;AACA;AACA;AACA;AACA;AAC4K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtyC5K;AACA;AACA;AACA;AACkP;AAC5M;AAC+B;AACP;AACkB;AAC/B;AACF;AAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mFAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mFAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yCAAO;AACzC;AACA;AACA;AACA,iCAAiC,yCAAO;AACxC;AACA;AACA;AACA,oCAAoC,yCAAO;AAC3C;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA,sDAAsD,sDAAM,aAAa,mDAAG;AAC5E;AACA,YAAY,sDAAM,qCAAqC,mDAAG;AAC1D,uCAAuC,oDAAI;AAC3C;AACA;AACA;AACA;AACA,YAAY,yDAAS,kCAAkC,sDAAM;AAC7D,QAAQ,mDAAG;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;kKAGE;AACF;AACA;AACA,YAAY,iDAAM;AAClB;;;2GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;+EAKE;AACF;AACA;AACA,oDAAoD,iDAAM,SAAS,yDAAU;AAC7E,YAAY,qDAAU;AACtB,YAAY,oDAAS;AACrB;AACA;AACA,oBAAoB,gDAAK;AACzB,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,uBAAuB,sDAAW;AAClC,wBAAwB,sDAAW;AACnC,sBAAsB,sDAAW;AACjC;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;gMAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qNAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,yCAAO;AAC7C,qCAAqC,yCAAO;AAC5C,sCAAsC,yCAAO;AAC7C,oCAAoC,yCAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gEAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,sDAAM,wFAAwF,sDAAM;AACpK;AACA;AACA,YAAY,sDAAM;AAClB;AACA,YAAY,sDAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,sDAAM;AACxE,iBAAiB,mFAAmB;AACpC;AACA;AACA;AACA,YAAY,sDAAM;AAClB;AACA,YAAY,sDAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,oDAAI;AACxD;AACA;AACA,wDAAwD,oDAAI;AAC5D;AACA;AACA,wBAAwB,2CAAK,6BAA6B,sDAAM;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wVA0DE;AACF;AACA;AACA,YAAY,iDAAM;AAClB,YAAY,6EAAmB;AAC/B,YAAY,4DAAiB;AAC7B,YAAY,qDAAU;AACtB;AACA;AACA;AACA,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,wBAAwB,gDAAK;AAC7B,0BAA0B,gDAAK;AAC/B,wBAAwB,gDAAK;AAC7B,8BAA8B,gDAAK;AACnC,mBAAmB,gDAAK;AACxB,0BAA0B,gDAAK;AAC/B,wBAAwB,gDAAK;AAC7B,6BAA6B,gDAAK;AAClC,8BAA8B,gDAAK;AACnC,gCAAgC,gDAAK;AACrC,wBAAwB,gDAAK;AAC7B,8BAA8B,gDAAK;AACnC,6BAA6B,gDAAK;AAClC,gCAAgC,gDAAK;AACrC,wBAAwB,gDAAK;AAC7B,iCAAiC,0DAAe,SAAS,sDAAW;AACpE,uCAAuC,0DAAe,wCAAwC,sDAAW;AACzG,8CAA8C,0DAAe,+CAA+C,sDAAW;AACvH,2BAA2B,uDAAY;AACvC,yBAAyB,uDAAY;AACrC,mBAAmB,oDAAS;AAC5B,wBAAwB,iDAAM;AAC9B,sBAAsB,iDAAM;AAC5B,uBAAuB,iDAAM;AAC7B,wBAAwB,iDAAM;AAC9B,uBAAuB,iDAAM;AAC7B,sBAAsB,iDAAM;AAC5B,yBAAyB,iDAAM;AAC/B,uBAAuB,iDAAM;AAC7B,0BAA0B,gDAAK;AAC/B,0BAA0B,sDAAW;AACrC,kBAAkB,sDAAW;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,oDAAI,KAAK,sDAAM;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;qPAKE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gDAAK;AACxB;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;mjBAQE;AACF;AACA;AACA;AACA;AACA;AAC8Q;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrsD9Q;AACA;AACA;AACA;AAC6M;AACjJ;AAC3B;AACyC;AACyB;AACpD;AAC/C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6BAA6B,yDAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;0BAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uQA6CE;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,6EAAmB;AAC/B;AACA;AACA,wBAAwB,sDAAW;AACnC,oBAAoB,iDAAM;AAC1B,yBAAyB,sDAAW;AACpC,wBAAwB,sDAAW;AACnC,0BAA0B,sDAAW;AACrC,2BAA2B,sDAAW,uCAAuC,gDAAK;AAClF,4BAA4B,sDAAW,wCAAwC,gDAAK;AACpF,4BAA4B,gDAAK;AACjC,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,0BAA0B,gDAAK;AAC/B,6BAA6B,gDAAK;AAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+CAAS;AACpD,sBAAsB,sDAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+CAAS;AAClD,sBAAsB,4DAAY,OAAO,sDAAM;AAC/C;AACA,wCAAwC,+CAAS;AACjD,sBAAsB,4DAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,+CAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,+CAAS;AACnD,sBAAsB,sDAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ioBAME;AACF;AACA;AACA,YAAY,qDAAU;AACtB,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB,YAAY,uEAAY;AACxB,kDAAkD,mDAAQ;AAC1D,kDAAkD,mDAAQ,YAAY,iDAAM;AAC5E;AACA;AACA,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,4BAA4B,gDAAK;AACjC,qBAAqB,gDAAK;AAC1B,wBAAwB,gDAAK;AAC7B,sBAAsB,gDAAK;AAC3B,uBAAuB,gDAAK;AAC5B,qBAAqB,gDAAK;AAC1B,2BAA2B,gDAAK;AAChC,4BAA4B,gDAAK;AACjC,2BAA2B,gDAAK;AAChC,wBAAwB,gDAAK;AAC7B,yBAAyB,gDAAK;AAC9B,8BAA8B,gDAAK;AACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA,yCAAyC,2EAAiB;AAC1D;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;AACA;AACA,yBAAyB,gDAAK;AAC9B;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA,2BAA2B,sEAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;2hBAQE;AACF;AACA;AACA;AACA;AACA;AACmI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzwBnI;AACA;AACA;AACA;AACkR;AAC/N;AACgD;AACK;AAChE;AACA;AACiE;AAC1D;AACkC;AACjF;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAI;AACpB;AACA,8BAA8B,oEAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C,8BAA8B,uDAAY;AAC1C,iCAAiC,uDAAY;AAC7C,8BAA8B,uDAAY;AAC1C,8BAA8B,uDAAY;AAC1C,+BAA+B,uDAAY;AAC3C,+BAA+B,uDAAY;AAC3C,+BAA+B,uDAAY;AAC3C,gCAAgC,uDAAY;AAC5C,+BAA+B,uDAAY;AAC3C,uCAAuC,uDAAY;AACnD;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6DAAW;AAC1C;AACA;AACA;AACA;AACA,6BAA6B,6DAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6DAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6DAAW;AAC3C;AACA;AACA,+BAA+B,8EAA4B;AAC3D;AACA;AACA,sCAAsC,8DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4JAGE;AACF;AACA;AACA,YAAY,4DAAU;AACtB;;;sHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uDAAY;AACpD,uCAAuC,uDAAY;AACnD,gCAAgC,uDAAY;AAC5C,+BAA+B,uDAAY;AAC3C,yBAAyB,uDAAY;AACrC,kCAAkC,uDAAY;AAC9C,uCAAuC,uDAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAU;AACvB,aAAa,uEAAW;AACxB,aAAa,uEAAW;AACxB,aAAa,oEAAQ;AACrB,aAAa,wEAAY;AACzB,aAAa,0EAAc;AAC3B,wCAAwC,0EAAc,EAAE,2EAAe;AACvE,wCAAwC,2EAAe,EAAE,0EAAc;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sEAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uEAAW;AAC9C;AACA;AACA;AACA;AACA,mCAAmC,uEAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wKAGE;AACF;AACA;AACA;AACA;;;uEAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;uOAKE;AACF;AACA;AACA,YAAY,sDAAW;AACvB;;;;;;gHAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6DAAiB;AAC9B,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI;AACpC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sEAAU,sBAAsB,sEAAU;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA,iCAAiC,+CAAS,yBAAyB,sDAAM;AACzE;AACA;AACA,oCAAoC,2CAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6MAsEE;AACF;AACA;AACA;AACA,YAAY,6EAAmB;AAC/B;AACA,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB,YAAY,4DAAiB;AAC7B,YAAY,qDAAU;AACtB;AACA;AACA,qBAAqB,gDAAK;AAC1B,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB,2BAA2B,gDAAK;AAChC,uBAAuB,gDAAK;AAC5B,2BAA2B,gDAAK;AAChC,0BAA0B,gDAAK;AAC/B,2BAA2B,uDAAY;AACvC,yBAAyB,oDAAS;AAClC,+BAA+B,oDAAS;AACxC,qBAAqB,iDAAM;AAC3B,sBAAsB,iDAAM;AAC5B,qBAAqB,iDAAM;AAC3B,qBAAqB,iDAAM;AAC3B,0BAA0B,iDAAM;AAChC,iCAAiC,sDAAW,uCAAuC,sDAAW,uCAAuC,sDAAW;AAChJ,gCAAgC,sDAAW;AAC3C,kBAAkB,sDAAW;AAC7B,4BAA4B,uDAAY;AACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA,uBAAuB,2EAAiB;AACxC;;;;0tBAAC;AACD;AACA,qBAAqB,gDAAK;AAC1B,iCAAiC,gDAAK;AACtC,4BAA4B,gDAAK;AACjC,iCAAiC,gDAAK;AACtC,mCAAmC,gDAAK;AACxC,oCAAoC,gDAAK;AACzC,mCAAmC,gDAAK;AACxC,2BAA2B,gDAAK;AAChC,iCAAiC,gDAAK;AACtC,iCAAiC,gDAAK;AACtC,oBAAoB,gDAAK;AACzB,qBAAqB,gDAAK;AAC1B,qBAAqB,gDAAK;AAC1B,oBAAoB,gDAAK;AACzB,qBAAqB,gDAAK;AAC1B,kCAAkC,gDAAK;AACvC;AAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;gMAYE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;;;;;;;;;;;;;uIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;iGAKE;AACF;AACA;AACA,YAAY,qDAAU;AACtB;AACA,YAAY,iDAAM;AAClB,YAAY,oDAAS;AACrB;AACA;AACA,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,2BAA2B,gDAAK;AAChC,yCAAyC,uDAAY;AACrD,wCAAwC,uDAAY;AACpD,6BAA6B,uDAAY;AACzC,+BAA+B,sDAAW;AAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;uDAKE;AACF;AACA;AACA,YAAY,qDAAU;AACtB;AACA;AACA;AACA;AACA,oBAAoB,gDAAK;AACzB,oBAAoB,gDAAK;AACzB,wBAAwB,sDAAW;AACnC,2BAA2B,sDAAW;AACtC,uBAAuB,sDAAW;AAClC,yBAAyB,sDAAW;AACpC,2BAA2B,sDAAW;AACtC,4BAA4B,sDAAW;AACvC,2BAA2B,sDAAW;AACtC,4BAA4B,sDAAW;AACvC,sBAAsB,uDAAY;AAClC,qBAAqB,uDAAY;AACjC,sBAAsB,uDAAY;AAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAW;AAC/B;AACA;AACA;AACA;AACA,oBAAoB,sEAAU;AAC9B;AACA;AACA;AACA,oBAAoB,uEAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;0RAgCE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,2BAA2B,gDAAK;AAChC,4BAA4B,uDAAY;AACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;oJAsDE;AACF;AACA;AACA;AACA,YAAY,6EAAmB;AAC/B;AACA;AACA,mBAAmB,gDAAK;AACxB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAyCE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;AACA;AACA;AACA,uBAAuB,gDAAK;AAC5B,oBAAoB,gDAAK;AACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;eA0CE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;AACA;AACA;AACA,uBAAuB,gDAAK;AAC5B,mBAAmB,gDAAK;AACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;6GAKE;AACF;AACA;AACA;AACA;AACA,YAAY,qDAAU;AACtB;AACA;AACA,kBAAkB,gDAAK;AACvB,uBAAuB,gDAAK;AAC5B,uBAAuB,gDAAK;AAC5B,2BAA2B,gDAAK;AAChC,mBAAmB,sDAAW;AAC9B,2BAA2B,sDAAW;AACtC,uBAAuB,sDAAW;AAClC,4BAA4B,sDAAW;AACvC,gCAAgC,sDAAW;AAC3C,2BAA2B,sDAAW;AACtC,gCAAgC,sDAAW;AAC3C,4BAA4B,uDAAY;AACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;yFAWE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;;;;;;;;;;;;uIAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;4OAKE;AACF;AACA;AACA,YAAY,2DAAgB;AAC5B;AACA;AACA,8BAA8B,gDAAK;AACnC;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;+6BAcE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;6SAUE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6DAAiB;AAC9B,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI;AACpC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sEAAU,sBAAsB,sEAAU;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;iGAgBE;AACF;AACA;AACA,YAAY,6EAAmB;AAC/B;AACA;AACA,uBAAuB,gDAAK;AAC5B;;;;;;;;;;;;;;;;;;;oBAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;qZAUE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;uMAQE;AACF;AACA;AACA;AACA;AACA;AAC4vB;;;;;;;;;;;;;;;;;AC3tH5vB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;ACVyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,sDAAS;AAC5B;AACA;AACA,0BAA0B,+BAA+B;AACzD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpByC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,sDAAS;AAC5B;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtB+H;AACnF;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACF5C;AAC2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,8BAA8B,KAAK;AACnC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,oCAAoC,KAAK;AACzC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAiB;AACnC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO,cAAc,wDAAiB;AACtC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;;;;;;;;;;;;;;;;ACvJP;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;ACLoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iDAAS;AAC7B;AACA,KAAK;AACL;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA,iBAAiB,iDAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7B8C;AACyB;AACD;AACN;AACM;AACL;AAC7B;AACF;AACI;AACtC;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,kBAAkB;AAC7B,aAAa,KAAK;AAClB;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA,SAAS,qDAAqD;AAC9D,SAAS,6DAA6D;AACtE,SAAS;AACT;AACA;AACA,mCAAmC,2BAA2B;AAC9D;AACA;AACO;AACP,8BAA8B,iDAAS;AACvC;AACA,yBAAyB,oFAAsB;AAC/C,QAAQ,mDAAI;AACZ;AACA;AACA;AACA;AACA;AACA,QAAQ,gDAAQ;AAChB,yBAAyB,iDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,qBAAqB;AAChC,aAAa,KAAK;AAClB;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA,SAAS,qDAAqD;AAC9D,SAAS,6DAA6D;AACtE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qDAAqD;AACjE,YAAY;AACZ;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAsC;AAC7D,uBAAuB;AACvB;AACA,UAAU;AACV,gBAAgB,mCAAmC;AACnD;AACA;AACA;AACA,eAAe,oDAAoD;AACnE,eAAe;AACf;AACA;AACA,IAAI;AACJ;AACA;AACA;AACO;AACP,YAAY,0EAA0E;AACtF,gCAAgC,0EAAe;AAC/C;AACA;AACA;AACA,uBAAuB,iDAAS,sBAAsB,uDAAa;AACnE,sBAAsB,iDAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mFAAa,CAAC,6EAAgB;AAClD;AACA,0BAA0B,oDAAM;AAChC;AACA;AACA;AACA;AACA,QAAQ,iDAAS,eAAe,iDAAS;AACzC,0BAA0B,kDAAI;AAC9B,0BAA0B,kDAAI;AAC9B;AACA;AACA,0BAA0B,+CAAO;AACjC;AACA,YAAY,kEAAO;AACnB,YAAY,kDAAI,WAAW,gDAAM;AACjC,iBAAiB;AACjB;AACA;AACA,0BAA0B,kEAAO;AACjC;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACtK2C;AAC3C;AACA;AACA;AACA;AACA;AACA,uCAAuC,MAAM;AAC7C,kCAAkC,MAAM;AACxC,2BAA2B,MAAM;AACjC;AACA;AACO,+DAA+D,OAAO,EAAE,QAAQ,EAAE,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACO,iBAAiB,oCAAoC;AAC5D,eAAe,0BAA0B;AACzC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACO,uBAAuB,oCAAoC;AAClE,cAAc,0BAA0B;AACxC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACO,mBAAmB,oCAAoC;AAC9D,+CAA+C,MAAM;AACrD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACO,0BAA0B,oCAAoC;AACrE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACO,2BAA2B,gDAAQ;AAC1C;AACA;AACA;AACO,yBAAyB,8CAAM;AACtC;AACA;AACA;AACO;AACP;AACA,wBAAwB;AACxB;AACA,4BAA4B;AAC5B;;;;;;;;;;;;;;;;;ACpEqC;AACrC;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,iDAAS;AACpB;;;;;;;;;;;;;;;;;;;;;ACRqC;AACuC;AACtB;AACM;AAC5D;AACA;AACA,4BAA4B,wCAAwC,4DAA4D,wDAAwD;AACxL;AACA,WAAW,2BAA2B;AACtC,aAAa,WAAW;AACxB;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA,mBAAmB,cAAc,IAAI,gBAAgB,IAAI,eAAe;AACxE,qCAAqC,0BAA0B,mDAAmD,GAAG;AACrH;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,WAAW,yEAAwB;AACnC;AACA;AACA;AACA,wFAAwF,wDAAwD;AAChJ;AACA,WAAW,KAAK;AAChB,WAAW,gDAAgD;AAC3D,aAAa,KAAK;AAClB;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA,MAAM,qDAAqD;AAC3D,MAAM,6DAA6D;AACnE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAqE;AACpF,eAAe,qDAAqD;AACpE;AACA,IAAI;AACJ;AACA;AACA,SAAS,2DAA2D;AACpE;AACA;AACA;AACO;AACP,SAAS,iDAAS,iBAAiB,yFAA2B;AAC9D;AACA;AACA,qCAAqC,mEAAgB;AACrD;;;;;;;;;;;;;;;;;;;AChE4E;AACvC;AACkD;AACvF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iDAAS;AAC/B,mBAAmB,+CAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8CAAM;AACpC;AACA;AACA;AACA;AACA;AACA,SAAS,iDAAS;AAClB;AACA;AACA;AACA,QAAQ,gDAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iDAAS;AACpC;AACA;AACA;AACA;AACA,QAAQ,8CAAM;AACd;AACA;AACA,mBAAmB,8CAAM;AACzB;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D,aAAa,iDAAS;AACtB,iBAAiB,iDAAS;AAC1B,iCAAiC,kDAAU,kBAAkB,iDAAM;AACnE;AACA,eAAe,kDAAU;AACzB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,gBAAgB,6CAAS;AACzB,kBAAkB,yFAA2B;AAC7C;AACA;;;;;;;;;;;;;;;;;;AC9FwD;AACoB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C;AAC3C,iBAAiB,yFAA2B,YAAY,gDAAQ;AAChE;AACA;AACA,gBAAgB,yFAA2B;AAC3C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS,yFAA2B;AACpC;AACA,qBAAqB,+CAAO;AAC5B;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,oCAAoC,+CAA+C,wCAAwC,wDAAwD;AACnL;AACA,WAAW,8CAA8C;AACzD,aAAa,2BAA2B;AACxC;AACA;AACO;AACP,QAAQ,iDAAS;AACjB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACxEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;;;;;;;;;;;;;;;;;AChB4E;AACnF,iBAAiB,iDAAG;AACpB;AACA;AACA,mDAAmD,kDAAkD,+CAA+C,8CAA8C;AAClM;AACA;AACA;AACA;AACA,QAAQ,iCAAiC;AACzC,QAAQ,iCAAiC;AACzC,QAAQ;AACR;AACA;AACA;AACA,OAAO,sCAAsC;AAC7C,OAAO;AACP;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC,4BAA4B;AAC5B;AACA;AACA,WAAW,KAAK;AAChB,WAAW,uBAAuB;AAClC,WAAW,KAAK;AAChB,aAAa,iBAAiB;AAC9B,2DAA2D,8CAA8C;AACzG;AACA;AACO;AACP;AACA;AACA;AACA;AACA,mBAAmB,kDAAI,cAAc,kEAAoB;AACzD,WAAW,8DAAgB;AAC3B;;;;;;;;;;;;;;;;;;;;;ACvC4D;AACd;AACM;AACc;AAClE;AACA;AACA;AACO;AACP,kBAAkB,+CAAO;AACzB,gDAAgD,YAAY;AAC5D;AACA,iBAAiB,iDAAG;AACpB;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,mBAAmB;AAC9B,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,aAAa,+BAA+B;AAC5C;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA,SAAS,qDAAqD;AAC9D,SAAS,6DAA6D;AACtE,SAAS;AACT;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kDAAI,cAAc,6DAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iDAAS;AACzB,+BAA+B,8EAAQ;AACvC;AACA;AACA;AACA;AACA,iBAAiB;AACjB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,8CAA8C;AACrD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC/C4D;AACE;AACnB;AAC3C;AACA;AACA,wBAAwB,iDAAS;AACjC;AACA;AACA;AACA,KAAK;AACL,6BAA6B,IAAI;AACjC;AACA,oBAAoB,gDAAQ;AAC5B;AACA,uCAAuC,8CAAM,CAAC,6CAAS;AACvD;AACA,cAAc,2EAAe,mBAAmB;AAChD,kCAAkC,WAAW;AAC7C;AACA,iCAAiC,WAAW;AAC5C,CAAC;AACD;AACA;AACA,yBAAyB,oCAAoC;AAC7D;AACA,WAAW,OAAO;AAClB,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACO,2CAA2C;AAClD;AACA,YAAY,0DAAsB;AAClC;;;;;;;;;;;;;;;;;;AChC8C;AACT;AACrC;AACA,QAAQ,+CAAO;AACf;AACA;AACA,QAAQ,+CAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iDAAM;AACvB;AACA;AACA;AACA;AACA;AACA,uDAAuD,uCAAuC;AAC9F,WAAW,kBAAkB;AAC7B,aAAa,UAAU;AACvB;AACA;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,mBAAmB,cAAc,IAAI,gBAAgB,IAAI,eAAe;AACxE,8CAA8C,2BAA2B;AACzE;AACA,iBAAiB,cAAc,IAAI,gBAAgB,IAAI,cAAc;AACrE;AACA;AACA;AACO;AACP,iBAAiB,iDAAS;AAC1B;AACA;;;;;;;;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxCuD;AACnB;AACpC;AACA,YAAY,iDAAS;AACrB;AACA;AACA;AACA;AACA;AACO;AACP,iBAAiB,iDAAM;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C,sCAAsC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,qCAAqC;AAC5C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iDAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,iDAAS;AACnC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB,iDAAS,WAAW,8CAAM;AAClD,sCAAsC,iDAAS,WAAW,8CAAM;AAChE;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB,iDAAS,WAAW,8CAAM;AAClD,sCAAsC,iDAAS,WAAW,8CAAM;AAChE;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACO;AACP;AACA,8BAA8B,iDAAM;AACpC;AACA,kCAAkC,iDAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP,WAAW,iDAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC9KA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;;;;;;;;;;;;;;;;;ACvCgC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,2CAA2C;AAC3C;AACA;AACO;AACP,WAAW,oDAAQ;AACnB;;;;;;;;;;;;;;;;;;AChByC;AACA;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,sCAAsC;AACtC;AACA;AACO;AACP,oBAAoB,sDAAS;AAC7B;AACA,WAAW,sDAAS;AACpB;;;;;;;;;;;;;;;;;ACnBuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,yCAAyC;AACzC;AACA;AACO;AACP,WAAW,oDAAQ;AACnB;;;;;;;;;;;;;;;;;;;AChByC;AACA;AACY;AACrD;AACA,gFAAgF,kEAAc;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,wCAAwC;AACxC;AACA;AACO;AACP,oBAAoB,sDAAS;AAC7B;AACA;AACA;AACA,qBAAqB,sDAAS;AAC9B;;;;;;;;;;;;;;;;;ACzBqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,uCAAuC;AACvC;AACA;AACO;AACP,WAAW,kDAAO;AAClB;;;;;;;;;;;;;;;;;;AChByC;AACJ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,uCAAuC;AACvC;AACA;AACO;AACP,WAAW,sDAAS,CAAC,kDAAO;AAC5B;;;;;;;;;;;;;;;;;ACjByC;AACzC;AACA;AACA;AACO;AACP,oBAAoB,sDAAS;AAC7B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,oBAAoB;AACpB;AACA;AACO;;;;;;;;;;;;;;;;;;ACZP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;;;;;;;;;;;;;;;;;ACXkC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,wCAAwC;AACxC;AACA;AACO;AACP;AACA;AACA;AACA;AACA,WAAW,sDAAS;AACpB;;;;;;;;;;;;;;;;;;;ACzB6C;AACJ;AACA;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE,uEAAuE;AACvE;AACA;AACO,8CAA8C,8DAAiB;AACtE,oBAAoB,sDAAS;AAC7B;AACA;AACA,WAAW,sDAAS;AACpB;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB;;;;;;;;;;;;;;;;ACjCnB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;;;;;;;;;;;;;;;;;ACfiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE;AACA;AACO,8CAA8C,8EAAoB,sBAAsB,8EAAoB;;;;;;;;;;;;;;;;;ACfxD;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE,kEAAkE;AAClE;AACA;AACO,4CAA4C,wEAAiB,sBAAsB,wEAAiB;;;;;;;;;;;;;;;;ACd3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,iEAAiE;AACjE,iEAAiE;AACjE;AACA;AACO;;;;;;;;;;;;;;;;ACdP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,gEAAgE;AAChE,gEAAgE;AAChE;AACA;AACO;;;;;;;;;;;;;;;;;ACdoC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACO;AACP,WAAW,wDAAU;AACrB;;;;;;;;;;;;;;;;;ACdiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,iDAAiD;AACjD,+CAA+C;AAC/C;AACA;AACO,yCAAyC,8DAAa;;;;;;;;;;;;;;;;;ACdtB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,2CAA2C;AAC3C;AACA;AACO,oCAAoC,oDAAQ;;;;;;;;;;;;;;;;;ACbF;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,8CAA8C;AAC9C,4CAA4C;AAC5C;AACA;AACO,sCAAsC,8DAAa;;;;;;;;;;;;;;;;;ACdf;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACO;AACP,WAAW,wDAAU;AACrB;;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,wDAAwD;AACxD,gEAAgE;AAChE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACnBqC;AACM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACO;AACP,oBAAoB,wDAAU;AAC9B,WAAW,kDAAO;AAClB;;;;;;;;;;;;;;;;;AChBiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,gDAAgD;AAChD,8CAA8C;AAC9C;AACA;AACO,wCAAwC,8DAAa;;;;;;;;;;;;;;;;;ACdrB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,2CAA2C;AAC3C;AACA;AACO,mCAAmC,oDAAQ;;;;;;;;;;;;;;;;;ACbD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,6CAA6C;AAC7C,2CAA2C;AAC3C;AACA;AACO,qCAAqC,8DAAa;;;;;;;;;;;;;;;;;ACdpB;AACrC;AACA;AACA;AACO,wCAAwC,kDAAO;;;;;;;;;;;;;;;;;;ACJT;AACH;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACO;AACP,WAAW,uDAAS,gBAAgB,+DAAkB;AACtD;;;;;;;;;;;;;;;;;;;AChByC;AACE;AACU;AACrD;AACA;AACA;AACO;AACP;AACA,sBAAsB,wDAAU;AAChC,qDAAqD,kEAAc,CAAC,sDAAS;AAC7E;;;;;;;;;;;;;;;;;;;ACVyC;AACE;AACU;AACrD;AACA;AACA;AACO;AACP;AACA,sBAAsB,wDAAU;AAChC,wDAAwD,kEAAc,CAAC,sDAAS;AAChF;;;;;;;;;;;;;;;;;;;;;ACViC;AACI;AACM;AACQ;AACV;AACzC;AACA,yBAAyB,iDAAU;AACnC,eAAe,kDAAO,CAAC,gEAAa;AACpC;AACA,WAAW,kDAAO;AAClB;AACA;AACA,4BAA4B,wDAAU;AACtC;AACA;AACA,uCAAuC,kDAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC;AACA;AACO,yCAAyC,iDAAU;AAC1D,yBAAyB,kDAAO;AAChC,yBAAyB,kDAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9Ce;AACf;AACA;;;;;;;;;;;;;;;;;;;ACF6B;AACY;AACY;;AAErD;;AAEA,oBAAoB,8CAAK;AACzB;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,sBAAsB;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,+CAAK;AACxB;;AAEA;AACA,mBAAmB,6CAAG;AACtB;;AAEA;AACA,mBAAmB,6CAAG;AACtB;;AAEA;AACA,mBAAmB,6CAAG;AACtB;AACA;;AAEA;AACA,mBAAmB,IAAI,SAAS,IAAI,SAAS,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF,oBAAoB,qDAAW;;AAE/B,iEAAe,KAAK;;;;;;;;;;;;;;;ACtIpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW;;;;;;;;;;;;;;;;;;;;;;ACpDG;AACI;AACQ;;AAEzC,gBAAgB,wDAAe;;AAE/B;AACA,mCAAmC,qDAAW;AAC9C;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB,8CAAK;AAC7B,oBAAoB;AACpB,cAAc;;AAEd,cAAc;;AAEd,qBAAqB;;AAErB,gBAAgB;;AAEhB,qBAAqB;;AAErB;AACA;AACA,wBAAwB,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,yCAAyC;AACrG;;AAEA;AACA;AACA,iCAAiC,oBAAoB;AACrD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,2DAA2D;AAC3D,6CAA6C;AAC7C,6CAA6C;AAC7C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,OAAO,OAAO;AAC7C,+BAA+B,OAAO,OAAO;AAC7C,+BAA+B,OAAO,OAAO;AAC7C,+BAA+B,OAAO,OAAO;AAC7C,+BAA+B,OAAO,OAAO;AAC7C,gCAAgC,OAAO,OAAO;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEgC;;AAEjB;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,+BAA+B,qDAAW;AAC1C;AACA;AACA;AACA;AACA,2BAA2B,EAAE,WAAW,EAAE,WAAW,EAAE;AACvD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM,+EAA+E;AACrF;AACA;AACA;AACA;AACA,MAAM,4BAA4B,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB;AACjG;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACxWA;AACe;AACf,YAAY,oBAAoB;AAChC;;AAEA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA,4CAA4C,mBAAmB;AAC/D;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;ACzCR;AACf;AACA;;;;;;;;;;;;;;;;;ACFkC;;AAElC,2BAA2B,+CAAK;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,wBAAwB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;;ACtEM;AACS;AACT;;;AAGlC,mBAAmB;;AAEnB,2BAA2B,sDAAY;AACvC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gCAAgC,iDAAO;AACvC,yEAAyE,+CAAK;AAC9E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChGqB;AACP;AACW;;AAEN;AACS;AACS;;AAEzB;AACZ;AACF;AACU;;;AAGpC;AACA;AACA;;AAEA,kBAAkB,kEAAa,CAAC,2DAAY;AAC5C,6BAA6B,8CAAK,gBAAgB;AAClD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,sCAAsC,qDAAY;AAClD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,iDAAG;;AAE1B,mBAAmB,8CAAK;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAS;AACtC;;AAEA,wBAAwB,wBAAwB;AAChD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,wEAAoB;AAClD,yBAAyB,iDAAG;AAC5B,yBAAyB,iDAAG;AAC5B;AACA;AACA;AACA;AACA,uBAAuB,kDAAS;AAChC,uBAAuB,kDAAS;;AAEhC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,8CAAK;AACpC,uBAAuB,kDAAS;AAChC,uBAAuB,kDAAS;AAChC;;AAEA,eAAe,wDAAe;AAC9B;;AAEA;AACA,cAAc,sCAAsC;;AAEpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iDAAG,aAAa,iDAAG;AACtC,wBAAwB,8CAAK;AAC7B,wBAAwB,8CAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,iDAAG;;AAE1B,mBAAmB,8CAAK;AACxB;;AAEA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA,+DAA+D,iDAAS;AACxE,2DAA2D,iDAAS;AACpE,6BAA6B,mEAAgB,qBAAqB,iDAAS;AAC3E;;AAEA;AACA,4CAA4C,gEAAW,+CAA+C,gEAAW;AACjH,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,gEAAW;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,gBAAgB,kDAAK;AACrB,gBAAgB,kDAAK;;AAErB,WAAW,kDAAK,CAAC,iDAAG;AACpB;;AAEA;AACA,UAAU,wDAAwD;;AAElE,oBAAoB,iDAAG;AACvB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,4CAA4C,iDAAG;;AAE/C,wBAAwB,kDAAK;AAC7B,oDAAoD,iDAAG;;AAEvD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,8CAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;;;;;;ACnUkC;AACzB;AACF;AACuC;AAChB;AACnB;;;AAG9B;;AAEA,qBAAqB,kEAAa,CAAC,2DAAY;AAC/C,6BAA6B,8CAAK;AAClC;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC,qDAAY;AAClD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,iDAAG;AAChC;;AAEA;AACA,8BAA8B,wEAAoB;AAClD,uBAAuB,uDAAc;AACrC,uBAAuB,uDAAc;;AAErC,wBAAwB,OAAO;AAC/B;AACA;AACA,mCAAmC,8CAAK;;AAExC,uBAAuB,kDAAS;AAChC,uBAAuB,kDAAS;AAChC;;AAEA,eAAe,wDAAe;AAC9B;;AAEA;AACA,gBAAgB,iBAAiB;;AAEjC,mBAAmB,8CAAK;AACxB;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,iBAAiB;AACjC;;AAEA;AACA;AACA;;AAEA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;ACnFtB;;;;;;;;;;;;;;;;;ACAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACN4B;;AAEb;AACf,oBAAoB,kDAAK;AACzB;;;;;;;;;;;;;;;;;ACJyC;;AAEN;;AAEpB,iCAAiC,iDAAS;AACzD,WAAW,iDAAK;AAChB;;;;;;;;;;;;;;;;;;ACNyC;AACJ;AACF;;AAEnC,4BAA4B,+CAAK;;AAEjC;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,iDAAK,2BAA2B,iDAAS,GAAG,iDAAK,yBAAyB,iDAAS;AACpH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sFAAsF;AACtF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa;;;;;;;;;;;;;;;;;;;ACnD0B;AACE;AACJ;AACxB;;AAEb;AACf,uBAAuB,gEAAiB;AACxC,kBAAkB,iEAAkB;AACpC;AACA;AACA,oBAAoB,kBAAkB;AACtC,0BAA0B,+DAAgB;AAC1C,wBAAwB,kDAAK;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACnBe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACfsD;AACE;AACJ;;AAErC;AACf,uBAAuB,gEAAiB;AACxC,kBAAkB,iEAAkB;AACpC;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA,2BAA2B,+DAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjBiC;AACI;;AAEtB;AACf,kBAAkB,iDAAG;AACrB,6CAA6C,sDAAS;;AAEtD;AACA;;;;;;;;;;;;;;;;ACR6B;;AAEd;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,8CAAK;AACxB;AACA;;;;;;;;;;;;;;;AChBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACjB6C;AACJ;AACN;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,uDAAa;AAC/B;AACA;;AAEA;AACA,iBAAiB,uDAAa;AAC9B,iBAAiB,uDAAa;AAC9B,MAAM;AACN;AACA,iBAAiB,uDAAa;AAC9B;AACA,iBAAiB,uDAAa;AAC9B;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,oBAAoB,iDAAK,gBAAgB,iDAAS;AAClD;AACA;AACA,oBAAoB,iDAAK,gBAAgB,iDAAS;AAClD;AACA;AACA,oBAAoB,iDAAK,gBAAgB,iDAAS;AAClD;;AAEA;AACA;;;;;;;;;;;;;;;AC5De;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACNkC;AACI;AACR;AACI;;AAElC,qBAAqB,+CAAK;;AAE1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,+BAA+B;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,uDAAK;AACtB,iBAAiB,uDAAK;AACtB,iBAAiB,uDAAK;AACtB,iBAAiB,uDAAK;AACtB,iBAAiB,uDAAK;AACtB,iBAAiB,uDAAK;;AAEtB;AACA;;AAEA;AACA;;AAEA,YAAY,yDAAO;AACnB,4BAA4B,mBAAmB;AAC/C,4BAA4B,uDAAK;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,qDAAG;AAC/B,4BAA4B,qDAAG;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;;;;;;;AC7G+B;AACJ;AACU;AAC7B;AACK;;;AAGnC,oBAAoB,kEAAa,CAAC,2DAAY;AAC9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B,sDAAa;AAC3C;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB,sDAAQ;AAC/B,gBAAgB,OAAO;;AAEvB;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,iDAAK;AACtB,iBAAiB,iDAAK;;AAEtB;;AAEA;AACA;;AAEA;AACA,wBAAwB,iDAAO;AAC/B,4BAA4B,iDAAK;AACjC,4BAA4B,iDAAK;;AAEjC;AACA;;AAEA;AACA,cAAc,OAAO;;AAErB,YAAY,iDAAO;AACnB,gBAAgB,iDAAK;AACrB,gBAAgB,iDAAK;AACrB;;AAEA;AACA;;AAEA;AACA,YAAY,iDAAO;AACnB;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,0CAAO;AAC1B,mBAAmB,0CAAO;;AAE1B,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,0CAAO;AAC1B,mBAAmB,0CAAO;;AAE1B,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,0CAAO,EAAE,0CAAO;AACzC;;AAEA;AACA,yBAAyB,0CAAO,EAAE,0CAAO;AACzC;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;;;ACxK4B;AACrB;AACF;;AAE1B,mBAAmB,2DAAY;AAC/B,6BAA6B,8CAAK,eAAe,6CAAI;AACrD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,qDAAY;AAClD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oCAAoC,oDAAW;AAC/C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,wDAAe;AACvC,4BAA4B,wDAAe;AAC3C,yBAAyB,6CAAI;AAC7B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,kDAAS;AACrB,YAAY,kDAAS;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8CAAK;AACzB,oBAAoB,8CAAK;AACzB;AACA;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7K6B;AACvB;AACE;AACQ;AACY;AACS;AACA;AACD;AACe;AACF;AACtB;;;AAG/C;;AAEA,sBAAsB,+DAAU,CAAC,2DAAY;AAC7C;AACA;;AAEA,kCAAkC,8CAAK;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,wDAAe;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,wDAAe,KAAK,8CAAK,gCAAgC,8CAAK;AAC7E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,oEAAgB;AACjC,iBAAiB,oEAAgB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,2EAAuB;AACxD,UAAU;AACV,iCAAiC,0EAAsB;AACvD;AACA;AACA;;AAEA;AACA;AACA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0CAA0C,uDAAK;AAC/C,uBAAuB,iDAAO;AAC9B;AACA;;AAEA;AACA,YAAY,iDAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,YAAY,iDAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;ACpCuB;;AAErD,yBAAyB,8DAAa;AACtC;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA,iEAAe,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVzB;AACA;AACA;AACA;;AAEmC;AACL;AACiD;AACkB;AACnB;AACvC;;AAEvC,gBAAgB,uDAAe;AAC/B;;AAEA;;AAEA;AACA;AACA;AACA,yCAAyC;;AAEzC;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,uBAAuB,gDAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,wCAAwC;AACxC;AACA;AACA,wCAAwC;AACxC;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,GAAG;AACjD;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,iDAAa;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,4CAAc;;AAElB;;AAEA;AACA,wBAAwB,gDAAK;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,sDAAe;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,iDAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;;AAEA,4BAA4B,gDAAK;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,2BAA2B,mDAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,qDAAqD,oCAAoC;AACzF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,sBAAsB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gDAAK;AACzB;AACA,uBAAuB,sDAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,mDAAgB;AACxC;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,cAAc;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,mCAAmC,iDAAW,WAAW,YAAY;AACrE;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mDAAgB;AAChC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,2DAAkB;AAClD,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,iDAAU;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,kDAAO;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB;;AAEA;AACA,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc;AACd;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB;AACzB,yBAAyB;AACzB,yBAAyB;AACzB;AACA;;AAEA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2CAAI,GAAG,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAa;AAC5B;AACA,eAAe,kDAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,2DAA2D;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAK;AAC/B,+BAA+B,2CAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,kBAAkB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gDAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,gDAAK;AAClC;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,2CAAI;AACvB,oBAAoB,cAAc;AAClC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,2CAAI;AAC/B,wBAAwB,cAAc;AACtC;AACA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,gDAAK;AAClC;AACA;;AAEA;AACA,2BAA2B,2CAAI;AAC/B,wBAAwB,oCAAoC;AAC5D;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,iDAAK;AAC1C,iBAAiB;AACjB;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,6CAA6C;AAC7C,6CAA6C;AAC7C,gDAAgD;AAChD,+CAA+C;AAC/C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA,2BAA2B,iDAAQ;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,kDAAa;AACvC;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2CAAI;AAChC,sCAAsC;AACtC,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,2CAAI;AAChC,sCAAsC;AACtC,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,2CAAI;AAChC,sCAAsC;AACtC,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,2CAAI;AAChC,sCAAsC;AACtC,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kBAAkB;AAClB,oCAAoC,yBAAyB;AAC7D;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA,gBAAgB,oDAAa;AAC7B;AACA,8BAA8B,iDAAc;AAC5C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,gDAAK;AACxB;;AAEA;AACA,mBAAmB,kDAAa;;AAEhC;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,iDAAQ;AAC3B,oBAAoB,iDAAK;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAa;AACzB,oBAAoB,iDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,2CAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,gBAAgB,iDAAM;AACtB,oBAAoB,kDAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iDAAM;AAC1B,wBAAwB,kDAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,SAAS,kDAAY,MAAM;AACrE;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,GAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA,QAAQ,kDAAS,6CAA6C,2BAA2B;AACzF,QAAQ,kDAAS,2CAA2C,2BAA2B;AACvF,QAAQ,kDAAS,+CAA+C,2BAA2B;AAC3F;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,4BAA4B,uBAAuB;AACnD;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,yBAAyB;AAC3D;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,UAAU,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,iDAAQ;AAC7B;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2CAAI,GAAG;AACtC;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;;AAEA,kBAAkB,gDAAK;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAa;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE2C;;;;;;;;;;;;;;;;;;ACnsGH;AACK;;AAE7C,6BAA6B,0EAAwB;;AAErD;AACA;AACA;AACA,mCAAmC,+DAAQ;AAC3C;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,iEAAe,UAAU;;;;;;;;;;;;;;;;ACrCS;;AAElC;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,iDAAO;AACvB;AACA;AACA;AACA;AACA,wBAAwB,iDAAO;AAC/B;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,iDAAO;AACvB;;AAEA,oBAAoB,iDAAO;AAC3B;AACA;;AAEA,oBAAoB,iDAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;AChDzB;AACA;AACA;AACA;;AAEA,4BAA4B,qBAAqB;AACjD;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;ACpB3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;;ACnCK;;AAElC;AACA;AACA;AACA,YAAY,iDAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;AC5BM;;AAElC;AACA;AACA,YAAY,iDAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;AC1BO;AACI;;AAEtC;AACA;AACA;AACA,YAAY,iDAAO;AACnB,2CAA2C,8DAAY;AACvD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;AC7BY;AACH;;AAEnC,iCAAiC,EAAE;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,yBAAyB,uDAAK;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,YAAY,kDAAQ;AACpB,YAAY,kDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;;ACjEa;AACP;;AAE/B;AACA;AACA,gBAAgB,uBAAuB;;AAEvC,wBAAwB,uBAAuB;AAC/C,4BAA4B,uDAAK;;AAEjC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA,gBAAgB,uBAAuB;;AAEvC,wBAAwB,uBAAuB;AAC/C,iCAAiC,uDAAK;AACtC,gCAAgC,uDAAK;AACrC,4BAA4B,uDAAK;AACjC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,gBAAgB,uBAAuB;;AAEvC,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAK;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,gBAAgB,wCAAwC;AACxD;;AAEA;AACA,4BAA4B,iDAAI,CAAC,iDAAI;AACrC;;AAEA,wBAAwB,uBAAuB;AAC/C,gCAAgC,uDAAK;AACrC,+BAA+B,uDAAK;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA,gBAAgB,uBAAuB;;AAEvC,wBAAwB,uBAAuB;AAC/C,mCAAmC,uDAAK;AACxC,+BAA+B,uDAAK;;AAEpC;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA,gBAAgB,wCAAwC;AACxD;;AAEA;AACA,8BAA8B,iDAAI,CAAC,iDAAI;AACvC;AACA;AACA;AACA;;AAEA,wBAAwB,uBAAuB;AAC/C,+BAA+B,uDAAK;AACpC;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7LvB;AACA;AACA;AACA;;AAEyF;AACrD;AACJ;AACqB;AACG;AACjB;;AAEvC,gBAAgB,uDAAe;AAC/B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,oDAAY;AAC9C;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC;AACxC,aAAa,0DAAkB;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oDAAgB;AACxB;AACA;AACA;AACA;AACA,gBAAgB,oDAAgB;AAChC;AACA,cAAc;AACd,sEAAsE;AACtE;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,cAAc;AACd,+BAA+B,yCAAO;AACtC;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,YAAY,oDAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,8DAA8D,SAAS,iDAAY,MAAM;AACzF;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,oDAAY,YAAY,oDAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,8CAA8C;;AAE9C,yBAAyB,oDAAY;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;AACrC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oDAAY;AAC3D;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sCAAsC;AACtC,sCAAsC;AACtC,gCAAgC;AAChC,gCAAgC;;AAEhC;AACA;;AAEA;AACA;AACA,sDAAsD;AACtD;AACA;AACA,mDAAmD;AACnD,iBAAiB;AACjB,eAAe;AACf;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,iDAAG,GAAG,+DAAa;AACrC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,oDAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,yDAAe;AAC5C;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,mBAAmB,iDAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,oDAAY;AACvD;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,oDAAY;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,uBAAuB;AACnE;AACA,0BAA0B,kDAAU;AACpC;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,kCAAkC;AAClC,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,4BAA4B;AAC5D,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB,yBAAyB;;AAEzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F,6FAA6F;AAC7F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAaE;;;;;;;;;;;;;;;;;;AC39D0D;;AAErD,gBAAgB,uDAAW;;AAE3B;AACP;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;;AAEwC;AACmD;AAC7D;AACgD;AAC3C;;AAEnC;AACA,4BAA4B,sDAAuB;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,kDAAmB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA,4BAA4B,+CAAgB;AAC5C,0BAA0B,6CAAc;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,uBAAuB,2CAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gDAAK;AACnC,sCAAsC,iDAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA,IAAI,4CAAa;AACjB,IAAI,6CAAc;AAClB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,uCAAuC;AACvC,KAAK;AACL;;AAEA;AACA;AACA,mDAAmD,yBAAyB;AAC5E,KAAK;AACL;;AAEA;AACA;AACA;AACA,wBAAwB,8DAAsB;AAC9C;AACA,YAAY,mDAAW,GAAG,mCAAmC;AAC7D;AACA;AACA;AACA,SAAS;AACT,MAAM;AACN;AACA,YAAY,mDAAW,GAAG,uDAAuD;AACjF;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,gDAAQ;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,gDAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,gDAAQ;AAChC;AACA;AACA,UAAU;AACV;AACA;AACA,uCAAuC,gDAAc;AACrD;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB,UAAU;AACV,sBAAsB;AACtB,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN,mCAAmC;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,+CAAgB;AAChC;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,iBAAiB,6CAAc;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,iBAAiB,mDAAa;AAC9B;AACA;;AAEA;AACA,gBAAgB,mDAAgB;AAChC;AACA;;AAEA;AACA;AACA,iBAAiB,sDAAe;AAChC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2DAAkB;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAkB;AACpC;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,gDAAK,qBAAqB,+CAAS;AACtE;AACA;AACA;AACA;AACA,0CAA0C,uDAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iCAAiC,+CAAS;AAC1C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iCAAiC,gDAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;;AAEA;AACA,kBAAkB,kDAAa;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kDAAa;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,8DAAsB;AAC9C;AACA,MAAM;AACN;AACA;;AAEA;AACA;;;AAGyE;;;;;;;;;;;;;;;;;AC7uBzE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmD;;AAEnD;AACA;AACA;;AAEA;AACA,iDAAiD,eAAe;AAChE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,oDAAY;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,oDAAY;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,oDAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,oDAAY;AAC9B;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,oDAAY;AAC9B;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC;;AAEhC;AACA;AACA;;AAEA;AACA,kBAAkB,oDAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,oDAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,oDAAY;AAC9B,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,oDAAY;AAClC,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,oDAAY;;AAElC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,oDAAY;AAClC,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oDAAY;AAClC,2BAA2B,oDAAY;;AAEvC,gCAAgC;AAChC;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,oDAAY;AAClC;AACA;;AAEA;AACA;;AAEA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;;AAEA,wBAAwB,oBAAoB;AAC5C;AACA;;AAEA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA,wCAAwC;AACxC;AACA;AACA;;AAEA;AACA;;AAEA,gCAAgC,cAAc;AAC9C;AACA,2CAA2C,aAAa;AACxD;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA,kBAAkB,oDAAY;;AAE9B,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC;AAChC,iEAAiE;AACjE,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA,sBAAsB,oDAAY;AAClC,gCAAgC;AAChC,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,kDAAU;AAC7B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,oDAAY;AAC9B,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,oDAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEmB;;;;;;;;;;;;;;;;;;;;;;ACpmCiB;;AAEpC;AACA;AACA;AACA;;AAEA;AACA;AACA,8DAA8D,uDAAe,MAAM,4DAAoB,IAAI,+DAAuB;;AAElI;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET,6BAA6B,gBAAgB;;AAE7C;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,cAAc;AACd,wCAAwC;AACxC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA,sBAAsB,mBAAmB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sBAAsB,mBAAmB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AASE;;;;;;;;;;;;;;;;;;;;;;AChV8C;AACJ;AACE;AACK;AACnB;AACE;;AAElC;;AAEA,qBAAqB,6DAAS,CAAC,8DAAU,CAAC,iEAAY,CAAC,gDAAO;AAC9D;AACA;AACA;;AAEA,+BAA+B,wDAAc,gBAAgB;AAC7D;;AAEA;;AAEA,aAAa,iDAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACzC2B;AACb;AACI;AACY;AACP;AACI;AAC8B;;AAE/E,sBAAsB,2DAAY;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,6BAA6B;AAC7B,gBAAgB,kBAAkB;;AAElC;AACA,gCAAgC,+DAAe;AAC/C;;AAEA;AACA,sBAAsB,iDAAY;AAClC;;AAEA,2BAA2B,2DAAY;AACvC;AACA;;AAEA;AACA,YAAY,iDAAO;AACnB,0CAA0C,+DAAe;AACzD,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oFAAoF,6DAAW;AAC/F;AACA;;AAEA;AACA,mBAAmB,+DAAe;AAClC;AACA;;AAEA;AACA;AACA,8BAA8B,+DAAQ;;AAEtC,2BAA2B,+DAAQ;AACnC;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,mBAAmB,+DAAe;AAClC;AACA;;AAEA;AACA,YAAY,iDAAO;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,iDAAO;AACnB;AACA,2BAA2B,iDAAY;AACvC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,YAAY,iDAAO;AACnB;AACA;AACA;;AAEA,eAAe,iDAAc;AAC7B;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,gEAAc;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,iDAAa;AACrC;;AAEA;AACA;AACA,8CAA8C,iDAAa;AAC3D;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;AC/I0B;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,2DAAY;AACxC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;;AAEA;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;;AC9HgB;;AAE7C,oCAAoC,uDAAa;AACjD;AACA;AACA;AACA;;AAEA,iEAAe,qBAAqB;;;;;;;;;;;;;;;;;;;;ACRJ;AACgB;AACf;AAC+B;AACgB;;;AAGhF,oBAAoB,+DAAW,CAAC,gDAAO;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,QAAQ,iDAAM;AACd;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,eAAe,wEAAmB;AAClC;;AAEA;AACA,eAAe,wEAAmB;AAClC;;AAEA;AACA,eAAe,iFAA0B;AACzC;;AAEA;AACA,eAAe,gFAAuC;AACtD;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,uBAAuB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,KAAK;;;;;;;;;;;;;;;;;;;;ACzH+B;AACnB;AACI;AACS;AACX;;;AAGlC,oBAAoB,iEAAY,CAAC,gDAAO;AACxC;AACA;AACA;;AAEA,gCAAgC,sDAAI,gBAAgB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,iDAAO;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,+DAAQ;AACvC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9C0C;AAC9B;AACY;AACE;AACZ;AACE;AACM;AACJ;AACF;AAC2C;AAClC;AACC;AACkB;AACgB;AACnC;;;AAGtC,mBAAmB,6DAAS,CAAC,8DAAU,CAAC,gDAAO;AACtD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,gEAAqB;AACjD;;AAEA,aAAa,iDAAO;AACpB;;AAEA,iBAAiB,iDAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,sBAAsB,iDAAO,UAAU,uDAAK;AAC5C,4BAA4B,yDAAO;;AAEnC;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC,iDAAI;AACpC,gCAAgC,yDAAO;AACvC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC,iDAAI;AACpC;AACA,0BAA0B,iDAAG;AAC7B,+BAA+B,uDAAK;AACpC;AACA,4BAA4B,qDAAG;AAC/B;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC,iDAAI;AACpC;AACA,wBAAwB,gEAAc,SAAS,8DAAY;;AAE3D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,wBAAwB,wBAAwB;AAChD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,oFAAsB;AACxD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,uDAAI,SAAS,4DAAS;AACpD,UAAU;AACV,4BAA4B,YAAY;AACxC;AACA;AACA,kCAAkC,6DAAU;AAC5C,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,iBAAiB,8DAAU;AAC3B,iBAAiB,8DAAU;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,mBAAmB;AAC/C,4BAA4B,8DAAY;AACxC;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,wBAAwB,6DAAS,CAAC,8DAAU,CAAC,gDAAO;AAC3D;AACA;AACA,eAAe,gEAAS;A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,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC7Be;AACf;AACA;AACA;;;;;;;;;;;;;;;ACHA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;;;;;;;;;;;;;;;;;ACFe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACrBA;;AAEe;AACf;AACA;;;;;;;;;;;;;;;ACJA;;AAEe;AACf;AACA;;;;;;;;;;;;;;;;ACJyC;;AAE1B;AACf,qBAAqB,kDAAU;AAC/B;;;;;;;;;;;;;;;;ACJ0C;;AAE1C;;AAEe;AACf;AACA;;AAEA,qBAAqB,uDAAU;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AChCA;;AAEO;;AAEP;AACO;AACP;;AAEA,oBAAoB,kBAAkB;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACO;AACP;;AAEA,oBAAoB,kBAAkB;AACtC;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACrEgC;;AAEjB;AACf,6FAA6F,oDAAO;AACpG;;;;;;;;;;;;;;;ACJe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;ACJe;AACf;AACA;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;;AAEA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;ACtCyC;;AAE1B;AACf,qBAAqB,kDAAU;AAC/B;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;;AAEA;AACA;;AAEe;AACf;AACA;AACA;;;;;;;;;;;;;;;;ACXgC;;AAEjB;AACf,WAAW,oDAAO;AAClB;;;;;;;;;;;;;;;ACJA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;ACvDmC;AACK;;;;;;;;;;;;;;;;ACDjC,4CAA4C;AACnD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB;;AAEnB;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA,sBAAsB,qBAAqB;AAC3C;AACA;;AAEA,wCAAwC,mBAAmB;AAC3D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC3FA,+7BAA+7B,+BAA+B,kCAAkC,mBAAmB,2CAA2C,wBAAwB,gBAAgB,0CAA0C,wBAAwB,iCAAiC,kCAAkC,kCAAkC,mIAAmI,iBAAiB,wDAAwD,2CAA2C,sKAAsK,2CAA2C,mBAAmB,sCAAsC,mCAAmC,iBAAiB,oDAAoD,oBAAoB,aAAa,2FAA2F,sCAAsC,qBAAqB,yBAAyB,2CAA2C,6IAA6I,aAAa,SAAS,wCAAwC,+EAA+E,EAAE,kFAAkF,EAAE,6EAA6E,EAAE,iFAAiF,mDAAmD,EAAE,iBAAiB,kCAAkC,oCAAoC,sDAAsD,sCAAsC,qBAAqB,uCAAuC,+DAA+D,2YAA2Y,yBAAyB,sCAAsC,qBAAqB,qHAAqH,gLAAgL,gBAAgB,0EAA0E,KAAK,qCAAqC,qBAAqB,mEAAmE,+KAA+K,IAAI,KAAK,eAAe,oCAAoC,qBAAqB,wCAAwC,uDAAuD,uCAAuC,sDAAsD,+DAA+D,IAAI,gBAAgB,0EAA0E,KAAK,sCAAsC,qBAAqB,cAAc,KAAK,0DAA0D,sCAAsC,qBAAqB,4BAA4B,gBAAgB,qLAAqL,gDAAgD,oCAAoC,qBAAqB,+BAA+B,KAAK,mHAAmH,cAAc,oCAAoC,qBAAqB,wCAAwC,yCAAyC,KAAK,sCAAsC,qBAAqB,gEAAgE,kLAAkL,KAAK,8DAA8D,qEAAqE,yFAAyF,0CAA0C,iDAAiD,cAAc,gEAAgE,KAAK,qBAAqB,WAAW,8EAA8E,yBAAyB,6EAA6E,gCAAgC,gEAAgE,qCAAqC,sCAAsC,qBAAqB,WAAW,kLAAkL,oJAAoJ,KAAK,qCAAqC,+DAA+D,KAAK,qBAAqB,iJAAiJ,KAAK,qCAAqC,sCAAsC,qBAAqB,qBAAqB,wEAAwE,oEAAoE,+KAA+K,IAAI,mCAAmC,wFAAwF,2CAA2C,wCAAwC,4CAA4C,sCAAsC,qBAAqB,WAAW,2EAA2E,kBAAkB,iCAAiC,sDAAsD,kGAAkG,KAAK,qBAAqB,8BAA8B,GAAG,8BAA8B,kCAAuE;;;;;;;;;;;;;;;;;;;ACA7oQ;AACtB;AACN;;AAE9B;AACA,eAAe,YAAY,KAAK,YAAY;AAC5C;;AAEA;AACA;;AAEA,sBAAsB,cAAc;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,sDAAG;;AAE7B,iEAAiE,wBAAwB;;AAEzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA,0BAA0B,sBAAsB;AAChD;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,yDAAM;AACzB;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA,8BAA8B,yDAAM;AACpC;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA,8DAA8D,0EAAuB;AACrF,0EAA0E,0EAAuB;AACjG,8DAA8D,0EAAuB;AACrF,oDAAoD,0EAAuB;AAC3E,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;;AAEA,8BAA8B,+BAA+B;AAC7D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,uDAAuD,OAAO,KAAK,gBAAgB;;AAEnF;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,cAAc;AAC3F;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,wBAAwB;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,mBAAmB;AAC7C;AACA;;AAEA;AACA;AACA,mCAAmC,0CAA0C;AAC7E,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,iEAAiE,wBAAwB;AACzF,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,aAAa;AACb;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA,+BAA+B,kCAAkC;;AAEjE;;AAEA,8CAA8C,UAAU;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B,sBAAsB;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qEAAqE;AACrE,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;;AAEb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AA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ACxD,YAAY,kCAAkC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA,gCAAgC,YAAY,IAAI,iBAAiB;AACjE;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sEAAsE;AACtE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU,YAAY,EAAE,GAAG;AACpE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,wBAAwB;AACjF,mDAAmD,wBAAwB;AAC3E;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,kCAAkC,0BAA0B;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB;AACxB;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;;AAEA;;AAEA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,qCAAqC;AACrC,yCAAyC;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uEAAoB;AACnD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA,oBAAoB,uDAAY;AAChC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,sDAAG;AAC1B;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,GAAG;AAC9B;AACA,2BAA2B,GAAG;AAC9B;AACA,2BAA2B,GAAG;AAC9B;AACA,2BAA2B,GAAG,OAAO;AACrC;AACA;;AAEA;AACA,oBAAoB,6DAAS;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA,uCAAuC,sBAAsB;;AAE7D;AACA;;AAEA;;AAEA;AACA,yDAAyD,mBAAmB;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD,aAAa;AACb;;AAEA;AACA;AACA;AACA,yBAAyB,sDAAG;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,uBAAuB,sDAAG;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,kBAAkB;AAC5C;AACA,sCAAsC,QAAQ;AAC9C,+CAA+C;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC,yBAAyB;AAC/D;AACA;AACA;AACA;AACA,2CAA2C,yBAAyB;AACpE;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA,qCAAqC,KAAK;AAC1C;AACA;;AAEA;AACA;;AAEA,wBAAwB,sDAAG;;AAE3B,uBAAuB,sDAAG;;AAE1B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,sDAAG;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET,wBAAwB,sDAAG;AAC3B;AACA;AACA;AACA,SAAS;;AAET,sBAAsB,sDAAG;AACzB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,oBAAoB,sDAAG;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA,aAAa;AACb,SAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iBAAiB;AAClF;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,mBAAmB;AACvC;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,kBAAkB;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,0BAA0B;AACzD,mBAAmB,IAAI;AACvB,IAAI;AACJ,2BAA2B,UAAU;AACrC,QAAQ;AACR;AACA;AACA;;AAEA,qCAAqC,iBAAiB;AACtD,iBAAiB,iCAAiC;AAClD,EAAE;AACF;AACA;AACA,4BAA4B,kBAAkB,GAAG,SAAS,OAAO,IAAI;AACrE,CAAC;AACD;;AAEA,sCAAsC,MAAM;AAC5C,wBAAwB,2CAA2C;;AAEnE,kCAAkC,aAAa;AAC/C,mBAAmB,+BAA+B;AAClD,cAAc,2BAA2B;AACzC,cAAc,MAAM;;AAEpB,oCAAoC,gBAAgB;AACpD,cAAc,0BAA0B;AACxC,MAAM;AACN,qBAAqB,MAAM;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAKE;;;;;;;;;;;;;;;;;;;ACvgD+D;AACQ;;;;;;;;;;;;;;;;ACDzE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW;;;;;;;;;;;;;;;ACd1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,eAAe;;;;;;;;;;;;;;;;;AChBO;;AAEtB;AACf,eAAe,yDAAK;AACpB;;;;;;;;;;;;;;;ACJA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,0BAA0B,+BAA+B;AACzD;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;AC5Be;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;ACRA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC/Be;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACPA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;ACPgC;;AAElC;AACA,YAAY,kEAAkE;AAC9E;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,2BAA2B,2DAAY;AACvC;AACA;;AAEA,2BAA2B,2DAAY,uBAAuB,2DAAY;AAC1E;AACA;;AAEA,4BAA4B,2DAAY;AACxC;AACA;AACA;;AAEA,4BAA4B,2DAAY,wBAAwB,2DAAY;AAC5E;AACA;AACA;;AAEA,6BAA6B,0DAAW;AACxC;AACA;;AAEA,6BAA6B,2DAAY,yBAAyB,2DAAY;AAC9E;AACA;;AAEA,8BAA8B,0DAAW;AACzC;AACA;AA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ACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;;ACzGM;AACT;;AAEZ;AACf,4BAA4B,qDAAU;AACtC,gBAAgB,mDAAG;;AAEnB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACXA;;AAEe;AACf;AACA;;AAEA,6CAA6C,kBAAkB,OAAO,WAAW;AACjF,+BAA+B;AAC/B;;AAEA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;AChBA;;AAEgC;AACE;;AAElC,iEAAe;AACf,2BAA2B,oDAAO;AAClC;AACA;AACA;;AAEA;AACA,0BAA0B,qDAAQ;;AAElC;AACA;AACA;AACA;;AAEA,sBAAsB;;AAEtB;AACA;;AAEA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;ACzBF,iEAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;ACbyB;AACU;AACU;;AAEhC;AACf,gBAAgB,mDAAG;AACnB,qBAAqB,qDAAW;AAChC;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,4DAAc;AACtC;;AAEA;AACA;;;;;;;;;;;;;;;;;ACjB6C;;AAE7C,+BAA+B,2DAAa;;AAE5C,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA,sEAAsE;;AAEtE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,6BAA6B;AAC7B,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,QAAQ;AAC/B;AACA;AACA,oBAAoB,qBAAqB;;AAEzC;AACA;AACA,qBAAqB,0BAA0B,gBAAgB;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,0BAA0B;;AAE/C;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;;AAEA,uBAAuB;AACvB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B;;;AAGA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,2CAA2C;AAC3C;AACA,wCAAwC;AACxC;AACA;AACA;AACA,oBAAoB;AACpB,uCAAuC;AACvC;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,oBAAoB;AACpB;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,sBAAsB;AACtB,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,wCAAwC;AACxC;AACA;AACA;AACA,oBAAoB;AACpB,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;;AAE1B,6BAA6B;AAC7B,6BAA6B;AAC7B,iCAAiC;AACjC,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;AAC7B,kCAAkC;AAClC,6BAA6B;AAC7B,6BAA6B;AAC7B,yBAAyB;AACzB,yBAAyB;AACzB,yBAAyB;AACzB,yBAAyB;AACzB,wBAAwB;AACxB,uBAAuB;AACvB;AACA,qBAAqB;AACrB,8BAA8B;AAC9B,kCAAkC,kBAAkB;AACpD,iCAAiC,mBAAmB;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;;AAEA;AACA;AACA,sBAAsB,UAAU;AAChC,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,uCAAuC;AACvC,wCAAwC,6BAA6B;AACrE,0CAA0C;AAC1C,2CAA2C;AAC3C;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA,gBAAgB,WAAW;AAC3B,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,oCAAoC;AACpC;;AAEA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;;AAEA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;AAEA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,IAAI,0BAA0B;AAC9B;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,mCAAmC;AACnC,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,6BAA6B;AAC7B,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;;AAGA,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,6BAA6B;AAC7B,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;AAC3B,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B;AAC/B,+BAA+B;AAC/B,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,yBAAyB;AACzB,uBAAuB;AACvB,uBAAuB;;AAEvB;;;;AAIA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,6BAA6B;AAC7B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA,8BAA8B;;AAE9B;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;;AAE9B;AACA,8BAA8B;AAC9B,8BAA8B;;AAE9B;AACA,8BAA8B;AAC9B,8BAA8B;;AAE9B;AACA,8BAA8B;;AAE9B;AACA,gCAAgC;AAChC,gCAAgC;AAChC,8BAA8B;AAC9B,8BAA8B;;AAE9B;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,iCAAiC;;AAEjC,0BAA0B;AAC1B,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA,sCAAsC;AACtC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;;AAEA;AACA;;AAEA,8BAA8B;AAC9B;AACA;AACA,iBAAiB;AACjB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe;AACf,uCAAuC;;AAEvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;;AAExB,0EAA0E,SAAS;;AAEnF;AACA;AACA,uBAAuB;;AAEvB,0EAA0E,SAAS;;AAEnF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,uCAAuC;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B,oCAAoC;AACpC,gCAAgC;AAChC,oCAAoC;AACpC,8BAA8B;AAC9B,8BAA8B;AAC9B,yBAAyB;AACzB;;AAEA,SAAS;;AAET;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,0BAA0B;;;AAGzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B,4BAA4B;AAC5B,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,oEAAoE;AACpE;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,oEAAoE;AACpE;AACA;AACA;;AAEA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA,mDAAmD;AACnD;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,oEAAoE;AACpE;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA,mDAAmD;AACnD;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,cAAc;AACd,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,UAAU;AACV,kCAAkC;AAClC;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA,gCAAgC;AAChC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,eAAe;;AAEpB;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C;;AAE7C;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB;;AAExB;;AAEA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sBAAsB;;AAEtB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,qBAAqB,sBAAsB,qBAAqB;;AAEhE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;;AAEpC;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC;AAChC;;;;AAIA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;;AAEtB,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;AACA,gDAAgD;;AAEhD,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,YAAY;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;AACrC,6BAA6B;AAC7B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC;AACA,2CAA2C;AAC3C,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;;AAE7B;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,eAAe;AAC9B;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA;AACA;AACA,cAAc;AACd,SAAS,gBAAgB;AACzB;AACA,gBAAgB,oCAAoC;AACpD;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,cAAc,cAAc,OAAO;AACnC,cAAc,cAAc,OAAO;AACnC,cAAc,cAAc,OAAO;;AAEnC;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,2BAA2B;AAC3B;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA,QAAQ;AACR;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,yCAAyC;AACzC;AACA,gBAAgB;AAChB;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA;AACA,uCAAuC;AACvC;AACA,QAAQ;;AAER;AACA;AACA;;AAEA,MAAM;AACN;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,WAAW;AACzB;AACA;AACA;;AAEA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,QAAQ,OAAO;;AAEvD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA,+BAA+B;;AAE/B,8BAA8B;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI;;AAEJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;;AAE7B,yCAAyC;;AAEzC,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD,cAAc,eAAe;AAC7B;AACA;;AAEA;AACA;;AAEA,MAAM;AACN;;AAEA,MAAM;;AAEN,gCAAgC;AAChC;;AAEA,MAAM;AACN;;AAEA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,MAAM;AACN;AACA;;AAEA,MAAM;AACN;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;;AAE7B,yCAAyC;;AAEzC,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;;AAE7B,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA,cAAc,eAAe;AAC7B;AACA;;AAEA;AACA;;AAEA,MAAM;AACN,WAAW,mCAAmC;;AAE9C,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN;AACA;;AAEA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN;AACA;;AAEA,MAAM;AACN;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;;AAEA,yCAAyC;AACzC;;AAEA,yCAAyC;AACzC;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI,MAAM,GAAG,MAAM,GAAG;AAChD;AACA;AACA;AACA,SAAS,IAAI,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,MAAM,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,4DAA4D;AAC5D,wCAAwC;AACxC;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,8BAA8B;AAC9B,8BAA8B;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC;;AAEnC,IAAI;AACJ;AACA,6CAA6C;AAC7C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI;;AAEJ;AACA;;AAEA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,wBAAwB;AACxB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;;AAE3B,oBAAoB;;AAEpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,sBAAsB,qBAAqB;;;AAGlE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB,mBAAmB;;AAEnB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,yBAAyB;AACzB,mCAAmC;AACnC,qCAAqC;AACrC,6CAA6C;AAC7C,6CAA6C;AAC7C;AACA;;AAEA,uBAAuB;;AAEvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;;AAElC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,wBAAwB;;AAExB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;;AAEpE;AACA,0DAA0D;AAC1D;;AAEA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,2DAA2D;AAC3D;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,2BAA2B;;AAE3B;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB;AACzB,yBAAyB;;AAEzB;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qEAAqE;AACrE;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,2DAA2D;AAC3D;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;AACtB,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,+BAA+B;AAC/B,8BAA8B;AAC9B,gCAAgC;AAChC,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,4BAA4B;AAC5B,0BAA0B;;AAE1B,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;;AAEtB,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;AACtB,sBAAsB;;AAEtB;AACA;;AAEA,uBAAuB;;AAEvB;;AAEA;;AAEA,8CAA8C;AAC9C,8CAA8C;AAC9C,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC;;AAEhC;AACA;AACA;;AAEA,gCAAgC;AAChC,yCAAyC;AACzC;;AAEA,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA;;AAEA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;;;AAG1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,8BAA8B;AAC9B,+BAA+B;AAC/B;AACA;AACA;;;AAGA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB;;AAEvB,uCAAuC;;AAEvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA,wBAAwB;AACxB,uBAAuB;AACvB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,8BAA8B;AAC9B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B,4BAA4B;AAC5B,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA,gBAAgB;;AAEhB;AACA;AACA,iCAAiC;AACjC,0BAA0B;AAC1B,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA,gCAAgC;AAChC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe;;AAEpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;;AAEtB;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sBAAsB;;AAEtB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE4c;;;;;;;;;;;;;;;;;ACr7M5c;;AAEA;AACA;;AAEA;AACA;;AAEA,qBAAqB;;AAErB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA,kBAAkB,8DAA8D;AAChF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,QAAQ;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,8DAA8D;AAC3E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;AClNa;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,sBAAsB;AACtC;;AAEA,eAAe,sEAA6B;AAC5C;;AAEA;AACA;AACA,mBAAmB,2EAAkC;AACrD;;AAEA,eAAe,sEAA6B;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C,WAAW;AACtD;;AAEA;AACA;;AAEA,0FAA0F,sBAAsB;;AAEhH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,sEAA6B;AACxD,gCAAgC,2EAAkC;;AAElE;AACA,8DAA8D,6CAA6C;AAC3G,UAAU;AACV,8DAA8D,6CAA6C;AAC3G;AACA;;AAEA;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA,sBAAsB,6DAAoB;;AAE1C,8BAA8B,2EAAkC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,wCAAwC,oBAAoB;AAC5D;;AAEA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC,KAAK;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;;AAEA;AACA,gBAAgB,WAAW;AAC3B;;AAEA;AACA;;AAEA;AACA,gBAAgB,WAAW;;AAE3B;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;ACnH3B,mCAAmC,qCAAqC;AACxE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,wCAAwC;AACjF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA,MAAM;AACN,gBAAgB,cAAc;AAC9B;AACA;AACA;;AAEA;AACA;;AAEA;AACA,YAAY,+BAA+B;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C,OAAO;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,kBAAkB;AACtC;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,mCAAmC,mDAAmD;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,+BAA+B,4BAA4B;AAC3D;;AAEA;AACA;;AAEA;AACA,YAAY,mBAAmB;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,4DAA4D;;AAE5D,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;AC7JgC;;AAElC;;AAEA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA,0BAA0B,OAAO;AACjC;AACA;;AAEA,4BAA4B,OAAO;AACnC;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB,OAAO;AAChC,oBAAoB,cAAc;AAClC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,qFAAqF;AACvG;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,oDAAK;AACxB;AACA;;AAEA,iEAAe,gBAAgB,EAAC;;;;;;;;;;;;;;;;ACtGjB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACPuD;AACF;AACY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFnB;AACO;AACa;AACI;AACvB;AACqF;AAC7E;AACQ;AACE;;;;;;;;;;;;;;;;;;;ACP1D;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;ACHsC;AACV;AACO;AACM;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,2CAAM;;AAEV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,oDAAa;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,+BAA+B;AACrD;AACA;AACA;AACA;AACA;AACA,uCAAuC,6DAAc;AACrD;AACA;AACA;AACA;AACA,cAAc;AACd,kCAAkC,6DAAc;AAChD,gCAAgC,6DAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP,YAAY,4CAA4C;;AAExD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEA,wBAAwB,iEAA8B,MAAM,iBAAiB;;AAE7E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA,yBAAyB,iEAA8B;AACvD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEO;AACP,iBAAiB,oDAAa;AAC9B;;AAEA;AACA,+CAA+C,sDAAe;;AAE9D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;AC1LoC;AACD;AACkB;;AAEtC,yCAAyC,6DAAc;AACtE,iBAAiB,iDAAU;AAC3B;AACA;AACA,cAAc,kEAA6B;AAC3C;;AAEA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACduC;AACK;;AAE5C;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe;AACf,YAAY,oCAAoC;AAChD,iBAAiB,oDAAa;AAC9B;AACA,8CAA8C,oDAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,4BAA4B,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB,GAAG,MAAM,EAAE;AACnC,wBAAwB,GAAG,MAAM,EAAE;AACnC,0BAA0B,EAAE,GAAG,EAAE;AACjC,yBAAyB,EAAE,GAAG,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,WAAW;;;;;;;;;;;;;;;;;;;AC3jBmB;AACH;;AAEoB;AAC3B;;AAEnC,QAAQ,yBAAyB,EAAE,2CAAM;;AAE1B;AACf,iBAAiB,oDAAa;;AAE9B;AACA;AACA;;AAEA,qBAAqB,6DAA0B;AAC/C;AACA;AACA;;AAEA,uCAAuC,sDAAe,6BAA6B,yDAAiB;;AAEpG;AACA;AACA;;AAEA,oBAAoB,4DAAoB;;AAExC;AACA;;;;;;;;;;;;;;;;;;;;;AC7ByC;AACE;AACR;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO,aAAa,qDAAW;;AAExB;AACP;AACA,QAAQ,6DAAQ;AAChB;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,0DAAqB;AAC/B;;;;;;;;;;;;;;;;;AC1D8B;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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;;;;;;;;;;AChBP,wBAAwB,MAAM;;AAEf;AACf;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;;;;;;;;;;;;;;;ACVA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;;;;ACNe;AACf;AACA;;;;;;;;;;;;;;;;ACFe;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACVA;;AAEe;AACf;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;ACb4D;AACF;AACa;;;;;;;;;;;;;;;;;ACFvE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;;;;;;;;;;;;;;;;;AC9BzK;AACf;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACbmD;AACR;AACC;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,6DAA6D,oDAAK;AAClE;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sBAAsB,wBAAwB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,iEAAY;AAC7B;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,+BAA+B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,oDAAK;AAC5B;;AAEe;AACf;AACA;AACA,QAAQ,6DAAQ;AAChB;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,iEAAY;AACrC,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AChP+C;AACa;AACT;AACV;AACA;AACT;AACO;AACQ;;AAE/C;AACA,0BAA0B,+CAAQ;AAClC;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe,uDAAG;AAClB;AACA,WAAW,yDAAW;AACtB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW,yDAAW;AACtB;;;AAGA;AACA,YAAY,qEAAqE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uDAAG;AAC3D;AACA,qCAAqC,oDAAK,IAAI,uDAAG;AACjD;;AAEA;AACA;AACA,iBAAiB,iEAAY;AAC7B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,iBAAiB,yDAAW;AAC5B;AACA;AACA;;AAEA;;AAEA;AACA,WAAW,uDAAG;AACd;;AAEA;AACA,WAAW,yDAAW;AACtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,uDAAG;AACd;;AAEA;AACA;AACA,WAAW,uDAAG;AACd;;AAEA;AACA,WAAW,uDAAG;AACd;;AAEA;AACA,WAAW,uDAAG;AACd;;AAEA;AACA,WAAW,uDAAG;AACd;;AAEA;AACA,WAAW,uDAAG;AACd;;AAEA;AACA,WAAW,uDAAG;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,iBAAiB,uDAAG,CAAC,oDAAK;AAC1B;AACA;AACA;;AAEA;AACA,WAAW,yDAAW;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,WAAW,yDAAW;AACtB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEe,2CAA2C,6DAAc;AACxE,SAAS,2DAAM;AACf;AACA,mBAAmB,oDAAK;AACxB;AACA;AACA;;AAEA,iBAAiB,iDAAU;AAC3B,oBAAoB,yDAAW;;AAE/B,2BAA2B,wDAAgB;AAC3C;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;AChNwD;AACZ;;AAE7B;AACf,WAAW,mEAAe;AAC1B;AACA,kBAAkB,2DAAY;AAC9B;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;ACV0D;AACrB;AACuB;AACzB;AACM;AACA;AACL;AACG;;AAEvC,wCAAwC,IAAI,SAAS,EAAE;AACvD;AACA;AACA;AACA,YAAY,IAAI;AAChB,YAAY,IAAI;AAChB,YAAY,EAAE;AACd;AACA;AACA,sBAAsB,EAAE;;AAExB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+DAA+D,eAAe;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,YAAY;AACvB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,2BAA2B;AACvC;AACA,cAAc,2DAAsB;AACpC;;AAEA,4CAA4C,oDAAK,oDAAoD,oDAAK;AAC1G;;AAEA;AACA,YAAY,oEAAoE;AAChF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,yDAAW;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,yDAAW;AAC7B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,yDAAW;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wBAAwB,yDAAW;;AAEnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,yDAAK;AAC5B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,yDAAW;AAC5B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU,mGAAmG;AAC7G;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA,QAAQ,sDAAS;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,eAAe,GAAG,OAAO,GAAG,gBAAgB;AAC3D;;AAEA;AACA,kBAAkB,yDAAW,qBAAqB,oDAAK;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,oBAAoB;AAC/B;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uBAAuB,4DAAe;AACtC,uBAAuB,4DAAe;AACtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,cAAc;AACpC;AACA;;AAEA;AACA;;AAEe,4CAA4C,6DAAc;AACzE;AACA;AACA;;AAEA,QAAQ,2DAAM;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,iDAAU;AAC3B;AACA;;AAEA;;AAEA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;AC5kBqD;AACV;AACF;AACG;AACmB;AAC1B;;AAErC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEe,0CAA0C,6DAAc;AACvE,iBAAiB,iDAAU;AAC3B,oBAAoB,yDAAW;AAC/B;AACA,oBAAoB,kEAA0B;AAC9C,gBAAgB,6DAAqB;;AAErC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,yBAAyB,sDAAc;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,6DAAQ;AAC1C;;AAEA;AACA;AACA;AACA,kCAAkC,2DAAY;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,kEAA0B;AAC9C,gBAAgB,6DAAqB;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AClHO;AACP;;AAEA;;AAEA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;ACdA;AACA,yDAAyD,EAAE,GAAG;;AAE9D,iEAAe;AACf,2CAA2C,EAAE;AAC7C;AACA;AACA,uDAAuD,EAAE;AACzD;AACA;AACA;AACA;AACA,qEAAqE,GAAG;AACxE;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;ACdyC;;AAE3C,wBAAwB,MAAM,GAAG;;AAEjC;AACA,kBAAkB,eAAe;AACjC;AACA,+BAA+B,gCAAgC;AAC/D;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET,kBAAkB,UAAU,IAAI,iBAAiB;AACjD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC,6BAA6B;AAClE;AACA;;AAEA,mDAAmD;AACnD;;AAEA,4BAA4B,sDAAY;;AAMtC;;;;;;;;;;;;;;;;;;;;;;AChDmC;AACI;AACE;AACL;AACI;;AAE1C,wBAAwB,WAAW,MAAM;;AAElC;AACP;AACA,YAAY,2DAAM;AAClB,mBAAmB,kDAAU;AAC7B,UAAU,SAAS,6DAAQ;AAC3B,mBAAmB,sDAAY;AAC/B;AACA;;AAEA,2DAA2D,oDAAK;AAChE;;AAEO;AACP;AACA;;AAEA,oFAAoF,oDAAK;AACzF,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1B0B;AACF;AACD;AACE;AACA;;;;;;;;;;;;;;;;;;;ACJyC;;;;;;;;;;;;;;;;;;;;;ACAgF;AAC1F;AACb;AACP;AAC0C;;AAE9E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN,0CAA0C,GAAG,WAAW;AACxD;;AAEA,uEAAuE,oDAAK;AAC5E;;AAEA;AACA,UAAU,iBAAiB;AAC3B,sCAAsC,oDAAK;;AAE3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,yDAAK;AAC5B,UAAU;AACV;AACA;AACA,kCAAkC,oDAAK,QAAQ,oDAAK;;AAEpD;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,yDAAK;AAC1B;AACA;AACA;AACA;AACA,MAAM;AACN,iBAAiB,yDAAK;AACtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU,iBAAiB;AAC3B,0BAA0B,6DAAc;AACxC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D,8DAAe;AACzE;AACA,yEAAyE,oDAAK;AAC9E;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,uDAAQ,cAAc,sDAAO;AAC/C,iBAAiB,oDAAK;AACtB,kDAAkD,cAAc;AAChE;AACA,8BAA8B,mEAAoB,WAAW,kEAAmB;AAChF;AACA;AACA;AACA;;AAEA;AACA,YAAY,uGAAuG;AACnH;AACA,0CAA0C,oDAAK;AAC/C;AACA;AACA,iCAAiC,oDAAK;AACtC;AACA,sBAAsB,oDAAK;;AAE3B;;AAEA;AACA;AACA;;AAEA,0BAA0B,cAAc;AACxC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,8BAA8B,oDAAK;AACnC;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qEAAqE,oDAAK;AAC1E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,iBAAiB,0DAAY;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAA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AAC,MCFQ,yBAAyB;AAAG;;kCANxC,QAAQ,SAAC,kBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC,kBAChC,OAAO,EAAE,EACR;iBACD;KAAO,EAAE,CAAC,gBAAgB,CAAC,cAC5B;;;;;;;;;;;uOACI;AAAC;ACTN;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACwC;;;;;;;;;;;ACLxC;AACA,kBAAkB,mBAAO,CAAC,+BAAoB;AAC9C,oBAAoB,mBAAO,CAAC,iCAAsB;AAClD;;;;;;;;;;;;ACHA,gGAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAAO,CAAC,mDAAmB,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAC9C,MAAM,KAAK,EAKN;AACL,CAAC;;AAED;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,aAAa;AAChC,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC,mBAAmB,GAAG;AACtB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,aAAa;AAChC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,aAAa;AAChC,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA,kEAAkE,iCAAiC;AACnG,mFAAmF,qBAAqB;AACxG;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qDAAqD,OAAO;AAC5D;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;;AAEA,wIAAwI;AACxI;;AAEA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sBAAsB;AACtB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,gGAAgG,kBAAkB,cAAc,yDAAyD,aAAa;;AAEtM;AACA,6EAA6E,KAAK,wBAAwB;AAC1G;AACA;AACA;;AAEA,6DAA6D,OAAO;AACpE;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;ACjhBD,kEAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAA0C;AAClD,QAAQ,oCAAO,OAAO;AAAA;AAAA;AAAA;AAAA,kGAAC;AACvB,MAAM,KAAK,EAIN;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,2BAA2B;AAC1C,eAAe,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,cAAc,aAAa;AAC3B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,aAAa;AAChC,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,+BAA+B;AACnE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;;;;AC9Wc;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,sEAAY;AACd,aAAa,4DAAM;AACnB,sBAAsB,4DAAM;AAC5B;AACA;;;;;;;;;;;;;;;;;AC9BwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,sEAAY;AACd,aAAa,4DAAM;AACnB,sBAAsB,4DAAM;AAC5B;AACA;;;;;;;;;;;;;;;;AC9ByD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,sEAAY;AACd,yDAAyD;;AAEzD;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AAC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Ac;AAC9M,qBAAqB,8BAA8B,gDAAgD,wDAAwD;AAC3J,2CAA2C,sCAAsC,UAAU,mBAAmB,IAAI;AAClH;;AAEO;AACP,+BAA+B,uCAAuC,YAAY,KAAK,OAAO;AAC9F;AACA;;AAEA;AACA,wCAAwC,4BAA4B;AACpE,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,qDAAqD,cAAc;AACnE;AACA;AACA;;AAEO;AACP,2CAA2C;AAC3C;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,MAAM,oBAAoB,YAAY;AAC5E,qBAAqB,8CAA8C;AACnE;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,SAAS,gBAAgB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChZF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,gBAAgB,sCAAsC,kBAAkB;AACjF,wBAAwB;AACxB;AACA;;AAEO;AACP;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEO;AACP;AACA,+CAA+C,OAAO;AACtD;AACA;AAC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C,CAAC;QAC1B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE5B,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACtB,QAAQ,CAAC,GAAG,CA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","sources":["webpack:///tslib?99fd","webpack:///tslib?d030","./node_modules/ng-circle-progress/node_modules/tslib/tslib.es6.js","./node_modules/tslib/tslib.es6.js","./node_modules/@aspnet/signalr/src/AbortController.ts","./node_modules/@aspnet/signalr/src/Errors.ts","./node_modules/@aspnet/signalr/src/HandshakeProtocol.ts","./node_modules/@aspnet/signalr/src/HttpClient.ts","./node_modules/@aspnet/signalr/src/HttpConnection.ts","./node_modules/@aspnet/signalr/src/HubConnection.ts","./node_modules/@aspnet/signalr/src/HubConnectionBuilder.ts","./node_modules/@aspnet/signalr/src/IHubProtocol.ts","./node_modules/@aspnet/signalr/src/ILogger.ts","./node_modules/@aspnet/signalr/src/ITransport.ts","./node_modules/@aspnet/signalr/src/JsonHubProtocol.ts","./node_modules/@aspnet/signalr/src/Loggers.ts","./node_modules/@aspnet/signalr/src/LongPollingTransport.ts","./node_modules/@aspnet/signalr/src/ServerSentEventsTransport.ts","./node_modules/@aspnet/signalr/src/TextMessageFormat.ts","./node_modules/@aspnet/signalr/src/Utils.ts","./node_modules/@aspnet/signalr/src/WebSocketTransport.ts","./node_modules/@aspnet/signalr/src/index.ts","./node_modules/@ngx-progressbar/core/__ivy_ngcc__/fesm2015/@ngx-progressbar/core/lib/ng-progress-ref.ts","./node_modules/@ngx-progressbar/core/__ivy_ngcc__/fesm2015/@ngx-progressbar/core/lib/ng-progress.interface.ts","./node_modules/@ngx-progressbar/core/__ivy_ngcc__/fesm2015/@ngx-progressbar/core/lib/ng-progress.service.ts","./node_modules/@ngx-progressbar/core/__ivy_ngcc__/fesm2015/@ngx-progressbar/core/lib/ng-progress.component.ts","./node_modules/@ngx-progressbar/core/__ivy_ngcc__/fesm2015/@ngx-progressbar/core/lib/ng-progress.module.ts","./node_modules/@ngx-progressbar/http/__ivy_ngcc__/fesm2015/@ngx-progressbar/http/lib/ng-progress-http.interface.ts","./node_modules/@ngx-progressbar/http/__ivy_ngcc__/fesm2015/@ngx-progressbar/http/lib/ng-progress.interceptor.ts","./node_modules/@ngx-progressbar/http/__ivy_ngcc__/fesm2015/@ngx-progressbar/http/lib/ng-progress-http.module.ts","./node_modules/@ngx-progressbar/router/__ivy_ngcc__/fesm2015/@ngx-progressbar/router/lib/ng-progress-router.interface.ts","./node_modules/@ngx-progressbar/router/__ivy_ngcc__/fesm2015/@ngx-progressbar/router/lib/ng-progress-router.service.ts","./node_modules/@ngx-progressbar/router/__ivy_ngcc__/fesm2015/@ngx-progressbar/router/lib/ng-progress-router.module.ts","./node_modules/@nicky-lenaers/ngx-scroll-to/__ivy_ngcc__/fesm2015/@nicky-lenaers/ngx-scroll-to/lib/scroll-to-helpers.ts","./node_modules/@nicky-lenaers/ngx-scroll-to/__ivy_ngcc__/fesm2015/@nicky-lenaers/ngx-scroll-to/lib/scroll-to-animation.ts","./node_modules/@nicky-lenaers/ngx-scroll-to/__ivy_ngcc__/fesm2015/@nicky-lenaers/ngx-scroll-to/lib/scroll-to.service.ts","./node_modules/@nicky-lenaers/ngx-scroll-to/__ivy_ngcc__/fesm2015/@nicky-lenaers/ngx-scroll-to/lib/scroll-to.directive.ts","./node_modules/@nicky-lenaers/ngx-scroll-to/__ivy_ngcc__/fesm2015/@nicky-lenaers/ngx-scroll-to/lib/scroll-to.module.ts","./node_modules/@nicky-lenaers/ngx-scroll-to/__ivy_ngcc__/fesm2015/@nicky-lenaers/ngx-scroll-to/public-api.ts","./node_modules/@nicky-lenaers/ngx-scroll-to/__ivy_ngcc__/fesm2015/@nicky-lenaers/ngx-scroll-to/nicky-lenaers-ngx-scroll-to.ts","./node_modules/@progress/kendo-angular-buttons/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-common/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-dateinputs/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-dialog/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-dropdowns/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-excel-export/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-grid/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-inputs/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-inputs/node_modules/@progress/kendo-common/dist/es2015/main.js","./node_modules/@progress/kendo-angular-inputs/node_modules/@progress/kendo-common/dist/es2015/support.js","./node_modules/@progress/kendo-angular-inputs/node_modules/@progress/kendo-common/dist/es2015/util.js","./node_modules/@progress/kendo-angular-intl/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-intl/locales/en/all.js","./node_modules/@progress/kendo-angular-intl/locales/it/all.js","./node_modules/@progress/kendo-angular-l10n/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-layout/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-menu/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-pager/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-pdf-export/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-popup/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-sortable/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-tooltip/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-upload/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-common/dist/es2015/accessors/field-list.js","./node_modules/@progress/kendo-common/dist/es2015/accessors/getter.js","./node_modules/@progress/kendo-common/dist/es2015/accessors/setter.js","./node_modules/@progress/kendo-common/dist/es2015/main.js","./node_modules/@progress/kendo-common/dist/es2015/support.js","./node_modules/@progress/kendo-common/dist/es2015/util.js","./node_modules/@progress/kendo-data-query/dist/es2015/accessor.js","./node_modules/@progress/kendo-data-query/dist/es2015/array.operators.js","./node_modules/@progress/kendo-data-query/dist/es2015/filter-serialization.common.js","./node_modules/@progress/kendo-data-query/dist/es2015/filtering/filter-descriptor.interface.js","./node_modules/@progress/kendo-data-query/dist/es2015/filtering/filter-expression.factory.js","./node_modules/@progress/kendo-data-query/dist/es2015/filtering/filter-no-eval.js","./node_modules/@progress/kendo-data-query/dist/es2015/filtering/filter.operators.js","./node_modules/@progress/kendo-data-query/dist/es2015/funcs.js","./node_modules/@progress/kendo-data-query/dist/es2015/grouping/aggregate.operators.js","./node_modules/@progress/kendo-data-query/dist/es2015/grouping/group.operators.js","./node_modules/@progress/kendo-data-query/dist/es2015/main.js","./node_modules/@progress/kendo-data-query/dist/es2015/mvc/deserialization.js","./node_modules/@progress/kendo-data-query/dist/es2015/mvc/operators.js","./node_modules/@progress/kendo-data-query/dist/es2015/odata-filtering.operators.js","./node_modules/@progress/kendo-data-query/dist/es2015/odata.operators.js","./node_modules/@progress/kendo-data-query/dist/es2015/sorting/sort-array.operator.js","./node_modules/@progress/kendo-data-query/dist/es2015/sorting/sort.js","./node_modules/@progress/kendo-data-query/dist/es2015/transducers.js","./node_modules/@progress/kendo-data-query/dist/es2015/utils.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-centuries.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-days.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-decades.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-months.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-weeks.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-years.js","./node_modules/@progress/kendo-date-math/dist/es2015/adjust-dst.js","./node_modules/@progress/kendo-date-math/dist/es2015/clone-date.js","./node_modules/@progress/kendo-date-math/dist/es2015/constants.js","./node_modules/@progress/kendo-date-math/dist/es2015/create-date.js","./node_modules/@progress/kendo-date-math/dist/es2015/day-of-week.js","./node_modules/@progress/kendo-date-math/dist/es2015/day.enum.js","./node_modules/@progress/kendo-date-math/dist/es2015/direction.enum.js","./node_modules/@progress/kendo-date-math/dist/es2015/duration-in-centuries.js","./node_modules/@progress/kendo-date-math/dist/es2015/duration-in-decades.js","./node_modules/@progress/kendo-date-math/dist/es2015/duration-in-months.js","./node_modules/@progress/kendo-date-math/dist/es2015/duration-in-years.js","./node_modules/@progress/kendo-date-math/dist/es2015/first-day-of-month.js","./node_modules/@progress/kendo-date-math/dist/es2015/first-decade-of-century.js","./node_modules/@progress/kendo-date-math/dist/es2015/first-month-of-year.js","./node_modules/@progress/kendo-date-math/dist/es2015/first-year-of-decade.js","./node_modules/@progress/kendo-date-math/dist/es2015/get-date.js","./node_modules/@progress/kendo-date-math/dist/es2015/is-equal.js","./node_modules/@progress/kendo-date-math/dist/es2015/last-day-of-month.js","./node_modules/@progress/kendo-date-math/dist/es2015/last-decade-of-century.js","./node_modules/@progress/kendo-date-math/dist/es2015/last-month-of-year.js","./node_modules/@progress/kendo-date-math/dist/es2015/last-year-of-decade.js","./node_modules/@progress/kendo-date-math/dist/es2015/normalize-year.js","./node_modules/@progress/kendo-date-math/dist/es2015/prev-day-of-week.js","./node_modules/@progress/kendo-date-math/dist/es2015/set-month.js","./node_modules/@progress/kendo-date-math/dist/es2015/set-year.js","./node_modules/@progress/kendo-date-math/dist/es2015/week-in-year.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/class.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/color/color.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/color/named-colors.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/color/parse-color.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/save-as.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/support.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/template.js","./node_modules/@progress/kendo-drawing/dist/es2015/core/has-observers.js","./node_modules/@progress/kendo-drawing/dist/es2015/core/options-store.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/arc.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/circle.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/constants.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/calculate-curve-at.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/close-or-less.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/close.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/complex-number.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/curve-intersections-count.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/ellipse-extreme-angles.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/has-roots-in-range.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/is-out-of-end-point.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/line-intersection.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/line-intersections-count.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/solve-cubic-equation.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/to-cubic-polynomial.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/matrix.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/point.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/rect.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/segment.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/size.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/to-matrix.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/transform.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/transformation.js","./node_modules/@progress/kendo-drawing/dist/es2015/gradients/gradient-stop.js","./node_modules/@progress/kendo-drawing/dist/es2015/gradients/gradient.js","./node_modules/@progress/kendo-drawing/dist/es2015/gradients/linear-gradient.js","./node_modules/@progress/kendo-drawing/dist/es2015/gradients/radial-gradient.js","./node_modules/@progress/kendo-drawing/dist/es2015/gradients/stops-array.js","./node_modules/@progress/kendo-drawing/dist/es2015/html/core.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/measurable.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/paintable.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/traversable.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/with-accessors.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/with-geometry.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/with-options.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/with-points.js","./node_modules/@progress/kendo-drawing/dist/es2015/parsing/parse-path.js","./node_modules/@progress/kendo-drawing/dist/es2015/parsing/shape-map.js","./node_modules/@progress/kendo-drawing/dist/es2015/pdf/core.js","./node_modules/@progress/kendo-drawing/dist/es2015/pdf/deflate.js","./node_modules/@progress/kendo-drawing/dist/es2015/pdf/drawing.js","./node_modules/@progress/kendo-drawing/dist/es2015/pdf/ttf.js","./node_modules/@progress/kendo-drawing/dist/es2015/pdf/utils.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/circle.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/element.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/elements-array.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/geometry-elements-array.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/group.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/image.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/path.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/text.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/utils/elements-bounding-box.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/utils/elements-clippend-bounding-box.js","./node_modules/@progress/kendo-drawing/dist/es2015/text-metrics/lru-cache.js","./node_modules/@progress/kendo-drawing/dist/es2015/text-metrics/measure-text.js","./node_modules/@progress/kendo-drawing/dist/es2015/text-metrics/text-metrics.js","./node_modules/@progress/kendo-drawing/dist/es2015/text-metrics/util.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/append.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/arabic-to-roman.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/constants.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/create-promise.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/defined.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/definition-id.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/deg.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/encode-base64.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/encode-utf.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/is-transparent.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/last.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/limit-value.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/merge-sort.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/rad.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/round.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/value-or-default.js","./node_modules/@progress/kendo-file-saver/dist/es2015/base64.js","./node_modules/@progress/kendo-file-saver/dist/es2015/main.js","./node_modules/@progress/kendo-file-saver/dist/es2015/save-as.js","./node_modules/@progress/kendo-licensing/dist/index-esm.js","./node_modules/@progress/kendo-ooxml/dist/es2015/excel-exporter.js","./node_modules/@progress/kendo-ooxml/dist/es2015/main.js","./node_modules/@progress/kendo-ooxml/dist/es2015/ooxml.js","./node_modules/@progress/kendo-ooxml/dist/es2015/services.js","./node_modules/@progress/kendo-ooxml/dist/es2015/services/intl-service.js","./node_modules/@progress/kendo-ooxml/dist/es2015/services/template-service.js","./node_modules/@progress/kendo-ooxml/dist/es2015/utils/create-zip.js","./node_modules/@progress/kendo-ooxml/dist/es2015/utils/getter.js","./node_modules/@progress/kendo-ooxml/dist/es2015/utils/map.js","./node_modules/@progress/kendo-ooxml/dist/es2015/utils/time.js","./node_modules/@progress/kendo-popup-common/dist/es2015/add-scroll.js","./node_modules/@progress/kendo-popup-common/dist/es2015/align-point.js","./node_modules/@progress/kendo-popup-common/dist/es2015/align.js","./node_modules/@progress/kendo-popup-common/dist/es2015/apply-location-offset.js","./node_modules/@progress/kendo-popup-common/dist/es2015/bounding-offset.js","./node_modules/@progress/kendo-popup-common/dist/es2015/collision.js","./node_modules/@progress/kendo-popup-common/dist/es2015/document.js","./node_modules/@progress/kendo-popup-common/dist/es2015/element-scroll-position.js","./node_modules/@progress/kendo-popup-common/dist/es2015/is-body-offset.js","./node_modules/@progress/kendo-popup-common/dist/es2015/main.js","./node_modules/@progress/kendo-popup-common/dist/es2015/offset-parent-scroll-position.js","./node_modules/@progress/kendo-popup-common/dist/es2015/offset-parent.js","./node_modules/@progress/kendo-popup-common/dist/es2015/offset.js","./node_modules/@progress/kendo-popup-common/dist/es2015/owner-document.js","./node_modules/@progress/kendo-popup-common/dist/es2015/parent-scroll-position.js","./node_modules/@progress/kendo-popup-common/dist/es2015/parents.js","./node_modules/@progress/kendo-popup-common/dist/es2015/position-with-scroll.js","./node_modules/@progress/kendo-popup-common/dist/es2015/position.js","./node_modules/@progress/kendo-popup-common/dist/es2015/remove-scroll.js","./node_modules/@progress/kendo-popup-common/dist/es2015/restrict-to-view.js","./node_modules/@progress/kendo-popup-common/dist/es2015/scroll-position.js","./node_modules/@progress/kendo-popup-common/dist/es2015/scrollbar-width.js","./node_modules/@progress/kendo-popup-common/dist/es2015/sibling-container.js","./node_modules/@progress/kendo-popup-common/dist/es2015/siblings.js","./node_modules/@progress/kendo-popup-common/dist/es2015/window-viewport.js","./node_modules/@progress/kendo-popup-common/dist/es2015/window.js","./node_modules/@progress/pako-esm/dist/pako-esm2015.js","./node_modules/@telerik/kendo-draggable/dist/es2015/main.js","./node_modules/@telerik/kendo-inputs-common/dist/es2015/SliderModel.js","./node_modules/@telerik/kendo-inputs-common/dist/es2015/SliderUtil.js","./node_modules/@telerik/kendo-inputs-common/dist/es2015/SwitchController.js","./node_modules/@telerik/kendo-inputs-common/dist/es2015/SwitchModel.js","./node_modules/@telerik/kendo-inputs-common/dist/es2015/main.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/constants.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/currency.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/date-field-name.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/date-format-names.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/default-data.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/first-day.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/info.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/load-dates.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/load-numbers.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/load.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/number-symbols.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/parse-range-date.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/set-data.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/territory.js","./node_modules/@telerik/kendo-intl/dist/es2015/cldr/weekend-range.js","./node_modules/@telerik/kendo-intl/dist/es2015/common/constants.js","./node_modules/@telerik/kendo-intl/dist/es2015/common/format-string.js","./node_modules/@telerik/kendo-intl/dist/es2015/common/is-date.js","./node_modules/@telerik/kendo-intl/dist/es2015/common/is-negative-zero.js","./node_modules/@telerik/kendo-intl/dist/es2015/common/is-number.js","./node_modules/@telerik/kendo-intl/dist/es2015/common/is-string.js","./node_modules/@telerik/kendo-intl/dist/es2015/common/pad.js","./node_modules/@telerik/kendo-intl/dist/es2015/common/round.js","./node_modules/@telerik/kendo-intl/dist/es2015/dates.js","./node_modules/@telerik/kendo-intl/dist/es2015/dates/constants.js","./node_modules/@telerik/kendo-intl/dist/es2015/dates/date-name-type.js","./node_modules/@telerik/kendo-intl/dist/es2015/dates/date-pattern.js","./node_modules/@telerik/kendo-intl/dist/es2015/dates/format-date.js","./node_modules/@telerik/kendo-intl/dist/es2015/dates/format-names.js","./node_modules/@telerik/kendo-intl/dist/es2015/dates/parse-date.js","./node_modules/@telerik/kendo-intl/dist/es2015/dates/split-date-format.js","./node_modules/@telerik/kendo-intl/dist/es2015/dates/time-utils.js","./node_modules/@telerik/kendo-intl/dist/es2015/error-details.js","./node_modules/@telerik/kendo-intl/dist/es2015/errors.js","./node_modules/@telerik/kendo-intl/dist/es2015/format.js","./node_modules/@telerik/kendo-intl/dist/es2015/main.js","./node_modules/@telerik/kendo-intl/dist/es2015/numbers.js","./node_modules/@telerik/kendo-intl/dist/es2015/numbers/custom-number-format.js","./node_modules/@telerik/kendo-intl/dist/es2015/numbers/format-currency-symbol.js","./node_modules/@telerik/kendo-intl/dist/es2015/numbers/format-number.js","./node_modules/@telerik/kendo-intl/dist/es2015/numbers/format-options.js","./node_modules/@telerik/kendo-intl/dist/es2015/numbers/group-integer.js","./node_modules/@telerik/kendo-intl/dist/es2015/numbers/is-currency-style.js","./node_modules/@telerik/kendo-intl/dist/es2015/numbers/parse-number.js","./node_modules/@telerik/kendo-intl/dist/es2015/numbers/standard-number-format.js","./node_modules/@telerik/kendo-intl/dist/es2015/numbers/utils.js","./node_modules/projects/angular-resize-event/src/lib/resized-event.ts","./node_modules/projects/angular-resize-event/src/lib/resized.directive.ts","./node_modules/projects/angular-resize-event/src/lib/angular-resized-event.module.ts","./node_modules/projects/angular-resize-event/src/public-api.ts","./node_modules/projects/angular-resize-event/src/angular-resize-event.ts","./node_modules/css-element-queries/index.js","./node_modules/css-element-queries/src/ElementQueries.js","./node_modules/css-element-queries/src/ResizeSensor.js","./node_modules/date-fns/esm/_lib/requiredArgs/index.js","./node_modules/date-fns/esm/isAfter/index.js","./node_modules/date-fns/esm/isBefore/index.js","./node_modules/date-fns/esm/toDate/index.js","./node_modules/guid-typescript/dist/guid.js","./node_modules/jszip/dist/jszip.js","./node_modules/leaflet/src/core/Util.js","./node_modules/leaflet/src/core/Class.js","./node_modules/leaflet/src/core/Events.js","./node_modules/leaflet/src/geometry/Point.js","./node_modules/leaflet/src/geometry/Bounds.js","./node_modules/leaflet/src/geo/LatLngBounds.js","./node_modules/leaflet/src/geo/LatLng.js","./node_modules/leaflet/src/geo/crs/CRS.js","./node_modules/leaflet/src/geo/crs/CRS.Earth.js","./node_modules/leaflet/src/geo/projection/Projection.SphericalMercator.js","./node_modules/leaflet/src/geometry/Transformation.js","./node_modules/leaflet/src/geo/crs/CRS.EPSG3857.js","./node_modules/leaflet/src/layer/vector/SVG.Util.js","./node_modules/leaflet/src/core/Browser.js","./node_modules/leaflet/src/dom/DomEvent.Pointer.js","./node_modules/leaflet/src/dom/DomEvent.DoubleTap.js","./node_modules/leaflet/src/dom/DomUtil.js","./node_modules/leaflet/src/dom/DomEvent.js","./node_modules/leaflet/src/dom/PosAnimation.js","./node_modules/leaflet/src/map/Map.js","./node_modules/leaflet/src/control/Control.js","./node_modules/leaflet/src/control/Control.Layers.js","./node_modules/leaflet/src/control/Control.Zoom.js","./node_modules/leaflet/src/control/Control.Scale.js","./node_modules/leaflet/src/control/Control.Attribution.js","./node_modules/leaflet/src/control/index.js","./node_modules/leaflet/src/core/Handler.js","./node_modules/leaflet/src/core/index.js","./node_modules/leaflet/src/dom/Draggable.js","./node_modules/leaflet/src/geometry/LineUtil.js","./node_modules/leaflet/src/geometry/PolyUtil.js","./node_modules/leaflet/src/geo/projection/Projection.LonLat.js","./node_modules/leaflet/src/geo/projection/Projection.Mercator.js","./node_modules/leaflet/src/geo/projection/index.js","./node_modules/leaflet/src/geo/crs/CRS.EPSG3395.js","./node_modules/leaflet/src/geo/crs/CRS.EPSG4326.js","./node_modules/leaflet/src/geo/crs/CRS.Simple.js","./node_modules/leaflet/src/geo/crs/index.js","./node_modules/leaflet/src/layer/Layer.js","./node_modules/leaflet/src/layer/LayerGroup.js","./node_modules/leaflet/src/layer/FeatureGroup.js","./node_modules/leaflet/src/layer/marker/Icon.js","./node_modules/leaflet/src/layer/marker/Icon.Default.js","./node_modules/leaflet/src/layer/marker/Marker.Drag.js","./node_modules/leaflet/src/layer/marker/Marker.js","./node_modules/leaflet/src/layer/vector/Path.js","./node_modules/leaflet/src/layer/vector/CircleMarker.js","./node_modules/leaflet/src/layer/vector/Circle.js","./node_modules/leaflet/src/layer/vector/Polyline.js","./node_modules/leaflet/src/layer/vector/Polygon.js","./node_modules/leaflet/src/layer/GeoJSON.js","./node_modules/leaflet/src/layer/ImageOverlay.js","./node_modules/leaflet/src/layer/VideoOverlay.js","./node_modules/leaflet/src/layer/SVGOverlay.js","./node_modules/leaflet/src/layer/DivOverlay.js","./node_modules/leaflet/src/layer/Popup.js","./node_modules/leaflet/src/layer/Tooltip.js","./node_modules/leaflet/src/layer/marker/DivIcon.js","./node_modules/leaflet/src/layer/marker/index.js","./node_modules/leaflet/src/layer/tile/GridLayer.js","./node_modules/leaflet/src/layer/tile/TileLayer.js","./node_modules/leaflet/src/layer/tile/TileLayer.WMS.js","./node_modules/leaflet/src/layer/tile/index.js","./node_modules/leaflet/src/layer/vector/Renderer.js","./node_modules/leaflet/src/layer/vector/Canvas.js","./node_modules/leaflet/src/layer/vector/SVG.VML.js","./node_modules/leaflet/src/layer/vector/SVG.js","./node_modules/leaflet/src/layer/vector/Renderer.getRenderer.js","./node_modules/leaflet/src/layer/vector/Rectangle.js","./node_modules/leaflet/src/layer/vector/index.js","./node_modules/leaflet/src/layer/index.js","./node_modules/leaflet/src/map/handler/Map.BoxZoom.js","./node_modules/leaflet/src/map/handler/Map.DoubleClickZoom.js","./node_modules/leaflet/src/map/handler/Map.Drag.js","./node_modules/leaflet/src/map/handler/Map.Keyboard.js","./node_modules/leaflet/src/map/handler/Map.ScrollWheelZoom.js","./node_modules/leaflet/src/map/handler/Map.Tap.js","./node_modules/leaflet/src/map/handler/Map.TouchZoom.js","./node_modules/leaflet/src/map/index.js","./node_modules/leaflet/src/Leaflet.js","./node_modules/ng-circle-progress/__ivy_ngcc__/fesm2015/ng-circle-progress/circle-progress.component.ts","./node_modules/ng-circle-progress/__ivy_ngcc__/fesm2015/ng-circle-progress/index.ts","./node_modules/ng-circle-progress/__ivy_ngcc__/fesm2015/ng-circle-progress/ng-circle-progress.ts","../../src/compat/add/operator/filter.ts","../src/compat/operator/filter.ts","./node_modules/rxjs/src/index.ts","./node_modules/rxjs/src/internal/AsyncSubject.ts","./node_modules/rxjs/src/internal/BehaviorSubject.ts","./node_modules/rxjs/src/internal/InnerSubscriber.ts","./node_modules/rxjs/src/internal/Notification.ts","./node_modules/rxjs/src/internal/Observable.ts","./node_modules/rxjs/src/internal/Observer.ts","./node_modules/rxjs/src/internal/OuterSubscriber.ts","./node_modules/rxjs/src/internal/ReplaySubject.ts","./node_modules/rxjs/src/internal/Scheduler.ts","./node_modules/rxjs/src/internal/Subject.ts","./node_modules/rxjs/src/internal/SubjectSubscription.ts","./node_modules/rxjs/src/internal/Subscriber.ts","./node_modules/rxjs/src/internal/Subscription.ts","./node_modules/rxjs/src/internal/config.ts","./node_modules/rxjs/src/internal/observable/ConnectableObservable.ts","./node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts","./node_modules/rxjs/src/internal/observable/bindCallback.ts","./node_modules/rxjs/src/internal/observable/bindNodeCallback.ts","./node_modules/rxjs/src/internal/observable/combineLatest.ts","./node_modules/rxjs/src/internal/observable/concat.ts","./node_modules/rxjs/src/internal/observable/defer.ts","./node_modules/rxjs/src/internal/observable/empty.ts","./node_modules/rxjs/src/internal/observable/forkJoin.ts","./node_modules/rxjs/src/internal/observable/from.ts","./node_modules/rxjs/src/internal/observable/fromArray.ts","./node_modules/rxjs/src/internal/observable/fromEvent.ts","./node_modules/rxjs/src/internal/observable/fromEventPattern.ts","./node_modules/rxjs/src/internal/observable/generate.ts","./node_modules/rxjs/src/internal/observable/iif.ts","./node_modules/rxjs/src/internal/observable/interval.ts","./node_modules/rxjs/src/internal/observable/merge.ts","./node_modules/rxjs/src/internal/observable/never.ts","./node_modules/rxjs/src/internal/observable/of.ts","./node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts","./node_modules/rxjs/src/internal/observable/pairs.ts","./node_modules/rxjs/src/internal/observable/partition.ts","./node_modules/rxjs/src/internal/observable/race.ts","./node_modules/rxjs/src/internal/observable/range.ts","./node_modules/rxjs/src/internal/observable/throwError.ts","./node_modules/rxjs/src/internal/observable/timer.ts","./node_modules/rxjs/src/internal/observable/using.ts","./node_modules/rxjs/src/internal/observable/zip.ts","./node_modules/rxjs/src/internal/operators/audit.ts","./node_modules/rxjs/src/internal/operators/auditTime.ts","./node_modules/rxjs/src/internal/operators/buffer.ts","./node_modules/rxjs/src/internal/operators/bufferCount.ts","./node_modules/rxjs/src/internal/operators/bufferTime.ts","./node_modules/rxjs/src/internal/operators/bufferToggle.ts","./node_modules/rxjs/src/internal/operators/bufferWhen.ts","./node_modules/rxjs/src/internal/operators/catchError.ts","./node_modules/rxjs/src/internal/operators/combineAll.ts","./node_modules/rxjs/src/internal/operators/combineLatest.ts","./node_modules/rxjs/src/internal/operators/concat.ts","./node_modules/rxjs/src/internal/operators/concatAll.ts","./node_modules/rxjs/src/internal/operators/concatMap.ts","./node_modules/rxjs/src/internal/operators/concatMapTo.ts","./node_modules/rxjs/src/internal/operators/count.ts","./node_modules/rxjs/src/internal/operators/debounce.ts","./node_modules/rxjs/src/internal/operators/debounceTime.ts","./node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts","./node_modules/rxjs/src/internal/operators/delay.ts","./node_modules/rxjs/src/internal/operators/delayWhen.ts","./node_modules/rxjs/src/internal/operators/dematerialize.ts","./node_modules/rxjs/src/internal/operators/distinct.ts","./node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts","./node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts","./node_modules/rxjs/src/internal/operators/elementAt.ts","./node_modules/rxjs/src/internal/operators/endWith.ts","./node_modules/rxjs/src/internal/operators/every.ts","./node_modules/rxjs/src/internal/operators/exhaust.ts","./node_modules/rxjs/src/internal/operators/exhaustMap.ts","./node_modules/rxjs/src/internal/operators/expand.ts","./node_modules/rxjs/src/internal/operators/filter.ts","./node_modules/rxjs/src/internal/operators/finalize.ts","./node_modules/rxjs/src/internal/operators/find.ts","./node_modules/rxjs/src/internal/operators/findIndex.ts","./node_modules/rxjs/src/internal/operators/first.ts","./node_modules/rxjs/src/internal/operators/groupBy.ts","./node_modules/rxjs/src/internal/operators/ignoreElements.ts","./node_modules/rxjs/src/internal/operators/isEmpty.ts","./node_modules/rxjs/src/internal/operators/last.ts","./node_modules/rxjs/src/internal/operators/map.ts","./node_modules/rxjs/src/internal/operators/mapTo.ts","./node_modules/rxjs/src/internal/operators/materialize.ts","./node_modules/rxjs/src/internal/operators/max.ts","./node_modules/rxjs/src/internal/operators/merge.ts","./node_modules/rxjs/src/internal/operators/mergeAll.ts","./node_modules/rxjs/src/internal/operators/mergeMap.ts","./node_modules/rxjs/src/internal/operators/mergeMapTo.ts","./node_modules/rxjs/src/internal/operators/mergeScan.ts","./node_modules/rxjs/src/internal/operators/min.ts","./node_modules/rxjs/src/internal/operators/multicast.ts","./node_modules/rxjs/src/internal/operators/observeOn.ts","./node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts","./node_modules/rxjs/src/internal/operators/pairwise.ts","./node_modules/rxjs/src/internal/operators/partition.ts","./node_modules/rxjs/src/internal/operators/pluck.ts","./node_modules/rxjs/src/internal/operators/publish.ts","./node_modules/rxjs/src/internal/operators/publishBehavior.ts","./node_modules/rxjs/src/internal/operators/publishLast.ts","./node_modules/rxjs/src/internal/operators/publishReplay.ts","./node_modules/rxjs/src/internal/operators/race.ts","./node_modules/rxjs/src/internal/operators/reduce.ts","./node_modules/rxjs/src/internal/operators/refCount.ts","./node_modules/rxjs/src/internal/operators/repeat.ts","./node_modules/rxjs/src/internal/operators/repeatWhen.ts","./node_modules/rxjs/src/internal/operators/retry.ts","./node_modules/rxjs/src/internal/operators/retryWhen.ts","./node_modules/rxjs/src/internal/operators/sample.ts","./node_modules/rxjs/src/internal/operators/sampleTime.ts","./node_modules/rxjs/src/internal/operators/scan.ts","./node_modules/rxjs/src/internal/operators/sequenceEqual.ts","./node_modules/rxjs/src/internal/operators/share.ts","./node_modules/rxjs/src/internal/operators/shareReplay.ts","./node_modules/rxjs/src/internal/operators/single.ts","./node_modules/rxjs/src/internal/operators/skip.ts","./node_modules/rxjs/src/internal/operators/skipLast.ts","./node_modules/rxjs/src/internal/operators/skipUntil.ts","./node_modules/rxjs/src/internal/operators/skipWhile.ts","./node_modules/rxjs/src/internal/operators/startWith.ts","./node_modules/rxjs/src/internal/operators/subscribeOn.ts","./node_modules/rxjs/src/internal/operators/switchAll.ts","./node_modules/rxjs/src/internal/operators/switchMap.ts","./node_modules/rxjs/src/internal/operators/switchMapTo.ts","./node_modules/rxjs/src/internal/operators/take.ts","./node_modules/rxjs/src/internal/operators/takeLast.ts","./node_modules/rxjs/src/internal/operators/takeUntil.ts","./node_modules/rxjs/src/internal/operators/takeWhile.ts","./node_modules/rxjs/src/internal/operators/tap.ts","./node_modules/rxjs/src/internal/operators/throttle.ts","./node_modules/rxjs/src/internal/operators/throttleTime.ts","./node_modules/rxjs/src/internal/operators/throwIfEmpty.ts","./node_modules/rxjs/src/internal/operators/timeInterval.ts","./node_modules/rxjs/src/internal/operators/timeout.ts","./node_modules/rxjs/src/internal/operators/timeoutWith.ts","./node_modules/rxjs/src/internal/operators/timestamp.ts","./node_modules/rxjs/src/internal/operators/toArray.ts","./node_modules/rxjs/src/internal/operators/window.ts","./node_modules/rxjs/src/internal/operators/windowCount.ts","./node_modules/rxjs/src/internal/operators/windowTime.ts","./node_modules/rxjs/src/internal/operators/windowToggle.ts","./node_modules/rxjs/src/internal/operators/windowWhen.ts","./node_modules/rxjs/src/internal/operators/withLatestFrom.ts","./node_modules/rxjs/src/internal/operators/zip.ts","./node_modules/rxjs/src/internal/operators/zipAll.ts","./node_modules/rxjs/src/internal/scheduled/scheduleArray.ts","./node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts","./node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts","./node_modules/rxjs/src/internal/scheduled/schedulePromise.ts","./node_modules/rxjs/src/internal/scheduled/scheduled.ts","./node_modules/rxjs/src/internal/scheduler/Action.ts","./node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts","./node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts","./node_modules/rxjs/src/internal/scheduler/AsapAction.ts","./node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts","./node_modules/rxjs/src/internal/scheduler/AsyncAction.ts","./node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts","./node_modules/rxjs/src/internal/scheduler/QueueAction.ts","./node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts","./node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts","./node_modules/rxjs/src/internal/scheduler/animationFrame.ts","./node_modules/rxjs/src/internal/scheduler/asap.ts","./node_modules/rxjs/src/internal/scheduler/async.ts","./node_modules/rxjs/src/internal/scheduler/queue.ts","./node_modules/rxjs/src/internal/symbol/iterator.ts","./node_modules/rxjs/src/internal/symbol/observable.ts","./node_modules/rxjs/src/internal/symbol/rxSubscriber.ts","./node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts","./node_modules/rxjs/src/internal/util/EmptyError.ts","./node_modules/rxjs/src/internal/util/Immediate.ts","./node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","./node_modules/rxjs/src/internal/util/TimeoutError.ts","./node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","./node_modules/rxjs/src/internal/util/canReportError.ts","./node_modules/rxjs/src/internal/util/hostReportError.ts","./node_modules/rxjs/src/internal/util/identity.ts","./node_modules/rxjs/src/internal/util/isArray.ts","./node_modules/rxjs/src/internal/util/isArrayLike.ts","./node_modules/rxjs/src/internal/util/isDate.ts","./node_modules/rxjs/src/internal/util/isFunction.ts","./node_modules/rxjs/src/internal/util/isInteropObservable.ts","./node_modules/rxjs/src/internal/util/isIterable.ts","./node_modules/rxjs/src/internal/util/isNumeric.ts","./node_modules/rxjs/src/internal/util/isObject.ts","./node_modules/rxjs/src/internal/util/isObservable.ts","./node_modules/rxjs/src/internal/util/isPromise.ts","./node_modules/rxjs/src/internal/util/isScheduler.ts","./node_modules/rxjs/src/internal/util/noop.ts","./node_modules/rxjs/src/internal/util/not.ts","./node_modules/rxjs/src/internal/util/pipe.ts","./node_modules/rxjs/src/internal/util/subscribeTo.ts","./node_modules/rxjs/src/internal/util/subscribeToArray.ts","./node_modules/rxjs/src/internal/util/subscribeToIterable.ts","./node_modules/rxjs/src/internal/util/subscribeToObservable.ts","./node_modules/rxjs/src/internal/util/subscribeToPromise.ts","./node_modules/rxjs/src/internal/util/subscribeToResult.ts","./node_modules/rxjs/src/internal/util/toSubscriber.ts","./node_modules/rxjs/src/operators/index.ts","./node_modules/rxjs/src/add/operator/filter.ts","./node_modules/rxjs/src/internal/operators/index.ts","./node_modules/ts-md5/src/md5.ts","tslib","./node_modules/core/node_modules/tslib/tslib.es6.mjs","../../packages/animations/src/animation_builder.ts","../../packages/animations/src/animation_metadata.ts","../../packages/animations/src/util.ts","../../packages/animations/src/players/animation_player.ts","../../packages/animations/src/players/animation_group_player.ts","../../packages/animations/src/private_export.ts","../../packages/animations/src/animations.ts","../../packages/animations/public_api.ts","../../packages/animations/index.ts","../../packages/animations/animations.ts","../../packages/animations/browser/src/render/shared.ts","../../packages/animations/browser/src/render/animation_driver.ts","../../packages/animations/browser/src/util.ts","../../packages/animations/browser/src/dsl/animation_transition_expr.ts","../../packages/animations/browser/src/dsl/animation_ast_builder.ts","../../packages/animations/browser/src/dsl/animation_timeline_instruction.ts","../../packages/animations/browser/src/dsl/element_instruction_map.ts","../../packages/animations/browser/src/dsl/animation_timeline_builder.ts","../../packages/animations/browser/src/dsl/animation.ts","../../packages/animations/browser/src/dsl/style_normalization/animation_style_normalizer.ts","../../packages/animations/browser/src/dsl/style_normalization/web_animations_style_normalizer.ts","../../packages/animations/browser/src/dsl/animation_transition_instruction.ts","../../packages/animations/browser/src/dsl/animation_transition_factory.ts","../../packages/animations/browser/src/dsl/animation_trigger.ts","../../packages/animations/browser/src/render/timeline_animation_engine.ts","../../packages/animations/browser/src/render/transition_animation_engine.ts","../../packages/animations/browser/src/render/animation_engine_next.ts","../../packages/animations/browser/src/render/special_cased_styles.ts","../../packages/animations/browser/src/render/css_keyframes/element_animation_style_handler.ts","../../packages/animations/browser/src/render/css_keyframes/css_keyframes_player.ts","../../packages/animations/browser/src/render/css_keyframes/direct_style_player.ts","../../packages/animations/browser/src/render/css_keyframes/css_keyframes_driver.ts","../../packages/animations/browser/src/render/web_animations/web_animations_player.ts","../../packages/animations/browser/src/render/web_animations/web_animations_driver.ts","../../packages/animations/browser/src/private_export.ts","../../packages/animations/browser/src/browser.ts","../../packages/animations/browser/public_api.ts","../../packages/animations/browser/index.ts","../../packages/animations/browser/browser.ts","../../src/cdk/coercion/boolean-property.ts","../../src/cdk/coercion/number-property.ts","../../src/cdk/coercion/array.ts","../../src/cdk/coercion/css-pixel-value.ts","../../src/cdk/coercion/element.ts","../../src/cdk/coercion/string-array.ts","../../src/cdk/coercion/public-api.ts","../../src/cdk/coercion/index.ts","../../src/cdk/layout/layout-module.ts","../../src/cdk/layout/media-matcher.ts","../../src/cdk/layout/breakpoints-observer.ts","../../src/cdk/layout/breakpoints.ts","../../src/cdk/layout/public-api.ts","../../src/cdk/layout/index.ts","../../src/cdk/layout/layout_public_index.ts","../../src/cdk/platform/platform.ts","../../src/cdk/platform/platform-module.ts","../../src/cdk/platform/features/input-types.ts","../../src/cdk/platform/features/passive-listeners.ts","../../src/cdk/platform/features/scrolling.ts","../../src/cdk/platform/features/shadow-dom.ts","../../src/cdk/platform/features/test-environment.ts","../../src/cdk/platform/public-api.ts","../../src/cdk/platform/index.ts","../../src/cdk/platform/platform_public_index.ts","../../packages/common/src/dom_adapter.ts","../../packages/common/src/dom_tokens.ts","../../packages/common/src/location/platform_location.ts","../../packages/common/src/private_export.ts","../../packages/common/src/location/util.ts","../../packages/common/src/location/location_strategy.ts","../../packages/common/src/location/hash_location_strategy.ts","../../packages/common/src/location/location.ts","../../packages/common/src/location/index.ts","../../packages/common/src/i18n/currencies.ts","../../packages/common/src/i18n/locale_data_api.ts","../../packages/common/src/i18n/format_date.ts","../../packages/common/src/i18n/format_number.ts","../../packages/common/src/i18n/localization.ts","../../packages/common/src/i18n/locale_data.ts","../../packages/common/src/cookie.ts","../../packages/common/src/directives/ng_class.ts","../../packages/common/src/directives/ng_component_outlet.ts","../../packages/common/src/directives/ng_for_of.ts","../../packages/common/src/directives/ng_if.ts","../../packages/common/src/directives/ng_switch.ts","../../packages/common/src/directives/ng_plural.ts","../../packages/common/src/directives/ng_style.ts","../../packages/common/src/directives/ng_template_outlet.ts","../../packages/common/src/directives/index.ts","../../packages/common/src/pipes/invalid_pipe_argument_error.ts","../../packages/common/src/pipes/async_pipe.ts","../../packages/common/src/pipes/case_conversion_pipes.ts","../../packages/common/src/pipes/date_pipe.ts","../../packages/common/src/pipes/i18n_plural_pipe.ts","../../packages/common/src/pipes/i18n_select_pipe.ts","../../packages/common/src/pipes/json_pipe.ts","../../packages/common/src/pipes/keyvalue_pipe.ts","../../packages/common/src/pipes/number_pipe.ts","../../packages/common/src/pipes/slice_pipe.ts","../../packages/common/src/pipes/index.ts","../../packages/common/src/common_module.ts","../../packages/common/src/platform_id.ts","../../packages/common/src/version.ts","../../packages/common/src/viewport_scroller.ts","../../packages/common/src/xhr.ts","../../packages/common/src/common.ts","../../packages/common/public_api.ts","../../packages/common/index.ts","../../packages/common/common.ts","../../packages/common/http/src/backend.ts","../../packages/common/http/src/headers.ts","../../packages/common/http/src/params.ts","../../packages/common/http/src/context.ts","../../packages/common/http/src/request.ts","../../packages/common/http/src/response.ts","../../packages/common/http/src/client.ts","../../packages/common/http/src/interceptor.ts","../../packages/common/http/src/jsonp.ts","../../packages/common/http/src/xhr.ts","../../packages/common/http/src/xsrf.ts","../../packages/common/http/src/module.ts","../../packages/common/http/public_api.ts","../../packages/common/http/index.ts","../../packages/common/http/http.ts","../../packages/common/locales/extra/it.ts","../../packages/common/locales/it.ts","../../packages/compiler/src/ml_parser/tags.ts","../../packages/compiler/src/ml_parser/html_tags.ts","../../packages/compiler/src/selector.ts","../../packages/compiler/src/core.ts","../../packages/compiler/src/util.ts","../../packages/compiler/src/i18n/big_integer.ts","../../packages/compiler/src/i18n/digest.ts","../../packages/compiler/src/output/output_ast.ts","../../packages/compiler/src/constant_pool.ts","../../packages/compiler/src/render3/r3_identifiers.ts","../../packages/compiler/src/output/source_map.ts","../../packages/compiler/src/output/abstract_emitter.ts","../../packages/compiler/src/render3/util.ts","../../packages/compiler/src/render3/r3_factory.ts","../../packages/compiler/src/render3/r3_ast.ts","../../packages/compiler/src/i18n/i18n_ast.ts","../../packages/compiler/src/i18n/serializers/serializer.ts","../../packages/compiler/src/i18n/serializers/xml_helper.ts","../../packages/compiler/src/i18n/serializers/xmb.ts","../../packages/compiler/src/render3/view/i18n/util.ts","../../packages/compiler/src/render3/view/util.ts","../../packages/compiler/src/injectable_compiler_2.ts","../../packages/compiler/src/assertions.ts","../../packages/compiler/src/ml_parser/interpolation_config.ts","../../packages/compiler/src/chars.ts","../../packages/compiler/src/parse_util.ts","../../packages/compiler/src/output/abstract_js_emitter.ts","../../packages/compiler/src/output/output_jit_trusted_types.ts","../../packages/compiler/src/output/output_jit.ts","../../packages/compiler/src/render3/r3_injector_compiler.ts","../../packages/compiler/src/render3/r3_jit.ts","../../packages/compiler/src/render3/r3_module_compiler.ts","../../packages/compiler/src/render3/r3_pipe_compiler.ts","../../packages/compiler/src/expression_parser/ast.ts","../../packages/compiler/src/identifiers.ts","../../packages/compiler/src/compiler_util/expression_converter.ts","../../packages/compiler/src/shadow_css.ts","../../packages/compiler/src/render3/view/style_parser.ts","../../packages/compiler/src/render3/view/styling_builder.ts","../../packages/compiler/src/expression_parser/lexer.ts","../../packages/compiler/src/expression_parser/parser.ts","../../packages/compiler/src/ast_path.ts","../../packages/compiler/src/ml_parser/ast.ts","../../packages/compiler/src/ml_parser/entities.ts","../../packages/compiler/src/ml_parser/lexer.ts","../../packages/compiler/src/ml_parser/parser.ts","../../packages/compiler/src/ml_parser/html_parser.ts","../../packages/compiler/src/ml_parser/html_whitespaces.ts","../../packages/compiler/src/output/map_util.ts","../../packages/compiler/src/schema/dom_security_schema.ts","../../packages/compiler/src/schema/element_schema_registry.ts","../../packages/compiler/src/schema/dom_element_schema_registry.ts","../../packages/compiler/src/schema/trusted_types_sinks.ts","../../packages/compiler/src/template_parser/binding_parser.ts","../../packages/compiler/src/style_url_resolver.ts","../../packages/compiler/src/template_parser/template_preparser.ts","../../packages/compiler/src/render3/r3_template_transform.ts","../../packages/compiler/src/render3/view/i18n/context.ts","../../packages/compiler/src/render3/view/i18n/icu_serializer.ts","../../packages/compiler/src/i18n/serializers/placeholder.ts","../../packages/compiler/src/i18n/i18n_parser.ts","../../packages/compiler/src/i18n/parse_util.ts","../../packages/compiler/src/render3/view/i18n/meta.ts","../../packages/compiler/src/render3/view/i18n/get_msg_utils.ts","../../packages/compiler/src/render3/view/i18n/localize_utils.ts","../../packages/compiler/src/render3/view/template.ts","../../packages/compiler/src/render3/view/compiler.ts","../../packages/compiler/src/resource_loader.ts","../../packages/compiler/src/jit_compiler_facade.ts","../../packages/compiler/src/version.ts","../../packages/compiler/src/config.ts","../../packages/compiler/src/i18n/extractor_merger.ts","../../packages/compiler/src/ml_parser/xml_tags.ts","../../packages/compiler/src/ml_parser/xml_parser.ts","../../packages/compiler/src/i18n/serializers/xliff.ts","../../packages/compiler/src/i18n/serializers/xliff2.ts","../../packages/compiler/src/i18n/serializers/xtb.ts","../../packages/compiler/src/i18n/translation_bundle.ts","../../packages/compiler/src/i18n/i18n_html_parser.ts","../../packages/compiler/src/i18n/message_bundle.ts","../../packages/compiler/src/i18n/index.ts","../../packages/compiler/src/render3/partial/api.ts","../../packages/compiler/src/render3/view/t2_binder.ts","../../packages/compiler/src/render3/r3_class_metadata_compiler.ts","../../packages/compiler/src/render3/partial/class_metadata.ts","../../packages/compiler/src/render3/partial/util.ts","../../packages/compiler/src/render3/partial/directive.ts","../../packages/compiler/src/render3/partial/component.ts","../../packages/compiler/src/render3/partial/factory.ts","../../packages/compiler/src/render3/partial/injectable.ts","../../packages/compiler/src/render3/partial/injector.ts","../../packages/compiler/src/render3/partial/ng_module.ts","../../packages/compiler/src/render3/partial/pipe.ts","../../packages/compiler/src/compiler.ts","../../packages/compiler/public_api.ts","../../packages/compiler/compiler.ts","../../packages/compiler/index.ts","../../packages/core/src/util/property.ts","../../packages/core/src/util/stringify.ts","../../packages/core/src/di/forward_ref.ts","../../packages/core/src/render3/error_details_base_url.ts","../../packages/core/src/render3/error_code.ts","../../packages/core/src/render3/util/stringify_utils.ts","../../packages/core/src/render3/errors_di.ts","../../packages/core/src/util/assert.ts","../../packages/core/src/di/interface/defs.ts","../../packages/core/src/di/interface/injector.ts","../../packages/core/src/di/inject_switch.ts","../../packages/core/src/util/closure.ts","../../packages/core/src/change_detection/constants.ts","../../packages/core/src/metadata/view.ts","../../packages/core/src/util/global.ts","../../packages/core/src/util/ng_dev_mode.ts","../../packages/core/src/util/empty.ts","../../packages/core/src/render3/fields.ts","../../packages/core/src/render3/definition.ts","../../packages/core/src/render3/interfaces/container.ts","../../packages/core/src/render3/interfaces/view.ts","../../packages/core/src/render3/interfaces/type_checks.ts","../../packages/core/src/render3/assert.ts","../../packages/core/src/render3/definition_factory.ts","../../packages/core/src/interface/simple_change.ts","../../packages/core/src/render3/features/ng_onchanges_feature.ts","../../packages/core/src/render3/profiler.ts","../../packages/core/src/render3/namespaces.ts","../../packages/core/src/render3/interfaces/document.ts","../../packages/core/src/render3/interfaces/renderer.ts","../../packages/core/src/render3/util/view_utils.ts","../../packages/core/src/render3/state.ts","../../packages/core/src/render3/hooks.ts","../../packages/core/src/render3/interfaces/injector.ts","../../packages/core/src/render3/interfaces/node.ts","../../packages/core/src/render3/node_assert.ts","../../packages/core/src/render3/util/attrs_utils.ts","../../packages/core/src/render3/util/injector_utils.ts","../../packages/core/src/render3/di.ts","../../packages/core/src/render3/instructions/di_attr.ts","../../packages/core/src/util/decorators.ts","../../packages/core/src/di/metadata_attr.ts","../../packages/core/src/di/injection_token.ts","../../packages/core/src/metadata/di.ts","../../packages/core/src/compiler/compiler_facade_interface.ts","../../packages/core/src/compiler/compiler_facade.ts","../../packages/core/src/interface/type.ts","../../packages/core/src/util/array_utils.ts","../../packages/core/src/reflection/reflection_capabilities.ts","../../packages/core/src/di/injector_compatibility.ts","../../packages/core/src/di/metadata.ts","../../packages/core/src/di/jit/util.ts","../../packages/core/src/metadata/resource_loading.ts","../../packages/core/src/util/security/trusted_types.ts","../../packages/core/src/util/security/trusted_types_bypass.ts","../../packages/core/src/sanitization/bypass.ts","../../packages/core/src/sanitization/inert_body.ts","../../packages/core/src/sanitization/url_sanitizer.ts","../../packages/core/src/sanitization/html_sanitizer.ts","../../packages/core/src/sanitization/security.ts","../../packages/core/src/sanitization/sanitization.ts","../../packages/core/src/render3/context_discovery.ts","../../packages/core/src/util/errors.ts","../../packages/core/src/errors.ts","../../packages/core/src/error_handler.ts","../../packages/core/src/metadata/schema.ts","../../packages/core/src/util/dom.ts","../../packages/core/src/util/ng_reflect.ts","../../packages/core/src/render3/util/misc_utils.ts","../../packages/core/src/render3/errors.ts","../../packages/core/src/render/api_flags.ts","../../packages/core/src/render3/i18n/i18n_tree_shaking.ts","../../packages/core/src/render3/interfaces/projection.ts","../../packages/core/src/render3/util/view_traversal_utils.ts","../../packages/core/src/render3/node_manipulation.ts","../../packages/core/src/render3/styling/class_differ.ts","../../packages/core/src/render3/node_selector_matcher.ts","../../packages/core/src/render3/tokens.ts","../../packages/core/src/render3/instructions/advance.ts","../../packages/core/src/util/named_array_type.ts","../../packages/core/src/render3/interfaces/styling.ts","../../packages/core/src/render3/util/debug_utils.ts","../../packages/core/src/render3/instructions/lview_debug.ts","../../packages/core/src/render3/instructions/shared.ts","../../packages/core/src/render3/styling/static_styling.ts","../../packages/core/src/render3/instructions/change_detection.ts","../../packages/core/src/di/injector_token.ts","../../packages/core/src/di/null_injector.ts","../../packages/core/src/di/scope.ts","../../packages/core/src/di/r3_injector.ts","../../packages/core/src/di/injector.ts","../../packages/core/src/render3/util/discovery_utils.ts","../../packages/core/src/render3/util/change_detection_utils.ts","../../packages/core/src/render3/util/global_utils.ts","../../packages/core/src/render3/component.ts","../../packages/core/src/render3/features/inherit_definition_feature.ts","../../packages/core/src/render3/features/copy_definition_feature.ts","../../packages/core/src/util/symbol.ts","../../packages/core/src/change_detection/change_detection_util.ts","../../packages/core/src/render3/bindings.ts","../../packages/core/src/render3/instructions/attribute.ts","../../packages/core/src/render3/instructions/interpolation.ts","../../packages/core/src/render3/instructions/attribute_interpolation.ts","../../packages/core/src/render3/instructions/template.ts","../../packages/core/src/render3/instructions/storage.ts","../../packages/core/src/di/jit/environment.ts","../../packages/core/src/di/jit/injectable.ts","../../packages/core/src/di/injectable.ts","../../packages/core/src/di/reflective_errors.ts","../../packages/core/src/di/reflective_key.ts","../../packages/core/src/reflection/reflector.ts","../../packages/core/src/reflection/reflection.ts","../../packages/core/src/di/reflective_provider.ts","../../packages/core/src/di/reflective_injector.ts","../../packages/core/src/di/index.ts","../../packages/core/src/di.ts","../../packages/core/src/render3/instructions/di.ts","../../packages/core/src/render3/instructions/property.ts","../../packages/core/src/render3/instructions/element.ts","../../packages/core/src/render3/instructions/element_container.ts","../../packages/core/src/render3/instructions/get_current_view.ts","../../packages/core/src/util/lang.ts","../../packages/core/src/render3/instructions/listener.ts","../../packages/core/src/render3/instructions/namespace.ts","../../packages/core/src/render3/instructions/next_context.ts","../../packages/core/src/render3/instructions/projection.ts","../../packages/core/src/render3/instructions/property_interpolation.ts","../../packages/core/src/render3/styling/style_binding_list.ts","../../packages/core/src/render3/styling/styling_parser.ts","../../packages/core/src/render3/instructions/styling.ts","../../packages/core/src/render3/instructions/text.ts","../../packages/core/src/render3/instructions/text_interpolation.ts","../../packages/core/src/render3/instructions/class_map_interpolation.ts","../../packages/core/src/render3/instructions/style_map_interpolation.ts","../../packages/core/src/render3/instructions/style_prop_interpolation.ts","../../packages/core/src/render3/instructions/host_property.ts","../../packages/core/src/util/ng_i18n_closure_mode.ts","../../packages/core/src/i18n/locale_en.ts","../../packages/core/src/i18n/locale_data_api.ts","../../packages/core/src/i18n/localization.ts","../../packages/core/src/render3/interfaces/i18n.ts","../../packages/core/src/render3/i18n/i18n_locale_id.ts","../../packages/core/src/render3/node_manipulation_i18n.ts","../../packages/core/src/render3/i18n/i18n_insert_before_index.ts","../../packages/core/src/render3/i18n/i18n_util.ts","../../packages/core/src/render3/i18n/i18n_apply.ts","../../packages/core/src/render3/instructions/i18n_icu_container_visitor.ts","../../packages/core/src/render3/i18n/i18n_debug.ts","../../packages/core/src/render3/i18n/i18n_parse.ts","../../packages/core/src/render3/i18n/i18n_postprocess.ts","../../packages/core/src/render3/instructions/i18n.ts","../../packages/core/src/render3/instructions/all.ts","../../packages/core/src/render3/di_setup.ts","../../packages/core/src/render3/features/providers_feature.ts","../../packages/core/src/linker/component_factory.ts","../../packages/core/src/linker/component_factory_resolver.ts","../../packages/core/src/linker/element_ref.ts","../../packages/core/src/render/api.ts","../../packages/core/src/sanitization/sanitizer.ts","../../packages/core/src/version.ts","../../packages/core/src/view/provider_flags.ts","../../packages/core/src/render3/collect_native_nodes.ts","../../packages/core/src/render3/view_ref.ts","../../packages/core/src/render3/component_ref.ts","../../packages/core/src/render3/metadata.ts","../../packages/core/src/linker/ng_module_factory.ts","../../packages/core/src/linker/ng_module_factory_registration.ts","../../packages/core/src/render3/ng_module_ref.ts","../../packages/core/src/render3/pure_function.ts","../../packages/core/src/render3/pipe.ts","../../packages/core/src/event_emitter.ts","../../packages/core/src/linker/query_list.ts","../../packages/core/src/linker/template_ref.ts","../../packages/core/src/linker/view_container_ref.ts","../../packages/core/src/render3/interfaces/definition.ts","../../packages/core/src/render3/interfaces/query.ts","../../packages/core/src/render3/query.ts","../../packages/core/src/render3/view_engine_compatibility_prebound.ts","../../packages/core/src/render3/index.ts","../../packages/core/src/render3/jit/environment.ts","../../packages/core/src/render3/jit/jit_options.ts","../../packages/core/src/render3/jit/module.ts","../../packages/core/src/render3/jit/directive.ts","../../packages/core/src/render3/jit/pipe.ts","../../packages/core/src/metadata/directives.ts","../../packages/core/src/metadata/ng_module.ts","../../packages/core/src/metadata.ts","../../packages/core/src/util/noop.ts","../../packages/core/src/r3_symbols.ts","../../packages/core/src/application_init.ts","../../packages/core/src/application_tokens.ts","../../packages/core/src/console.ts","../../packages/core/src/i18n/tokens.ts","../../packages/core/src/linker/compiler.ts","../../packages/core/src/util/microtask.ts","../../packages/core/src/util/raf.ts","../../packages/core/src/zone/ng_zone.ts","../../packages/core/src/testability/testability.ts","../../packages/core/src/application_ref.ts","../../packages/core/src/util/is_dev_mode.ts","../../packages/core/src/zone.ts","../../packages/core/src/render.ts","../../packages/core/src/linker/ng_module_factory_loader.ts","../../packages/core/src/change_detection/change_detector_ref.ts","../../packages/core/src/linker/view_ref.ts","../../packages/core/src/linker.ts","../../packages/core/src/linker/ng_module_factory_loader_impl.ts","../../packages/core/src/debug/debug_node.ts","../../packages/core/src/change_detection/differs/default_iterable_differ.ts","../../packages/core/src/change_detection/differs/default_keyvalue_differ.ts","../../packages/core/src/change_detection/differs/iterable_differs.ts","../../packages/core/src/change_detection/differs/keyvalue_differs.ts","../../packages/core/src/change_detection/change_detection.ts","../../packages/core/src/change_detection.ts","../../packages/core/src/platform_core_providers.ts","../../packages/core/src/application_module.ts","../../packages/core/src/core_private_export.ts","../../packages/core/src/render3/jit/partial.ts","../../packages/core/src/core_render3_private_export.ts","../../packages/core/src/core.ts","../../packages/core/public_api.ts","../../packages/core/index.ts","../../packages/core/core.ts","../../packages/forms/src/directives/control_value_accessor.ts","../../packages/forms/src/directives/checkbox_value_accessor.ts","../../packages/forms/src/directives/default_value_accessor.ts","../../packages/forms/src/validators.ts","../../packages/forms/src/directives/abstract_control_directive.ts","../../packages/forms/src/directives/ng_control.ts","../../packages/forms/src/directives/control_container.ts","../../packages/forms/src/directives/ng_control_status.ts","../../packages/forms/src/directives/error_examples.ts","../../packages/forms/src/directives/reactive_errors.ts","../../packages/forms/src/directives/shared.ts","../../packages/forms/src/model.ts","../../packages/forms/src/directives/ng_form.ts","../../packages/forms/src/directives/abstract_form_group_directive.ts","../../packages/forms/src/directives/template_driven_errors.ts","../../packages/forms/src/directives/ng_model_group.ts","../../packages/forms/src/directives/ng_model.ts","../../packages/forms/src/directives/ng_no_validate_directive.ts","../../packages/forms/src/directives/number_value_accessor.ts","../../packages/forms/src/directives/radio_control_value_accessor.ts","../../packages/forms/src/directives/range_value_accessor.ts","../../packages/forms/src/directives/reactive_directives/form_control_directive.ts","../../packages/forms/src/directives/reactive_directives/form_group_directive.ts","../../packages/forms/src/directives/reactive_directives/form_group_name.ts","../../packages/forms/src/directives/reactive_directives/form_control_name.ts","../../packages/forms/src/directives/select_control_value_accessor.ts","../../packages/forms/src/directives/select_multiple_control_value_accessor.ts","../../packages/forms/src/directives/validators.ts","../../packages/forms/src/directives.ts","../../packages/forms/src/form_providers.ts","../../packages/forms/src/form_builder.ts","../../packages/forms/src/version.ts","../../packages/forms/src/forms.ts","../../packages/forms/public_api.ts","../../packages/forms/index.ts","../../packages/forms/forms.ts","../../packages/platform-browser-dynamic/src/compiler_factory.ts","../../packages/platform-browser-dynamic/src/platform_core_dynamic.ts","../../packages/platform-browser-dynamic/src/resource_loader/resource_loader_impl.ts","../../packages/platform-browser-dynamic/src/platform_providers.ts","../../packages/platform-browser-dynamic/src/resource_loader/resource_loader_cache.ts","../../packages/platform-browser-dynamic/src/private_export.ts","../../packages/platform-browser-dynamic/src/version.ts","../../packages/platform-browser-dynamic/src/platform-browser-dynamic.ts","../../packages/platform-browser-dynamic/public_api.ts","../../packages/platform-browser-dynamic/index.ts","../../packages/platform-browser-dynamic/platform-browser-dynamic.ts","../../packages/platform-browser/animations/src/animation_builder.ts","../../packages/platform-browser/animations/src/animation_renderer.ts","../../packages/platform-browser/animations/src/providers.ts","../../packages/platform-browser/animations/src/module.ts","../../packages/platform-browser/animations/src/private_export.ts","../../packages/platform-browser/animations/src/animations.ts","../../packages/platform-browser/animations/public_api.ts","../../packages/platform-browser/animations/index.ts","../../packages/platform-browser/animations/animations.ts","../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../packages/platform-browser/src/browser/browser_adapter.ts","../../packages/platform-browser/src/browser/server-transition.ts","../../packages/platform-browser/src/browser/testability.ts","../../packages/platform-browser/src/browser/xhr.ts","../../packages/platform-browser/src/dom/events/event_manager.ts","../../packages/platform-browser/src/dom/shared_styles_host.ts","../../packages/platform-browser/src/dom/dom_renderer.ts","../../packages/platform-browser/src/dom/events/dom_events.ts","../../packages/platform-browser/src/dom/events/key_events.ts","../../packages/platform-browser/src/browser.ts","../../packages/platform-browser/src/browser/meta.ts","../../packages/platform-browser/src/browser/title.ts","../../packages/platform-browser/src/dom/util.ts","../../packages/platform-browser/src/browser/tools/browser.ts","../../packages/platform-browser/src/browser/tools/common_tools.ts","../../packages/platform-browser/src/browser/tools/tools.ts","../../packages/platform-browser/src/browser/transfer_state.ts","../../packages/platform-browser/src/dom/debug/by.ts","../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../packages/platform-browser/src/private_export.ts","../../packages/platform-browser/src/version.ts","../../packages/platform-browser/src/platform-browser.ts","../../packages/platform-browser/public_api.ts","../../packages/platform-browser/index.ts","../../packages/platform-browser/platform-browser.ts","../../packages/router/src/events.ts","../../packages/router/src/shared.ts","../../packages/router/src/utils/collection.ts","../../packages/router/src/url_tree.ts","../../packages/router/src/utils/tree.ts","../../packages/router/src/router_state.ts","../../packages/router/src/create_router_state.ts","../../packages/router/src/create_url_tree.ts","../../packages/router/src/operators/activate_routes.ts","../../packages/router/src/config.ts","../../packages/router/src/utils/type_guards.ts","../../packages/router/src/operators/prioritized_guard_value.ts","../../packages/router/src/router_outlet_context.ts","../../packages/router/src/directives/router_outlet.ts","../../packages/router/src/components/empty_outlet.ts","../../packages/router/src/utils/config.ts","../../packages/router/src/utils/config_matching.ts","../../packages/router/src/apply_redirects.ts","../../packages/router/src/operators/apply_redirects.ts","../../packages/router/src/utils/preactivation.ts","../../packages/router/src/operators/check_guards.ts","../../packages/router/src/recognize.ts","../../packages/router/src/operators/recognize.ts","../../packages/router/src/operators/resolve_data.ts","../../packages/router/src/operators/switch_tap.ts","../../packages/router/src/route_reuse_strategy.ts","../../packages/router/src/router_config_loader.ts","../../packages/router/src/url_handling_strategy.ts","../../packages/router/src/router.ts","../../packages/router/src/directives/router_link.ts","../../packages/router/src/directives/router_link_active.ts","../../packages/router/src/router_preloader.ts","../../packages/router/src/router_scroller.ts","../../packages/router/src/router_module.ts","../../packages/router/src/version.ts","../../packages/router/src/private_export.ts","../../packages/router/src/index.ts","../../packages/router/public_api.ts","../../packages/router/index.ts","../../packages/router/router.ts","./projects/controls/src/lib/classes/CrudEntityCancel.ts","./projects/controls/src/lib/classes/CrudEntityNew.ts","./projects/controls/src/lib/classes/CrudPanel.ts","./projects/controls/src/lib/enums/GridSelectionModes.ts","./projects/controls/src/lib/classes/CrudPopupResult.ts","./projects/controls/src/lib/classes/ElementHelperMethods.ts","./projects/controls/src/lib/classes/ExternalFilterHost.ts","./projects/controls/src/lib/classes/FilterChangeEvent.ts","./projects/controls/src/lib/classes/FilterData.ts","./projects/controls/src/lib/classes/GridHelperMethods.ts","./projects/controls/src/lib/classes/GridSetting.ts","./projects/controls/src/lib/classes/GridSortSetting.ts","./projects/controls/src/lib/classes/ModuleHolder.ts","./projects/controls/src/lib/classes/ModuleHost.ts","./projects/controls/src/lib/classes/PagerErrorConfig.ts","./projects/controls/src/lib/classes/PanelItemKey.ts","./projects/controls/src/lib/classes/PersCrudPanel.ts","./projects/controls/src/lib/classes/ReportSelection.ts","./projects/controls/src/lib/classes/ReportServiceConfig.ts","./projects/controls/src/lib/classes/RolePermissionFlag.ts","./projects/controls/src/lib/classes/StepContainer.ts","./projects/controls/src/lib/services/common/lazy-loader.service.ts","./projects/controls/src/lib/services/common/deactivation.service.ts","./projects/controls/src/lib/services/common/navigation.service.ts","./projects/controls/src/lib/services/common/router.service.ts","./projects/controls/src/lib/services/plugin-loader/plugin-loader.service.ts","./projects/controls/src/lib/directives/module-host.directive.ts","./projects/controls/src/lib/components/module-host/module-host.component.ts","./projects/controls/src/lib/components/module-host/module-host.component.html","./projects/controls/src/lib/components/_base/base.component.ts","./projects/controls/src/lib/services/common/host.service.ts","./projects/controls/src/lib/services/common/role-permission.service.ts","./projects/controls/src/lib/components/_base/base-view.component.ts","./projects/controls/src/lib/components/_base/base-app.component.ts","./projects/controls/src/lib/enums/CrudViewModes.ts","./projects/controls/src/lib/components/_base/base-hashed-crud.component.ts","./projects/controls/src/lib/enums/CrudActivatedModes.ts","./projects/controls/src/lib/components/_base/base-crud.component.ts","./projects/controls/src/lib/components/_base/base-crud-child.component.ts","./projects/controls/src/lib/components/_base/base-crud-list.component.ts","./projects/controls/src/lib/components/_base/base-crud-nested.component.ts","./projects/controls/src/lib/services/common/pager-error.service.ts","./projects/controls/src/lib/services/common/toolbar-left.service.ts","./projects/controls/src/lib/services/common/validation.service.ts","./projects/controls/src/lib/enums/CrudBulkSteps.ts","./projects/controls/src/lib/services/common/grid.service.ts","./projects/controls/src/lib/services/common/fix-to-parent-height.service.ts","./projects/controls/src/lib/components/button/button.component.html","./projects/controls/src/lib/components/button/button.component.ts","./projects/controls/src/lib/components/crud-grid-actions/crud-grid-actions.component.html","./projects/controls/src/lib/components/crud-grid-actions/crud-grid-actions.component.ts","./projects/controls/src/lib/components/grid-dynamic-group-cell/grid-dynamic-group-cell.component.ts","./projects/controls/src/lib/components/grid-dynamic-group-cell/grid-dynamic-group-cell.component.html","./projects/controls/src/lib/components/grid-filter-text/grid-filter-text.component.ts","./projects/controls/src/lib/components/grid-filter-text/grid-filter-text.component.html","./projects/controls/src/lib/components/grid-filter-date/grid-filter-date.component.html","./projects/controls/src/lib/components/grid-filter-date/grid-filter-date.component.ts","./projects/controls/src/lib/components/grid-filter-time/grid-filter-time.component.html","./projects/controls/src/lib/components/grid-filter-time/grid-filter-time.component.ts","./projects/controls/src/lib/components/grid-filter-code/grid-filter-code.component.ts","./projects/controls/src/lib/components/grid-filter-code/grid-filter-code.component.html","./projects/controls/src/lib/components/grid-filter-number/grid-filter-number.component.ts","./projects/controls/src/lib/components/grid-filter-number/grid-filter-number.component.html","./projects/controls/src/lib/components/grid-filter-boolean/grid-filter-boolean.component.html","./projects/controls/src/lib/components/grid-filter-boolean/grid-filter-boolean.component.ts","./projects/controls/src/lib/components/grid-filter-multi-select/grid-filter-multi-select.component.html","./projects/controls/src/lib/components/grid-filter-multi-select/grid-filter-multi-select.component.ts","./projects/controls/src/lib/components/grid-dynamic-filter-cell/grid-dynamic-filter-cell.component.html","./projects/controls/src/lib/components/grid-dynamic-filter-cell/grid-dynamic-filter-cell.component.ts","./projects/controls/src/lib/components/label-bool/label-bool.component.ts","./projects/controls/src/lib/components/label-bool/label-bool.component.html","./projects/controls/src/lib/components/label-date/label-date.component.ts","./projects/controls/src/lib/components/label-date/label-date.component.html","./projects/controls/src/lib/components/grid-dynamic-cell/grid-dynamic-cell.component.html","./projects/controls/src/lib/components/grid-dynamic-cell/grid-dynamic-cell.component.ts","./projects/controls/src/lib/components/record-info/record-info.component.html","./projects/controls/src/lib/components/record-info/record-info.component.ts","./projects/controls/src/lib/components/crud-grid/crud-grid.component.html","./projects/controls/src/lib/components/crud-grid/crud-grid.component.ts","./projects/controls/src/lib/components/grid-empty-actions/grid-empty-actions.component.ts","./projects/controls/src/lib/components/grid-empty-actions/grid-empty-actions.component.html","./projects/controls/src/lib/components/grid/grid.component.html","./projects/controls/src/lib/components/grid/grid.component.ts","./projects/controls/src/lib/components/_base/base-grid-view.component.ts","./projects/controls/src/lib/components/_base/base-crud-view.component.ts","./projects/controls/src/lib/services/common/filter.service.ts","./projects/controls/src/lib/components/_base/base-filter.component.ts","./projects/controls/src/lib/components/_base/base-filter-container.component.ts","./projects/controls/src/lib/components/_base/base-grid.component.ts","./projects/controls/src/lib/components/_base/base-input-control.component.ts","./projects/controls/src/lib/enums/CrudSaveResult.ts","./projects/controls/src/lib/components/_base/base-widget-crud-view.component.ts","./projects/controls/src/lib/components/async-load-panel/async-load-panel.component.ts","./projects/controls/src/lib/components/async-load-panel/async-load-panel.component.html","./projects/controls/src/lib/components/autocomplete/autocomplete.component.html","./projects/controls/src/lib/components/autocomplete/autocomplete.component.ts","./projects/controls/src/lib/directives/fix-to-parent-height.directive.ts","./projects/controls/src/lib/services/common/color.service.ts","./projects/controls/src/lib/components/loader/loader.component.html","./projects/controls/src/lib/components/loader/loader.component.ts","./projects/controls/src/lib/components/code-editor/code-editor.component.html","./projects/controls/src/lib/components/code-editor/code-editor.component.ts","./projects/controls/src/lib/components/color-picker/color-picker.component.html","./projects/controls/src/lib/components/color-picker/color-picker.component.ts","./projects/controls/src/lib/directives/popup-host.directive.ts","./projects/controls/src/lib/components/combo-box/combo-box.component.html","./projects/controls/src/lib/components/combo-box/combo-box.component.ts","./projects/controls/src/lib/components/crud-module-host/crud-module-host.component.ts","./projects/controls/src/lib/components/crud-module-host/crud-module-host.component.html","./projects/controls/src/lib/directives/toolbar-left.directive.ts","./projects/controls/src/lib/components/toolbar/toolbar.component.ts","./projects/controls/src/lib/components/toolbar/toolbar.component.html","./projects/controls/src/lib/components/label-box/label-box.component.html","./projects/controls/src/lib/components/label-box/label-box.component.ts","./projects/controls/src/lib/pipes/sort-by.pipe.ts","./projects/controls/src/lib/components/grid-toolbar/grid-toolbar.component.html","./projects/controls/src/lib/components/grid-toolbar/grid-toolbar.component.ts","./projects/controls/src/lib/components/crud-toolbar/crud-toolbar.component.html","./projects/controls/src/lib/components/crud-toolbar/crud-toolbar.component.ts","./projects/controls/src/lib/components/date-picker/date-picker.component.html","./projects/controls/src/lib/components/date-picker/date-picker.component.ts","./projects/controls/src/lib/components/drop-down-list/drop-down-list.component.html","./projects/controls/src/lib/components/drop-down-list/drop-down-list.component.ts","./projects/controls/src/lib/components/filter-date/filter-date.component.html","./projects/controls/src/lib/components/filter-date/filter-date.component.ts","./projects/controls/src/lib/components/multi-select/multi-select.component.html","./projects/controls/src/lib/components/multi-select/multi-select.component.ts","./projects/controls/src/lib/components/text-box/text-box.component.html","./projects/controls/src/lib/components/text-box/text-box.component.ts","./projects/controls/src/lib/components/filter-lookup/filter-lookup.component.html","./projects/controls/src/lib/components/filter-lookup/filter-lookup.component.ts","./projects/controls/src/lib/components/filter-lookup-static/filter-lookup-static.component.html","./projects/controls/src/lib/components/filter-lookup-static/filter-lookup-static.component.ts","./projects/controls/src/lib/components/numeric-up-down/numeric-up-down.component.html","./projects/controls/src/lib/components/numeric-up-down/numeric-up-down.component.ts","./projects/controls/src/lib/components/filter-number/filter-number.component.html","./projects/controls/src/lib/components/filter-number/filter-number.component.ts","./projects/controls/src/lib/components/filter-string/filter-string.component.html","./projects/controls/src/lib/components/filter-string/filter-string.component.ts","./projects/controls/src/lib/components/image-thumb-zoomable/image-thumb-zoomable.component.html","./projects/controls/src/lib/components/image-thumb-zoomable/image-thumb-zoomable.component.ts","./projects/controls/src/lib/components/label-color/label-color.component.ts","./projects/controls/src/lib/components/label-color/label-color.component.html","./projects/controls/src/lib/components/label-error/label-error.component.html","./projects/controls/src/lib/components/label-error/label-error.component.ts","./projects/controls/src/lib/components/label-expandable/label-expandable.component.ts","./projects/controls/src/lib/components/label-expandable/label-expandable.component.html","./projects/controls/src/lib/components/messages/messages.component.html","./projects/controls/src/lib/components/messages/messages.component.ts","./projects/controls/src/lib/components/navigator/navigator.component.html","./projects/controls/src/lib/components/navigator/navigator.component.ts","./projects/controls/src/lib/pipes/escape-html.pipe.ts","./projects/controls/src/lib/components/toast/toast.component.html","./projects/controls/src/lib/components/toast/toast.component.ts","./projects/controls/src/lib/components/notifications-menu/notifications-menu.component.html","./projects/controls/src/lib/components/notifications-menu/notifications-menu.component.ts","./projects/controls/src/lib/components/pager/pager.component.html","./projects/controls/src/lib/components/pager/pager.component.ts","./projects/controls/src/lib/components/page-title/page-title.component.html","./projects/controls/src/lib/components/page-title/page-title.component.ts","./projects/controls/src/lib/components/panel-bar-buttons/panel-bar-buttons.component.html","./projects/controls/src/lib/components/panel-bar-buttons/panel-bar-buttons.component.ts","./projects/controls/src/lib/components/password-box/password-box.component.html","./projects/controls/src/lib/components/password-box/password-box.component.ts","./projects/controls/src/lib/services/common/report.service.ts","./projects/controls/src/lib/components/report-selection/report-selection.component.html","./projects/controls/src/lib/components/report-selection/report-selection.component.ts","./projects/controls/src/lib/components/switch/switch.component.html","./projects/controls/src/lib/components/switch/switch.component.ts","./projects/controls/src/lib/components/temporary-stream-upload/temporary-stream-upload.component.html","./projects/controls/src/lib/components/temporary-stream-upload/temporary-stream-upload.component.ts","./projects/controls/src/lib/components/text-area/text-area.component.html","./projects/controls/src/lib/components/text-area/text-area.component.ts","./projects/controls/src/lib/components/time-picker/time-picker.component.html","./projects/controls/src/lib/components/time-picker/time-picker.component.ts","./projects/controls/src/lib/components/toasts/toast-holder.component.html","./projects/controls/src/lib/components/toasts/toast-holder.component.ts","./projects/controls/src/lib/components/user-menu/user-menu.component.html","./projects/controls/src/lib/components/user-menu/user-menu.component.ts","./projects/controls/src/lib/views/default-route/default-route.component.ts","./projects/controls/src/lib/directives/fix-rows-height.directive.ts","./projects/controls/src/lib/directives/fix-to-parent-height-top-sensor.directive.ts","./projects/controls/src/lib/pipes/format-date.pipe.ts","./projects/controls/src/lib/directives/kendo-panel-bar-item-hide-if-collapsed.directive.ts","./projects/controls/src/lib/views/login/login.component.html","./projects/controls/src/lib/views/login/login.component.ts","./projects/controls/src/lib/views/login-other/login-other.component.ts","./projects/controls/src/lib/views/login-other/login-other.component.html","./projects/controls/src/lib/pipes/minutes-as-hours.pipe.ts","./projects/controls/src/lib/services/common/my-kendo.message.service.ts","./projects/controls/src/lib/directives/pager-error.directive.ts","./projects/controls/src/lib/pipes/capitalize-first-letter.pipe.ts","./projects/controls/src/lib/views/change-password/change-password.component.html","./projects/controls/src/lib/views/change-password/change-password.component.ts","./projects/controls/src/lib/controls.module.ts","./projects/controls/src/lib/services/common/controls-translations.service.ts","./projects/controls/src/lib/services/http/BaseService.ts","./projects/controls/src/lib/services/http/BaseCrudService.ts","./projects/controls/src/lib/services/http/BaseProcService.ts","./projects/controls/src/lib/services/plugin-loader/transfer-state.service.ts","./projects/controls/src/controls.ts","./projects/core/src/lib/classes/ArrayHelper.ts","./projects/core/src/lib/classes/ExternalWebViewMessage.ts","./projects/core/src/lib/classes/Guid.ts","./projects/core/src/lib/classes/JsonHelper.ts","./projects/core/src/lib/classes/ModuleEntry.ts","./projects/core/src/lib/classes/ObjectHelper.ts","./projects/core/src/lib/classes/poco/EntityIntString.ts","./projects/core/src/lib/classes/poco/EntityStringString.ts","./projects/core/src/lib/classes/PromiseHelper.ts","./projects/core/src/lib/classes/PushParameter.ts","./projects/core/src/lib/classes/RolePermissionFlag.ts","./projects/core/src/lib/classes/SearchRequest.ts","./projects/core/src/lib/classes/StringHelper.ts","./projects/core/src/lib/classes/TimeSpan.ts","./projects/core/src/lib/classes/ToastContent.ts","./projects/core/src/lib/classes/TranslationByModuleCache.ts","./projects/core/src/lib/classes/TypeFactory.ts","./projects/core/src/lib/classes/ValidationHelper.ts","./projects/core/src/lib/core.module.ts","./projects/core/src/lib/enums/PopupButtonsTypes.ts","./projects/core/src/lib/enums/PopupResultTypes.ts","./projects/core/src/lib/enums/PopupTitlesTypes.ts","./projects/core/src/lib/services/common/application-init.service.ts","./projects/core/src/lib/services/common/application-state.service.ts","./projects/core/src/lib/services/common/web-view-host.service.ts","./projects/core/src/lib/services/common/authentication.service.ts","./projects/core/src/lib/services/common/message.service.ts","./projects/core/src/lib/services/common/errors-handler.service.ts","./projects/core/src/lib/services/common/file.service.ts","./projects/core/src/lib/services/common/license.service.ts","./projects/core/src/lib/services/common/localization.service.ts","./projects/core/src/lib/services/http/_base/base.service.ts","./projects/core/src/lib/services/http/desk.common.service.ts","./projects/core/src/lib/services/common/translation.service.ts","./projects/core/src/lib/services/common/popup.service.ts","./projects/core/src/lib/services/common/toast.service.ts","./projects/core/src/lib/services/common/token.service.ts","./projects/core/src/lib/services/http/_base/base.http.interceptor.service.ts","./projects/core/src/core.ts","./projects/dto/src/lib/BaseRequest.ts","./projects/dto/src/lib/BaseSearchRequest.ts","./projects/dto/src/lib/BaseBulkChangeSearchRequest.ts","./projects/dto/src/lib/BaseTokenResponse.ts","./projects/dto/src/lib/BaseCloneResponse.ts","./projects/dto/src/lib/BaseConstants.ts","./projects/dto/src/lib/BaseCrudNestedEntityWrapper.ts","./projects/dto/src/lib/BaseCrudEntityWrapper.ts","./projects/dto/src/lib/BaseEditRequest.ts","./projects/dto/src/lib/BaseEditResponse.ts","./projects/dto/src/lib/BaseFilterRequest.ts","./projects/dto/src/lib/BaseGridDataResponse.ts","./projects/dto/src/lib/BasePersEditDataRequestWrapper.ts","./projects/dto/src/lib/BaseRepoRequest.ts","./projects/dto/src/lib/BaseResponse.ts","./projects/dto/src/lib/BaseServiceResponse.ts","./projects/dto/src/lib/BaseUidDataResponse.ts","./projects/dto/src/lib/CommonAccountDeskGridStateColumnOrderSettingDataRequest.ts","./projects/dto/src/lib/CommonAccountDeskGridStateColumnSizeSettingDataRequest.ts","./projects/dto/src/lib/CommonAccountDeskGridStateSetColumnOrderSettingsRequest.ts","./projects/dto/src/lib/CommonAccountDeskGridStateSetColumnSizeSettingsRequest.ts","./projects/dto/src/lib/CommonAggregationDataResponse.ts","./projects/dto/src/lib/CommonBooleanResponse.ts","./projects/dto/src/lib/CommonBulkChangeResponse.ts","./projects/dto/src/lib/CommonChangePasswordRequest.ts","./projects/dto/src/lib/CommonChangePasswordResponse.ts","./projects/dto/src/lib/CommonCrudComboDataResponse.ts","./projects/dto/src/lib/CommonCrudComboResponse.ts","./projects/dto/src/lib/CommonCrudEntityCloneRequest.ts","./projects/dto/src/lib/CommonCrudEntityDeleteRequest.ts","./projects/dto/src/lib/CommonCrudEntityDeleteResponse.ts","./projects/dto/src/lib/CommonCrudEntityGetListResponse.ts","./projects/dto/src/lib/CommonCrudEntityGetRequest.ts","./projects/dto/src/lib/CommonCrudEntityGetResponse.ts","./projects/dto/src/lib/CommonEvalRequest.ts","./projects/dto/src/lib/CommonEvalResponse.ts","./projects/dto/src/lib/CommonFilterDescriptor.ts","./projects/dto/src/lib/CommonGridColumnDataDefinition.ts","./projects/dto/src/lib/CommonGridResponse.ts","./projects/dto/src/lib/CommonGridResponseWithGroupBy.ts","./projects/dto/src/lib/CommonGroupByCounterDataResponse.ts","./projects/dto/src/lib/CommonLoginRequest.ts","./projects/dto/src/lib/CommonLoginResponse.ts","./projects/dto/src/lib/CommonMenuBadgeResponse.ts","./projects/dto/src/lib/CommonMenuGroupDataResponse.ts","./projects/dto/src/lib/CommonMenuItemDataResponse.ts","./projects/dto/src/lib/CommonMenuResponse.ts","./projects/dto/src/lib/CommonNestedDataResponse.ts","./projects/dto/src/lib/CommonNotifyLogoutRequest.ts","./projects/dto/src/lib/CommonNotifyMenuBadgeChangeRequest.ts","./projects/dto/src/lib/CommonNotifyReloginRequest.ts","./projects/dto/src/lib/CommonPushNotificationGetUnreadedCountResponse.ts","./projects/dto/src/lib/CommonPushNotificationGetUnreadedDataResponse.ts","./projects/dto/src/lib/CommonPushNotificationGetUnreadedResponse.ts","./projects/dto/src/lib/CommonPushNotificationSendRequest.ts","./projects/dto/src/lib/CommonPushNotificationSetReadedRequest.ts","./projects/dto/src/lib/CommonPushNotificationSetReadedResponse.ts","./projects/dto/src/lib/CommonReportEnabledFilterSchemasResponse.ts","./projects/dto/src/lib/CommonRolePermissionDataResponse.ts","./projects/dto/src/lib/CommonRolePermissionResponse.ts","./projects/dto/src/lib/CommonSettingDataResponse.ts","./projects/dto/src/lib/CommonSettingsResponse.ts","./projects/dto/src/lib/CommonTranslationGetAllByFormDataResponse.ts","./projects/dto/src/lib/CommonTranslationGetAllByFormRequest.ts","./projects/dto/src/lib/CommonTranslationGetAllByFormResponse.ts","./projects/dto/src/lib/CommonUidDataResponse.ts","./projects/dto/src/lib/CoreConstants.ts","./projects/dto/src/lib/ReportBaseRequest.ts","./projects/dto/src/lib/ReportDataResponse.ts","./projects/dto/src/lib/ReportDataSourceDataRequest.ts","./projects/dto/src/lib/ReportDataSourceDataResponse.ts","./projects/dto/src/lib/ReportDataSourceParameterDataRequest.ts","./projects/dto/src/lib/ReportGetDefinitionByUidRequest.ts","./projects/dto/src/lib/ReportGetDefinitionByUidResponse.ts","./projects/dto/src/lib/ReportGetListByAreaAndEntityUidRequest.ts","./projects/dto/src/lib/ReportGetListResponse.ts","./projects/dto/src/lib/ReportGetRequest.ts","./projects/dto/src/lib/ReportGetResponse.ts","./projects/dto/src/dto.ts","./projects/ngx-cookie-service/src/lib/cookie.service.ts","./projects/ngx-cookie-service/src/public-api.ts","./projects/ngx-cookie-service/src/ngx-cookie-service.ts"],"sourcesContent":["/*! *****************************************************************************\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\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 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController implements AbortSignal {\r\n private isAborted: boolean = false;\r\n public onabort: () => void;\r\n\r\n public abort() {\r\n if (!this.isAborted) {\r\n this.isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n\r\n get signal(): AbortSignal {\r\n return this;\r\n }\r\n\r\n get aborted(): boolean {\r\n return this.isAborted;\r\n }\r\n}\r\n\r\n/** Represents a signal that can be monitored to determine if a request has been aborted. */\r\nexport interface AbortSignal {\r\n /** Indicates if the request has been aborted. */\r\n aborted: boolean;\r\n /** Set this to a handler that will be invoked when the request is aborted. */\r\n onabort: () => void;\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // tslint:disable-next-line:variable-name\r\n private __proto__: Error;\r\n\r\n /** The HTTP status code represented by this error. */\r\n public statusCode: number;\r\n\r\n /** Constructs a new instance of {@link @aspnet/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage: string, statusCode: number) {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n this.statusCode = statusCode;\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // tslint:disable-next-line:variable-name\r\n private __proto__: Error;\r\n\r\n /** Constructs a new instance of {@link @aspnet/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage: string = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\n/** @private */\r\nexport interface HandshakeRequestMessage {\r\n readonly protocol: string;\r\n readonly version: number;\r\n}\r\n\r\n/** @private */\r\nexport interface HandshakeResponseMessage {\r\n readonly error: string;\r\n}\r\n\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n public writeHandshakeRequest(handshakeRequest: HandshakeRequestMessage): string {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n\r\n public parseHandshakeResponse(data: any): [any, HandshakeResponseMessage] {\r\n let responseMessage: HandshakeResponseMessage;\r\n let messageData: string;\r\n let remainingData: any;\r\n\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, binaryData.slice(0, responseLength));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n } else {\r\n const textData: string = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n responseMessage = JSON.parse(messages[0]);\r\n\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { AbortSignal } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\n\r\n/** Represents an HTTP request. */\r\nexport interface HttpRequest {\r\n /** The HTTP method to use for the request. */\r\n method?: string;\r\n\r\n /** The URL for the request. */\r\n url?: string;\r\n\r\n /** The body content for the request. May be a string or an ArrayBuffer (for binary data). */\r\n content?: string | ArrayBuffer;\r\n\r\n /** An object describing headers to apply to the request. */\r\n headers?: { [key: string]: string };\r\n\r\n /** The XMLHttpRequestResponseType to apply to the request. */\r\n responseType?: XMLHttpRequestResponseType;\r\n\r\n /** An AbortSignal that can be monitored for cancellation. */\r\n abortSignal?: AbortSignal;\r\n\r\n /** The time to wait for the request to complete before throwing a TimeoutError. Measured in milliseconds. */\r\n timeout?: number;\r\n}\r\n\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n /** Constructs a new instance of {@link @aspnet/signalr.HttpResponse} with the specified status code.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n */\r\n constructor(statusCode: number);\r\n\r\n /** Constructs a new instance of {@link @aspnet/signalr.HttpResponse} with the specified status code and message.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n */\r\n constructor(statusCode: number, statusText: string);\r\n\r\n /** Constructs a new instance of {@link @aspnet/signalr.HttpResponse} with the specified status code, message and string content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {string} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: string);\r\n\r\n /** Constructs a new instance of {@link @aspnet/signalr.HttpResponse} with the specified status code, message and binary content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {ArrayBuffer} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: ArrayBuffer);\r\n constructor(\r\n public readonly statusCode: number,\r\n public readonly statusText?: string,\r\n public readonly content?: string | ArrayBuffer) {\r\n }\r\n}\r\n\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport abstract class HttpClient {\r\n /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @aspnet/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @aspnet/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public get(url: string): Promise;\r\n\r\n /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @aspnet/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @aspnet/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public get(url: string, options: HttpRequest): Promise;\r\n public get(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @aspnet/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @aspnet/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public post(url: string): Promise;\r\n\r\n /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @aspnet/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @aspnet/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public post(url: string, options: HttpRequest): Promise;\r\n public post(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @aspnet/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @aspnet/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public delete(url: string): Promise;\r\n\r\n /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @aspnet/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @aspnet/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public delete(url: string, options: HttpRequest): Promise;\r\n public delete(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP request to the specified URL, returning a {@link Promise} that resolves with an {@link @aspnet/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {HttpRequest} request An {@link @aspnet/signalr.HttpRequest} describing the request to send.\r\n * @returns {Promise} A Promise that resolves with an HttpResponse describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public abstract send(request: HttpRequest): Promise;\r\n}\r\n\r\n/** Default implementation of {@link @aspnet/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n private readonly logger: ILogger;\r\n\r\n /** Creates a new instance of the {@link @aspnet/signalr.DefaultHttpClient}, using the provided {@link @aspnet/signalr.ILogger} to log messages. */\r\n public constructor(logger: ILogger) {\r\n super();\r\n this.logger = logger;\r\n }\r\n\r\n /** @inheritDoc */\r\n public send(request: HttpRequest): Promise {\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = true;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n\r\n if (request.headers) {\r\n Object.keys(request.headers)\r\n .forEach((header) => xhr.setRequestHeader(header, request.headers[header]));\r\n }\r\n\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n };\r\n }\r\n\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n } else {\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n }\r\n };\r\n\r\n xhr.onerror = () => {\r\n this.logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n\r\n xhr.ontimeout = () => {\r\n this.logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n\r\n xhr.send(request.content || \"\");\r\n });\r\n }\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { DefaultHttpClient, HttpClient } from \"./HttpClient\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, ITransport, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\n\r\n/** @private */\r\nconst enum ConnectionState {\r\n Connecting,\r\n Connected,\r\n Disconnected,\r\n}\r\n\r\n/** @private */\r\nexport interface INegotiateResponse {\r\n connectionId?: string;\r\n availableTransports?: IAvailableTransport[];\r\n url?: string;\r\n accessToken?: string;\r\n}\r\n\r\n/** @private */\r\nexport interface IAvailableTransport {\r\n transport: keyof typeof HttpTransportType;\r\n transferFormats: Array;\r\n}\r\n\r\nconst MAX_REDIRECTS = 100;\r\n\r\n/** @private */\r\nexport class HttpConnection implements IConnection {\r\n private connectionState: ConnectionState;\r\n private baseUrl: string;\r\n private readonly httpClient: HttpClient;\r\n private readonly logger: ILogger;\r\n private readonly options: IHttpConnectionOptions;\r\n private transport: ITransport;\r\n private startPromise: Promise;\r\n private stopError?: Error;\r\n private accessTokenFactory?: () => string | Promise;\r\n\r\n public readonly features: any = {};\r\n public onreceive: (data: string | ArrayBuffer) => void;\r\n public onclose: (e?: Error) => void;\r\n\r\n constructor(url: string, options: IHttpConnectionOptions = {}) {\r\n Arg.isRequired(url, \"url\");\r\n\r\n this.logger = createLogger(options.logger);\r\n this.baseUrl = this.resolveUrl(url);\r\n\r\n options = options || {};\r\n options.accessTokenFactory = options.accessTokenFactory || (() => null);\r\n options.logMessageContent = options.logMessageContent || false;\r\n\r\n this.httpClient = options.httpClient || new DefaultHttpClient(this.logger);\r\n this.connectionState = ConnectionState.Disconnected;\r\n this.options = options;\r\n }\r\n\r\n public start(): Promise;\r\n public start(transferFormat: TransferFormat): Promise;\r\n public start(transferFormat?: TransferFormat): Promise {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this.logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n\r\n if (this.connectionState !== ConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a connection that is not in the 'Disconnected' state.\"));\r\n }\r\n\r\n this.connectionState = ConnectionState.Connecting;\r\n\r\n this.startPromise = this.startInternal(transferFormat);\r\n return this.startPromise;\r\n }\r\n\r\n public send(data: string | ArrayBuffer): Promise {\r\n if (this.connectionState !== ConnectionState.Connected) {\r\n throw new Error(\"Cannot send data if the connection is not in the 'Connected' State.\");\r\n }\r\n\r\n return this.transport.send(data);\r\n }\r\n\r\n public async stop(error?: Error): Promise {\r\n this.connectionState = ConnectionState.Disconnected;\r\n\r\n try {\r\n await this.startPromise;\r\n } catch (e) {\r\n // this exception is returned to the user as a rejected Promise from the start method\r\n }\r\n\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n if (this.transport) {\r\n this.stopError = error;\r\n await this.transport.stop();\r\n this.transport = null;\r\n }\r\n }\r\n\r\n private async startInternal(transferFormat: TransferFormat): Promise {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this.accessTokenFactory = this.options.accessTokenFactory;\r\n\r\n try {\r\n if (this.options.skipNegotiation) {\r\n if (this.options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this.constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this.transport.connect(url, transferFormat);\r\n } else {\r\n throw Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n } else {\r\n let negotiateResponse: INegotiateResponse = null;\r\n let redirects = 0;\r\n\r\n do {\r\n negotiateResponse = await this.getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this.connectionState === ConnectionState.Disconnected) {\r\n return;\r\n }\r\n\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this.accessTokenFactory = () => accessToken;\r\n }\r\n\r\n redirects++;\r\n }\r\n while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n\r\n await this.createTransport(url, this.options.transport, negotiateResponse, transferFormat);\r\n }\r\n\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n\r\n this.transport.onreceive = this.onreceive;\r\n this.transport.onclose = (e) => this.stopConnection(e);\r\n\r\n // only change the state if we were connecting to not overwrite\r\n // the state if the connection is already marked as Disconnected\r\n this.changeState(ConnectionState.Connecting, ConnectionState.Connected);\r\n } catch (e) {\r\n this.logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this.connectionState = ConnectionState.Disconnected;\r\n this.transport = null;\r\n throw e;\r\n }\r\n }\r\n\r\n private async getNegotiationResponse(url: string): Promise {\r\n const token = await this.accessTokenFactory();\r\n let headers;\r\n if (token) {\r\n headers = {\r\n [\"Authorization\"]: `Bearer ${token}`,\r\n };\r\n }\r\n\r\n const negotiateUrl = this.resolveNegotiateUrl(url);\r\n this.logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}`);\r\n try {\r\n const response = await this.httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers,\r\n });\r\n\r\n if (response.statusCode !== 200) {\r\n throw Error(`Unexpected status code returned from negotiate ${response.statusCode}`);\r\n }\r\n\r\n return JSON.parse(response.content as string) as INegotiateResponse;\r\n } catch (e) {\r\n this.logger.log(LogLevel.Error, \"Failed to complete negotiation with the server: \" + e);\r\n throw e;\r\n }\r\n }\r\n\r\n private createConnectUrl(url: string, connectionId: string) {\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionId}`;\r\n }\r\n\r\n private async createTransport(url: string, requestedTransport: HttpTransportType | ITransport, negotiateResponse: INegotiateResponse, requestedTransferFormat: TransferFormat): Promise {\r\n let connectUrl = this.createConnectUrl(url, negotiateResponse.connectionId);\r\n if (this.isITransport(requestedTransport)) {\r\n this.logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this.transport.connect(connectUrl, requestedTransferFormat);\r\n\r\n // only change the state if we were connecting to not overwrite\r\n // the state if the connection is already marked as Disconnected\r\n this.changeState(ConnectionState.Connecting, ConnectionState.Connected);\r\n return;\r\n }\r\n\r\n const transports = negotiateResponse.availableTransports;\r\n for (const endpoint of transports) {\r\n this.connectionState = ConnectionState.Connecting;\r\n const transport = this.resolveTransport(endpoint, requestedTransport, requestedTransferFormat);\r\n if (typeof transport === \"number\") {\r\n this.transport = this.constructTransport(transport);\r\n if (negotiateResponse.connectionId === null) {\r\n negotiateResponse = await this.getNegotiationResponse(url);\r\n connectUrl = this.createConnectUrl(url, negotiateResponse.connectionId);\r\n }\r\n try {\r\n await this.transport.connect(connectUrl, requestedTransferFormat);\r\n this.changeState(ConnectionState.Connecting, ConnectionState.Connected);\r\n return;\r\n } catch (ex) {\r\n this.logger.log(LogLevel.Error, `Failed to start the transport '${HttpTransportType[transport]}': ${ex}`);\r\n this.connectionState = ConnectionState.Disconnected;\r\n negotiateResponse.connectionId = null;\r\n }\r\n }\r\n }\r\n\r\n throw new Error(\"Unable to initialize any of the available transports.\");\r\n }\r\n\r\n private constructTransport(transport: HttpTransportType) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n return new WebSocketTransport(this.accessTokenFactory, this.logger, this.options.logMessageContent);\r\n case HttpTransportType.ServerSentEvents:\r\n return new ServerSentEventsTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n\r\n private resolveTransport(endpoint: IAvailableTransport, requestedTransport: HttpTransportType, requestedTransferFormat: TransferFormat): HttpTransportType | null {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this.logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n } else {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transportMatches(requestedTransport, transport)) {\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && typeof WebSocket === \"undefined\") ||\r\n (transport === HttpTransportType.ServerSentEvents && typeof EventSource === \"undefined\")) {\r\n this.logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n } else {\r\n this.logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'`);\r\n return transport;\r\n }\r\n } else {\r\n this.logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n }\r\n } else {\r\n this.logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private isITransport(transport: any): transport is ITransport {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n\r\n private changeState(from: ConnectionState, to: ConnectionState): boolean {\r\n if (this.connectionState === from) {\r\n this.connectionState = to;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private async stopConnection(error?: Error): Promise {\r\n this.transport = null;\r\n\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this.stopError || error;\r\n\r\n if (error) {\r\n this.logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n } else {\r\n this.logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n\r\n this.connectionState = ConnectionState.Disconnected;\r\n\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n }\r\n\r\n private resolveUrl(url: string): string {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n\r\n if (typeof window === \"undefined\" || !window || !window.document) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n\r\n this.logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n\r\n private resolveNegotiateUrl(url: string): string {\r\n const index = url.indexOf(\"?\");\r\n let negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n return negotiateUrl;\r\n }\r\n}\r\n\r\nfunction transportMatches(requestedTransport: HttpTransportType, actualTransport: HttpTransportType) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { HandshakeProtocol, HandshakeRequestMessage, HandshakeResponseMessage } from \"./HandshakeProtocol\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { CancelInvocationMessage, CompletionMessage, IHubProtocol, InvocationMessage, MessageType, StreamInvocationMessage, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IStreamResult } from \"./Stream\";\r\nimport { Arg, Subject } from \"./Utils\";\r\n\r\nconst DEFAULT_TIMEOUT_IN_MS: number = 30 * 1000;\r\n\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n private readonly connection: IConnection;\r\n private readonly logger: ILogger;\r\n private protocol: IHubProtocol;\r\n private handshakeProtocol: HandshakeProtocol;\r\n private callbacks: { [invocationId: string]: (invocationEvent: StreamItemMessage | CompletionMessage, error?: Error) => void };\r\n private methods: { [name: string]: Array<(...args: any[]) => void> };\r\n private id: number;\r\n private closedCallbacks: Array<(error?: Error) => void>;\r\n private timeoutHandle?: any;\r\n private receivedHandshakeResponse: boolean;\r\n\r\n /** The server timeout in milliseconds.\r\n *\r\n * If this timeout elapses without receiving any messages from the server, the connection will be terminated with an error.\r\n * The default timeout value is 30,000 milliseconds (30 seconds).\r\n */\r\n public serverTimeoutInMilliseconds: number;\r\n\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n public static create(connection: IConnection, logger: ILogger, protocol: IHubProtocol): HubConnection {\r\n return new HubConnection(connection, logger, protocol);\r\n }\r\n\r\n private constructor(connection: IConnection, logger: ILogger, protocol: IHubProtocol) {\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n\r\n this.logger = logger;\r\n this.protocol = protocol;\r\n this.connection = connection;\r\n this.handshakeProtocol = new HandshakeProtocol();\r\n\r\n this.connection.onreceive = (data: any) => this.processIncomingData(data);\r\n this.connection.onclose = (error?: Error) => this.connectionClosed(error);\r\n\r\n this.callbacks = {};\r\n this.methods = {};\r\n this.closedCallbacks = [];\r\n this.id = 0;\r\n }\r\n\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n public async start(): Promise {\r\n const handshakeRequest: HandshakeRequestMessage = {\r\n protocol: this.protocol.name,\r\n version: this.protocol.version,\r\n };\r\n\r\n this.logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n\r\n this.receivedHandshakeResponse = false;\r\n\r\n await this.connection.start(this.protocol.transferFormat);\r\n\r\n this.logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n\r\n await this.connection.send(this.handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n\r\n this.logger.log(LogLevel.Information, `Using HubProtocol '${this.protocol.name}'.`);\r\n\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this.cleanupTimeout();\r\n this.configureTimeout();\r\n }\r\n\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n public stop(): Promise {\r\n this.logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n\r\n this.cleanupTimeout();\r\n return this.connection.stop();\r\n }\r\n\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n public stream(methodName: string, ...args: any[]): IStreamResult {\r\n const invocationDescriptor = this.createStreamInvocation(methodName, args);\r\n\r\n const subject = new Subject(() => {\r\n const cancelInvocation: CancelInvocationMessage = this.createCancelInvocation(invocationDescriptor.invocationId);\r\n const cancelMessage: any = this.protocol.writeMessage(cancelInvocation);\r\n\r\n delete this.callbacks[invocationDescriptor.invocationId];\r\n\r\n return this.connection.send(cancelMessage);\r\n });\r\n\r\n this.callbacks[invocationDescriptor.invocationId] = (invocationEvent: CompletionMessage | StreamItemMessage, error?: Error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n } else {\r\n subject.complete();\r\n }\r\n } else {\r\n subject.next((invocationEvent.item) as T);\r\n }\r\n };\r\n\r\n const message = this.protocol.writeMessage(invocationDescriptor);\r\n\r\n this.connection.send(message)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this.callbacks[invocationDescriptor.invocationId];\r\n });\r\n\r\n return subject;\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n public send(methodName: string, ...args: any[]): Promise {\r\n const invocationDescriptor = this.createInvocation(methodName, args, true);\r\n\r\n const message = this.protocol.writeMessage(invocationDescriptor);\r\n\r\n return this.connection.send(message);\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n public invoke(methodName: string, ...args: any[]): Promise {\r\n const invocationDescriptor = this.createInvocation(methodName, args, false);\r\n\r\n const p = new Promise((resolve, reject) => {\r\n this.callbacks[invocationDescriptor.invocationId] = (invocationEvent: StreamItemMessage | CompletionMessage, error?: Error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n if (invocationEvent.type === MessageType.Completion) {\r\n const completionMessage = invocationEvent as CompletionMessage;\r\n if (completionMessage.error) {\r\n reject(new Error(completionMessage.error));\r\n } else {\r\n resolve(completionMessage.result);\r\n }\r\n } else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n };\r\n\r\n const message = this.protocol.writeMessage(invocationDescriptor);\r\n\r\n this.connection.send(message)\r\n .catch((e) => {\r\n reject(e);\r\n delete this.callbacks[invocationDescriptor.invocationId];\r\n });\r\n });\r\n\r\n return p;\r\n }\r\n\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n public on(methodName: string, newMethod: (...args: any[]) => void) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n if (!this.methods[methodName]) {\r\n this.methods[methodName] = [];\r\n }\r\n\r\n // Preventing adding the same handler multiple times.\r\n if (this.methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n\r\n this.methods[methodName].push(newMethod);\r\n }\r\n\r\n /** Removes all handlers for the specified hub method.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n */\r\n public off(methodName: string): void;\r\n\r\n /** Removes the specified handler for the specified hub method.\r\n *\r\n * You must pass the exact same Function instance as was previously passed to {@link @aspnet/signalr.HubConnection.on}. Passing a different instance (even if the function\r\n * body is the same) will not remove the handler.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n * @param {Function} method The handler to remove. This must be the same Function instance as the one passed to {@link @aspnet/signalr.HubConnection.on}.\r\n */\r\n public off(methodName: string, method: (...args: any[]) => void): void;\r\n public off(methodName: string, method?: (...args: any[]) => void): void {\r\n if (!methodName) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n const handlers = this.methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this.methods[methodName];\r\n }\r\n }\r\n } else {\r\n delete this.methods[methodName];\r\n }\r\n\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n public onclose(callback: (error?: Error) => void) {\r\n if (callback) {\r\n this.closedCallbacks.push(callback);\r\n }\r\n }\r\n\r\n private processIncomingData(data: any) {\r\n this.cleanupTimeout();\r\n\r\n if (!this.receivedHandshakeResponse) {\r\n data = this.processHandshakeResponse(data);\r\n this.receivedHandshakeResponse = true;\r\n }\r\n\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this.protocol.parseMessages(data, this.logger);\r\n\r\n for (const message of messages) {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n this.invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion:\r\n const callback = this.callbacks[message.invocationId];\r\n if (callback != null) {\r\n if (message.type === MessageType.Completion) {\r\n delete this.callbacks[message.invocationId];\r\n }\r\n callback(message);\r\n }\r\n break;\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close:\r\n this.logger.log(LogLevel.Information, \"Close message received from server.\");\r\n\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(message.error ? new Error(\"Server returned an error on close: \" + message.error) : null);\r\n break;\r\n default:\r\n this.logger.log(LogLevel.Warning, \"Invalid message type: \" + message.type);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.configureTimeout();\r\n }\r\n\r\n private processHandshakeResponse(data: any): any {\r\n let responseMessage: HandshakeResponseMessage;\r\n let remainingData: any;\r\n\r\n try {\r\n [remainingData, responseMessage] = this.handshakeProtocol.parseHandshakeResponse(data);\r\n } catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this.logger.log(LogLevel.Error, message);\r\n\r\n const error = new Error(message);\r\n\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this.logger.log(LogLevel.Error, message);\r\n\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(message));\r\n } else {\r\n this.logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n\r\n return remainingData;\r\n }\r\n\r\n private configureTimeout() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this.timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n }\r\n }\r\n\r\n private serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n\r\n private invokeClientMethod(invocationMessage: InvocationMessage) {\r\n const methods = this.methods[invocationMessage.target.toLowerCase()];\r\n if (methods) {\r\n methods.forEach((m) => m.apply(this, invocationMessage.arguments));\r\n if (invocationMessage.invocationId) {\r\n // This is not supported in v1. So we return an error to avoid blocking the server waiting for the response.\r\n const message = \"Server requested a response, which is not supported in this version of the client.\";\r\n this.logger.log(LogLevel.Error, message);\r\n\r\n // We don't need to wait on this Promise.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(message));\r\n }\r\n } else {\r\n this.logger.log(LogLevel.Warning, `No client method with the name '${invocationMessage.target}' found.`);\r\n }\r\n }\r\n\r\n private connectionClosed(error?: Error) {\r\n const callbacks = this.callbacks;\r\n this.callbacks = {};\r\n\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n callback(undefined, error ? error : new Error(\"Invocation canceled due to connection being closed.\"));\r\n });\r\n\r\n this.cleanupTimeout();\r\n\r\n this.closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n\r\n private cleanupTimeout(): void {\r\n if (this.timeoutHandle) {\r\n clearTimeout(this.timeoutHandle);\r\n }\r\n }\r\n\r\n private createInvocation(methodName: string, args: any[], nonblocking: boolean): InvocationMessage {\r\n if (nonblocking) {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n const id = this.id;\r\n this.id++;\r\n\r\n return {\r\n arguments: args,\r\n invocationId: id.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n\r\n private createStreamInvocation(methodName: string, args: any[]): StreamInvocationMessage {\r\n const id = this.id;\r\n this.id++;\r\n\r\n return {\r\n arguments: args,\r\n invocationId: id.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n\r\n private createCancelInvocation(id: string): CancelInvocationMessage {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { IHubProtocol } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType } from \"./ITransport\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\n\r\n/** A builder for configuring {@link @aspnet/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n /** @internal */\r\n public protocol: IHubProtocol;\r\n /** @internal */\r\n public httpConnectionOptions: IHttpConnectionOptions;\r\n /** @internal */\r\n public url: string;\r\n /** @internal */\r\n public logger: ILogger;\r\n\r\n /** Configures console logging for the {@link @aspnet/signalr.HubConnection}.\r\n *\r\n * @param {LogLevel} logLevel The minimum level of messages to log. Anything at this level, or a more severe level, will be logged.\r\n * @returns The {@link @aspnet/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logLevel: LogLevel): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @aspnet/signalr.HubConnection}.\r\n *\r\n * @param {ILogger} logger An object implementing the {@link @aspnet/signalr.ILogger} interface, which will be used to write all log messages.\r\n * @returns The {@link @aspnet/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logger: ILogger): HubConnectionBuilder;\r\n public configureLogging(logging: LogLevel | ILogger): HubConnectionBuilder {\r\n Arg.isRequired(logging, \"logging\");\r\n\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n } else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @aspnet/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n *\r\n * The transport will be selected automatically based on what the server and client support.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @returns The {@link @aspnet/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @aspnet/signalr.HubConnection} to use the specified HTTP-based transport to connect to the specified URL.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @param {HttpTransportType} transportType The specific transport to use.\r\n * @returns The {@link @aspnet/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string, transportType: HttpTransportType): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @aspnet/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @param {IHttpConnectionOptions} options An options object used to configure the connection.\r\n * @returns The {@link @aspnet/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string, options: IHttpConnectionOptions): HubConnectionBuilder;\r\n public withUrl(url: string, transportTypeOrOptions?: IHttpConnectionOptions | HttpTransportType): HubConnectionBuilder {\r\n Arg.isRequired(url, \"url\");\r\n\r\n this.url = url;\r\n\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = transportTypeOrOptions;\r\n } else {\r\n this.httpConnectionOptions = {\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @aspnet/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @aspnet/signalr.IHubProtocol} implementation to use.\r\n */\r\n public withHubProtocol(protocol: IHubProtocol): HubConnectionBuilder {\r\n Arg.isRequired(protocol, \"protocol\");\r\n\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n\r\n /** Creates a {@link @aspnet/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @aspnet/signalr.HubConnection}.\r\n */\r\n public build(): HubConnection {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n\r\n return HubConnection.create(\r\n connection,\r\n this.logger || NullLogger.instance,\r\n this.protocol || new JsonHubProtocol());\r\n }\r\n}\r\n\r\nfunction isLogger(logger: any): logger is ILogger {\r\n return logger.log !== undefined;\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { ILogger } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\n\r\n/** Defines the type of a Hub Message. */\r\nexport enum MessageType {\r\n /** Indicates the message is an Invocation message and implements the {@link @aspnet/signalr.InvocationMessage} interface. */\r\n Invocation = 1,\r\n /** Indicates the message is a StreamItem message and implements the {@link @aspnet/signalr.StreamItemMessage} interface. */\r\n StreamItem = 2,\r\n /** Indicates the message is a Completion message and implements the {@link @aspnet/signalr.CompletionMessage} interface. */\r\n Completion = 3,\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @aspnet/signalr.StreamInvocationMessage} interface. */\r\n StreamInvocation = 4,\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @aspnet/signalr.CancelInvocationMessage} interface. */\r\n CancelInvocation = 5,\r\n /** Indicates the message is a Ping message and implements the {@link @aspnet/signalr.PingMessage} interface. */\r\n Ping = 6,\r\n /** Indicates the message is a Close message and implements the {@link @aspnet/signalr.CloseMessage} interface. */\r\n Close = 7,\r\n}\r\n\r\n/** Defines a dictionary of string keys and string values representing headers attached to a Hub message. */\r\nexport interface MessageHeaders {\r\n /** Gets or sets the header with the specified key. */\r\n [key: string]: string;\r\n}\r\n\r\n/** Union type of all known Hub messages. */\r\nexport type HubMessage =\r\n InvocationMessage |\r\n StreamInvocationMessage |\r\n StreamItemMessage |\r\n CompletionMessage |\r\n CancelInvocationMessage |\r\n PingMessage |\r\n CloseMessage;\r\n\r\n/** Defines properties common to all Hub messages. */\r\nexport interface HubMessageBase {\r\n /** A {@link @aspnet/signalr.MessageType} value indicating the type of this message. */\r\n readonly type: MessageType;\r\n}\r\n\r\n/** Defines properties common to all Hub messages relating to a specific invocation. */\r\nexport interface HubInvocationMessage extends HubMessageBase {\r\n /** A {@link @aspnet/signalr.MessageHeaders} dictionary containing headers attached to the message. */\r\n readonly headers?: MessageHeaders;\r\n /** The ID of the invocation relating to this message.\r\n *\r\n * This is expected to be present for {@link @aspnet/signalr.StreamInvocationMessage} and {@link @aspnet/signalr.CompletionMessage}. It may\r\n * be 'undefined' for an {@link @aspnet/signalr.InvocationMessage} if the sender does not expect a response.\r\n */\r\n readonly invocationId?: string;\r\n}\r\n\r\n/** A hub message representing a non-streaming invocation. */\r\nexport interface InvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Invocation;\r\n /** The target method name. */\r\n readonly target: string;\r\n /** The target method arguments. */\r\n readonly arguments: any[];\r\n}\r\n\r\n/** A hub message representing a streaming invocation. */\r\nexport interface StreamInvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.StreamInvocation;\r\n\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n /** The target method name. */\r\n readonly target: string;\r\n /** The target method arguments. */\r\n readonly arguments: any[];\r\n}\r\n\r\n/** A hub message representing a single item produced as part of a result stream. */\r\nexport interface StreamItemMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.StreamItem;\r\n\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n\r\n /** The item produced by the server. */\r\n readonly item?: any;\r\n}\r\n\r\n/** A hub message representing the result of an invocation. */\r\nexport interface CompletionMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Completion;\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n /** The error produced by the invocation, if any.\r\n *\r\n * Either {@link @aspnet/signalr.CompletionMessage.error} or {@link @aspnet/signalr.CompletionMessage.result} must be defined, but not both.\r\n */\r\n readonly error?: string;\r\n /** The result produced by the invocation, if any.\r\n *\r\n * Either {@link @aspnet/signalr.CompletionMessage.error} or {@link @aspnet/signalr.CompletionMessage.result} must be defined, but not both.\r\n */\r\n readonly result?: any;\r\n}\r\n\r\n/** A hub message indicating that the sender is still active. */\r\nexport interface PingMessage extends HubMessageBase {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Ping;\r\n}\r\n\r\n/** A hub message indicating that the sender is closing the connection.\r\n *\r\n * If {@link @aspnet/signalr.CloseMessage.error} is defined, the sender is closing the connection due to an error.\r\n */\r\nexport interface CloseMessage extends HubMessageBase {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Close;\r\n /** The error that triggered the close, if any.\r\n *\r\n * If this property is undefined, the connection was closed normally and without error.\r\n */\r\n readonly error?: string;\r\n}\r\n\r\n/** A hub message sent to request that a streaming invocation be canceled. */\r\nexport interface CancelInvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.CancelInvocation;\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n}\r\n\r\n/** A protocol abstraction for communicating with SignalR Hubs. */\r\nexport interface IHubProtocol {\r\n /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */\r\n readonly name: string;\r\n /** The version of the protocol. */\r\n readonly version: number;\r\n /** The {@link @aspnet/signalr.TransferFormat} of the protocol. */\r\n readonly transferFormat: TransferFormat;\r\n\r\n /** Creates an array of {@link @aspnet/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * If {@link @aspnet/signalr.IHubProtocol.transferFormat} is 'Text', the `input` parameter must be a string, otherwise it must be an ArrayBuffer.\r\n *\r\n * @param {string | ArrayBuffer} input A string, or ArrayBuffer containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input: string | ArrayBuffer, logger: ILogger): HubMessage[];\r\n\r\n /** Writes the specified {@link @aspnet/signalr.HubMessage} to a string or ArrayBuffer and returns it.\r\n *\r\n * If {@link @aspnet/signalr.IHubProtocol.transferFormat} is 'Text', the result of this method will be a string, otherwise it will be an ArrayBuffer.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string | ArrayBuffer} A string or ArrayBuffer containing the serialized representation of the message.\r\n */\r\n writeMessage(message: HubMessage): string | ArrayBuffer;\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport enum LogLevel {\r\n /** Log level for very low severity diagnostic messages. */\r\n Trace = 0,\r\n /** Log level for low severity diagnostic messages. */\r\n Debug = 1,\r\n /** Log level for informational diagnostic messages. */\r\n Information = 2,\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n Warning = 3,\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n Error = 4,\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n Critical = 5,\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n None = 6,\r\n}\r\n\r\n/** An abstraction that provides a sink for diagnostic messages. */\r\nexport interface ILogger {\r\n /** Called by the framework to emit a diagnostic message.\r\n *\r\n * @param {LogLevel} logLevel The severity level of the message.\r\n * @param {string} message The message.\r\n */\r\n log(logLevel: LogLevel, message: string): void;\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport enum HttpTransportType {\r\n /** Specifies no transport preference. */\r\n None = 0,\r\n /** Specifies the WebSockets transport. */\r\n WebSockets = 1,\r\n /** Specifies the Server-Sent Events transport. */\r\n ServerSentEvents = 2,\r\n /** Specifies the Long Polling transport. */\r\n LongPolling = 4,\r\n}\r\n\r\n/** Specifies the transfer format for a connection. */\r\nexport enum TransferFormat {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n Text = 1,\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n Binary = 2,\r\n}\r\n\r\n/** An abstraction over the behavior of transports. This is designed to support the framework and not intended for use by applications. */\r\nexport interface ITransport {\r\n connect(url: string, transferFormat: TransferFormat): Promise;\r\n send(data: any): Promise;\r\n stop(): Promise;\r\n onreceive: (data: string | ArrayBuffer) => void;\r\n onclose: (error?: Error) => void;\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { CompletionMessage, HubMessage, IHubProtocol, InvocationMessage, MessageType, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\n\r\nconst JSON_HUB_PROTOCOL_NAME: string = \"json\";\r\n\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol implements IHubProtocol {\r\n\r\n /** @inheritDoc */\r\n public readonly name: string = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n public readonly version: number = 1;\r\n\r\n /** @inheritDoc */\r\n public readonly transferFormat: TransferFormat = TransferFormat.Text;\r\n\r\n /** Creates an array of {@link @aspnet/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n public parseMessages(input: string, logger: ILogger): HubMessage[] {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n\r\n if (!input) {\r\n return [];\r\n }\r\n\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message) as HubMessage;\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this.isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this.isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this.isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n\r\n return hubMessages;\r\n }\r\n\r\n /** Writes the specified {@link @aspnet/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n public writeMessage(message: HubMessage): string {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n\r\n private isInvocationMessage(message: InvocationMessage): void {\r\n this.assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n\r\n if (message.invocationId !== undefined) {\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n\r\n private isStreamItemMessage(message: StreamItemMessage): void {\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n\r\n private isCompletionMessage(message: CompletionMessage): void {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n if (!message.result && message.error) {\r\n this.assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n\r\n private assertNotEmptyString(value: any, errorMessage: string): void {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\n\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger implements ILogger {\r\n /** The singleton instance of the {@link @aspnet/signalr.NullLogger}. */\r\n public static instance: ILogger = new NullLogger();\r\n\r\n private constructor() {}\r\n\r\n /** @inheritDoc */\r\n // tslint:disable-next-line\r\n public log(_logLevel: LogLevel, _message: string): void {\r\n }\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, sendMessage } from \"./Utils\";\r\n\r\nconst SHUTDOWN_TIMEOUT = 5 * 1000;\r\n\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport implements ITransport {\r\n private readonly httpClient: HttpClient;\r\n private readonly accessTokenFactory: () => string | Promise;\r\n private readonly logger: ILogger;\r\n private readonly logMessageContent: boolean;\r\n\r\n private url: string;\r\n private pollAbort: AbortController;\r\n private shutdownTimer: any; // We use 'any' because this is an object in NodeJS. But it still gets passed to clearTimeout, so it doesn't really matter\r\n private shutdownTimeout: number;\r\n private running: boolean;\r\n private stopped: boolean;\r\n\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n public get pollAborted() {\r\n return this.pollAbort.aborted;\r\n }\r\n\r\n constructor(httpClient: HttpClient, accessTokenFactory: () => string | Promise, logger: ILogger, logMessageContent: boolean, shutdownTimeout?: number) {\r\n this.httpClient = httpClient;\r\n this.accessTokenFactory = accessTokenFactory || (() => null);\r\n this.logger = logger;\r\n this.pollAbort = new AbortController();\r\n this.logMessageContent = logMessageContent;\r\n this.shutdownTimeout = shutdownTimeout || SHUTDOWN_TIMEOUT;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this.url = url;\r\n\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting\");\r\n\r\n if (transferFormat === TransferFormat.Binary && (typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n // This will work if we fix: https://github.com/aspnet/SignalR/issues/742\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n\r\n const pollOptions: HttpRequest = {\r\n abortSignal: this.pollAbort.signal,\r\n headers: {},\r\n timeout: 90000,\r\n };\r\n\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n\r\n const token = await this.accessTokenFactory();\r\n this.updateHeaderToken(pollOptions, token);\r\n\r\n let closeError: Error;\r\n\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this.logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}`);\r\n const response = await this.httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this.logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}`);\r\n\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n closeError = new HttpError(response.statusText, response.statusCode);\r\n this.running = false;\r\n } else {\r\n this.running = true;\r\n }\r\n\r\n // tslint:disable-next-line:no-floating-promises\r\n this.poll(this.url, pollOptions, closeError);\r\n return Promise.resolve();\r\n }\r\n\r\n private updateHeaderToken(request: HttpRequest, token: string) {\r\n if (token) {\r\n // tslint:disable-next-line:no-string-literal\r\n request.headers[\"Authorization\"] = `Bearer ${token}`;\r\n return;\r\n }\r\n // tslint:disable-next-line:no-string-literal\r\n if (request.headers[\"Authorization\"]) {\r\n // tslint:disable-next-line:no-string-literal\r\n delete request.headers[\"Authorization\"];\r\n }\r\n }\r\n\r\n private async poll(url: string, pollOptions: HttpRequest, closeError: Error): Promise {\r\n try {\r\n while (this.running) {\r\n // We have to get the access token on each poll, in case it changes\r\n const token = await this.accessTokenFactory();\r\n this.updateHeaderToken(pollOptions, token);\r\n\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this.logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}`);\r\n const response = await this.httpClient.get(pollUrl, pollOptions);\r\n\r\n if (response.statusCode === 204) {\r\n this.logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server\");\r\n\r\n this.running = false;\r\n } else if (response.statusCode !== 200) {\r\n this.logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}`);\r\n\r\n // Unexpected status code\r\n closeError = new HttpError(response.statusText, response.statusCode);\r\n this.running = false;\r\n } else {\r\n // Process the response\r\n if (response.content) {\r\n this.logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this.logMessageContent)}`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n } else {\r\n // This is another way timeout manifest.\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n } catch (e) {\r\n if (!this.running) {\r\n // Log but disregard errors that occur after we were stopped by DELETE\r\n this.logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n } else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n } else {\r\n // Close the connection with the error as the result.\r\n closeError = e;\r\n this.running = false;\r\n }\r\n }\r\n }\r\n }\r\n } finally {\r\n // Indicate that we've stopped so the shutdown timer doesn't get registered.\r\n this.stopped = true;\r\n\r\n // Clean up the shutdown timer if it was registered\r\n if (this.shutdownTimer) {\r\n clearTimeout(this.shutdownTimer);\r\n }\r\n\r\n // Fire our onclosed event\r\n if (this.onclose) {\r\n this.logger.log(LogLevel.Trace, `(LongPolling transport) Firing onclose event. Error: ${closeError || \"\"}`);\r\n this.onclose(closeError);\r\n }\r\n\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Transport finished.\");\r\n }\r\n }\r\n\r\n public async send(data: any): Promise {\r\n if (!this.running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this.logger, \"LongPolling\", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent);\r\n }\r\n\r\n public async stop(): Promise {\r\n // Send a DELETE request to stop the poll\r\n try {\r\n this.running = false;\r\n this.logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this.url}.`);\r\n\r\n const deleteOptions: HttpRequest = {\r\n headers: {},\r\n };\r\n const token = await this.accessTokenFactory();\r\n this.updateHeaderToken(deleteOptions, token);\r\n await this.httpClient.delete(this.url, deleteOptions);\r\n\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request accepted.\");\r\n } finally {\r\n // Abort the poll after the shutdown timeout if the server doesn't stop the poll.\r\n if (!this.stopped) {\r\n this.shutdownTimer = setTimeout(() => {\r\n this.logger.log(LogLevel.Warning, \"(LongPolling transport) server did not terminate after DELETE request, canceling poll.\");\r\n\r\n // Abort any outstanding poll\r\n this.pollAbort.abort();\r\n }, this.shutdownTimeout);\r\n }\r\n }\r\n }\r\n\r\n public onreceive: (data: string | ArrayBuffer) => void;\r\n public onclose: (error?: Error) => void;\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, sendMessage } from \"./Utils\";\r\n\r\n/** @private */\r\nexport class ServerSentEventsTransport implements ITransport {\r\n private readonly httpClient: HttpClient;\r\n private readonly accessTokenFactory: () => string | Promise;\r\n private readonly logger: ILogger;\r\n private readonly logMessageContent: boolean;\r\n private eventSource: EventSource;\r\n private url: string;\r\n\r\n constructor(httpClient: HttpClient, accessTokenFactory: () => string | Promise, logger: ILogger, logMessageContent: boolean) {\r\n this.httpClient = httpClient;\r\n this.accessTokenFactory = accessTokenFactory || (() => null);\r\n this.logger = logger;\r\n this.logMessageContent = logMessageContent;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n if (typeof (EventSource) === \"undefined\") {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n\r\n this.logger.log(LogLevel.Trace, \"(SSE transport) Connecting\");\r\n\r\n const token = await this.accessTokenFactory();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n\r\n this.url = url;\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n }\r\n\r\n const eventSource = new EventSource(url, { withCredentials: true });\r\n\r\n try {\r\n eventSource.onmessage = (e: MessageEvent) => {\r\n if (this.onreceive) {\r\n try {\r\n this.logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n } catch (error) {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n return;\r\n }\r\n }\r\n };\r\n\r\n eventSource.onerror = (e: any) => {\r\n const error = new Error(e.message || \"Error occurred\");\r\n if (opened) {\r\n this.close(error);\r\n } else {\r\n reject(error);\r\n }\r\n };\r\n\r\n eventSource.onopen = () => {\r\n this.logger.log(LogLevel.Information, `SSE connected to ${this.url}`);\r\n this.eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n } catch (e) {\r\n return Promise.reject(e);\r\n }\r\n });\r\n }\r\n\r\n public async send(data: any): Promise {\r\n if (!this.eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this.logger, \"SSE\", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent);\r\n }\r\n\r\n public stop(): Promise {\r\n this.close();\r\n return Promise.resolve();\r\n }\r\n\r\n private close(e?: Error) {\r\n if (this.eventSource) {\r\n this.eventSource.close();\r\n this.eventSource = null;\r\n\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n\r\n public onreceive: (data: string | ArrayBuffer) => void;\r\n public onclose: (error?: Error) => void;\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n public static RecordSeparatorCode = 0x1e;\r\n public static RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n\r\n public static write(output: string): string {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n\r\n public static parse(input: string): string[] {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { IStreamResult, IStreamSubscriber, ISubscription } from \"./Stream\";\r\n\r\n/** @private */\r\nexport class Arg {\r\n public static isRequired(val: any, name: string): void {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n\r\n public static isIn(val: any, values: any, name: string): void {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getDataDetail(data: any, includeContent: boolean): string {\r\n let length: string = null;\r\n if (isArrayBuffer(data)) {\r\n length = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n length += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n } else if (typeof data === \"string\") {\r\n length = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n length += `. Content: '${data}'.`;\r\n }\r\n }\r\n return length;\r\n}\r\n\r\n/** @private */\r\nexport function formatArrayBuffer(data: ArrayBuffer): string {\r\n const view = new Uint8Array(data);\r\n\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n\r\n/** @private */\r\nexport async function sendMessage(logger: ILogger, transportName: string, httpClient: HttpClient, url: string, accessTokenFactory: () => string | Promise, content: string | ArrayBuffer, logMessageContent: boolean): Promise {\r\n let headers;\r\n const token = await accessTokenFactory();\r\n if (token) {\r\n headers = {\r\n [\"Authorization\"]: `Bearer ${token}`,\r\n };\r\n }\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, logMessageContent)}.`);\r\n\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers,\r\n });\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n\r\n/** @private */\r\nexport function createLogger(logger?: ILogger | LogLevel) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n\r\n if ((logger as ILogger).log) {\r\n return logger as ILogger;\r\n }\r\n\r\n return new ConsoleLogger(logger as LogLevel);\r\n}\r\n\r\n/** @private */\r\nexport class Subject implements IStreamResult {\r\n public observers: Array>;\r\n public cancelCallback: () => Promise;\r\n\r\n constructor(cancelCallback: () => Promise) {\r\n this.observers = [];\r\n this.cancelCallback = cancelCallback;\r\n }\r\n\r\n public next(item: T): void {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n\r\n public error(err: any): void {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n\r\n public complete(): void {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n\r\n public subscribe(observer: IStreamSubscriber): ISubscription {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class SubjectSubscription implements ISubscription {\r\n private subject: Subject;\r\n private observer: IStreamSubscriber;\r\n\r\n constructor(subject: Subject, observer: IStreamSubscriber) {\r\n this.subject = subject;\r\n this.observer = observer;\r\n }\r\n\r\n public dispose(): void {\r\n const index: number = this.subject.observers.indexOf(this.observer);\r\n if (index > -1) {\r\n this.subject.observers.splice(index, 1);\r\n }\r\n\r\n if (this.subject.observers.length === 0) {\r\n this.subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class ConsoleLogger implements ILogger {\r\n private readonly minimumLogLevel: LogLevel;\r\n\r\n constructor(minimumLogLevel: LogLevel) {\r\n this.minimumLogLevel = minimumLogLevel;\r\n }\r\n\r\n public log(logLevel: LogLevel, message: string): void {\r\n if (logLevel >= this.minimumLogLevel) {\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n console.error(`${LogLevel[logLevel]}: ${message}`);\r\n break;\r\n case LogLevel.Warning:\r\n console.warn(`${LogLevel[logLevel]}: ${message}`);\r\n break;\r\n case LogLevel.Information:\r\n console.info(`${LogLevel[logLevel]}: ${message}`);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n console.log(`${LogLevel[logLevel]}: ${message}`);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail } from \"./Utils\";\r\n\r\n/** @private */\r\nexport class WebSocketTransport implements ITransport {\r\n private readonly logger: ILogger;\r\n private readonly accessTokenFactory: () => string | Promise;\r\n private readonly logMessageContent: boolean;\r\n private webSocket: WebSocket;\r\n\r\n constructor(accessTokenFactory: () => string | Promise, logger: ILogger, logMessageContent: boolean) {\r\n this.logger = logger;\r\n this.accessTokenFactory = accessTokenFactory || (() => null);\r\n this.logMessageContent = logMessageContent;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n if (typeof (WebSocket) === \"undefined\") {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting\");\r\n\r\n const token = await this.accessTokenFactory();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n const webSocket = new WebSocket(url);\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n\r\n // tslint:disable-next-line:variable-name\r\n webSocket.onopen = (_event: Event) => {\r\n this.logger.log(LogLevel.Information, `WebSocket connected to ${url}`);\r\n this.webSocket = webSocket;\r\n resolve();\r\n };\r\n\r\n webSocket.onerror = (event: ErrorEvent) => {\r\n reject(event.error);\r\n };\r\n\r\n webSocket.onmessage = (message: MessageEvent) => {\r\n this.logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(message.data);\r\n }\r\n };\r\n\r\n webSocket.onclose = (event: CloseEvent) => {\r\n // webSocket will be null if the transport did not start successfully\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (event.wasClean === false || event.code !== 1000) {\r\n this.onclose(new Error(`Websocket closed with status code: ${event.code} (${event.reason})`));\r\n } else {\r\n this.onclose();\r\n }\r\n }\r\n };\r\n });\r\n }\r\n\r\n public send(data: any): Promise {\r\n if (this.webSocket && this.webSocket.readyState === WebSocket.OPEN) {\r\n this.logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this.logMessageContent)}.`);\r\n this.webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n\r\n public stop(): Promise {\r\n if (this.webSocket) {\r\n this.webSocket.close();\r\n this.webSocket = null;\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n public onreceive: (data: string | ArrayBuffer) => void;\r\n public onclose: (error?: Error) => void;\r\n}\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION: string = \"0.0.0-DEV_BUILD\";\r\n\r\n// Everything that users need to access must be exported here. Including interfaces.\r\nexport { AbortSignal } from \"./AbortController\";\r\nexport { HttpError, TimeoutError } from \"./Errors\";\r\nexport { DefaultHttpClient, HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nexport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nexport { HubConnection } from \"./HubConnection\";\r\nexport { HubConnectionBuilder } from \"./HubConnectionBuilder\";\r\nexport { MessageType, MessageHeaders, HubMessage, HubMessageBase, HubInvocationMessage, InvocationMessage, StreamInvocationMessage, StreamItemMessage, CompletionMessage, PingMessage, CloseMessage, CancelInvocationMessage, IHubProtocol } from \"./IHubProtocol\";\r\nexport { ILogger, LogLevel } from \"./ILogger\";\r\nexport { HttpTransportType, TransferFormat, ITransport } from \"./ITransport\";\r\nexport { IStreamSubscriber, IStreamResult, ISubscription } from \"./Stream\";\r\nexport { NullLogger } from \"./Loggers\";\r\nexport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\n","import { NgProgressState, NgProgressConfig } from './ng-progress.interface';\r\nimport { Observable, Subject, BehaviorSubject, timer, of, combineLatest, Subscription } from 'rxjs';\r\nimport { tap, map, skip, delay, filter, debounce, switchMap, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nexport class NgProgressRef {\r\n\r\n /** Stream that emits when progress state is changed */\r\n private readonly _state: BehaviorSubject;\r\n state: Observable;\r\n\r\n /** Stream that emits when config is changed */\r\n private readonly _config: BehaviorSubject;\r\n config: Observable;\r\n\r\n /** Stream that increments and updates progress state */\r\n private readonly _trickling = new Subject();\r\n\r\n /** Stream that combines \"_trickling\" and \"config\" streams */\r\n private readonly _worker = Subscription.EMPTY;\r\n\r\n /** Get current progress state */\r\n private get currState(): NgProgressState {\r\n return this._state.value;\r\n }\r\n\r\n /** Check if progress has started */\r\n get isStarted(): boolean {\r\n return this.currState.active;\r\n }\r\n\r\n /** Progress start event */\r\n get started(): Observable {\r\n return this._state.pipe(\r\n map((state: NgProgressState) => state.active),\r\n distinctUntilChanged(),\r\n filter(active => active)\r\n );\r\n }\r\n\r\n /** Progress ended event */\r\n get completed(): Observable {\r\n return this._state.pipe(\r\n map((state: NgProgressState) => state.active),\r\n distinctUntilChanged(),\r\n filter(active => !active),\r\n skip(1)\r\n );\r\n }\r\n\r\n constructor(customConfig: NgProgressConfig, private _onDestroyCallback: Function) {\r\n this._state = new BehaviorSubject({active: false, value: 0});\r\n this._config = new BehaviorSubject(customConfig);\r\n this.state = this._state.asObservable();\r\n this.config = this._state.asObservable();\r\n\r\n this._worker = combineLatest(this._trickling, this._config).pipe(\r\n debounce(([start, config]: [boolean, NgProgressConfig]) => timer(start ? config.debounceTime : 0)),\r\n switchMap(([start, config]: [boolean, NgProgressConfig]) => start ? this.onTrickling(config) : this.onComplete(config))\r\n ).subscribe();\r\n }\r\n\r\n /**\r\n * Start the progress\r\n */\r\n start() {\r\n this._trickling.next(true);\r\n }\r\n\r\n /**\r\n * Complete the progress\r\n */\r\n complete() {\r\n this._trickling.next(false);\r\n }\r\n\r\n /**\r\n * Increment the progress\r\n * @param amount\r\n */\r\n inc(amount?: number) {\r\n const n = this.currState.value;\r\n if (!this.isStarted) {\r\n this.start();\r\n } else {\r\n if (typeof amount !== 'number') {\r\n amount = this._config.value.trickleFunc(n);\r\n }\r\n this.set(n + amount);\r\n }\r\n }\r\n\r\n /**\r\n * Set the progress\r\n * @param n\r\n */\r\n set(n: number) {\r\n this.setState({value: this.clamp(n), active: true});\r\n }\r\n\r\n /**\r\n * Set config\r\n * @param config\r\n */\r\n setConfig(config: NgProgressConfig) {\r\n this._config.next({...this._config.value, ...config});\r\n }\r\n\r\n /**\r\n * Destroy progress reference\r\n */\r\n destroy() {\r\n this._worker.unsubscribe();\r\n this._trickling.complete();\r\n this._state.complete();\r\n this._config.complete();\r\n this._onDestroyCallback();\r\n }\r\n\r\n /**\r\n * Set progress state\r\n * @param state\r\n */\r\n private setState(state: NgProgressState) {\r\n this._state.next({...this.currState, ...state});\r\n }\r\n\r\n /**\r\n * Clamps a value to be between min and max\r\n * @param n\r\n */\r\n private clamp(n: number): number {\r\n return Math.max(this._config.value.min, Math.min(this._config.value.max, n));\r\n }\r\n\r\n /**\r\n * Keeps incrementing the progress\r\n * @param config\r\n */\r\n private onTrickling(config: NgProgressConfig): Observable {\r\n if (!this.isStarted) {\r\n this.set(this._config.value.min);\r\n }\r\n return timer(0, config.trickleSpeed).pipe(tap(() => this.inc()));\r\n }\r\n\r\n /**\r\n * Completes then resets the progress\r\n * @param config\r\n */\r\n private onComplete(config: NgProgressConfig): Observable {\r\n return !this.isStarted ? of({}) : of({}).pipe(\r\n // Completes the progress\r\n tap(() => this.setState({value: 100})),\r\n\r\n // Hides the progress bar after a tiny delay\r\n delay(config.speed * 1.7),\r\n tap(() => this.setState({active: false})),\r\n\r\n // Resets the progress state\r\n delay(config.speed),\r\n tap(() => this.setState({value: 0}))\r\n );\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface NgProgressState {\r\n active?: boolean;\r\n value?: number;\r\n}\r\n\r\nexport interface NgProgressConfig {\r\n spinnerPosition?: 'left' | 'right';\r\n direction?: 'ltr+' | 'ltr-' | 'rtl+' | 'rtl-';\r\n ease?: string;\r\n color?: string;\r\n thick?: boolean;\r\n fixed?: boolean;\r\n meteor?: boolean;\r\n spinner?: boolean;\r\n max?: number;\r\n min?: number;\r\n speed?: number;\r\n trickleSpeed?: number;\r\n trickleFunc?: (n: number) => number;\r\n debounceTime?: number;\r\n}\r\n\r\nexport const NG_PROGRESS_CONFIG = new InjectionToken('ngProgressConfig');\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { NgProgressRef } from './ng-progress-ref';\r\nimport { NgProgressConfig, NG_PROGRESS_CONFIG } from './ng-progress.interface';\r\n\r\nconst defaultConfig: NgProgressConfig = {\r\n min: 8,\r\n max: 100,\r\n speed: 200,\r\n debounceTime: 0,\r\n trickleSpeed: 300,\r\n fixed: true,\r\n meteor: true,\r\n thick: false,\r\n spinner: true,\r\n ease: 'linear',\r\n color: '#1B95E0',\r\n direction: 'ltr+',\r\n spinnerPosition: 'right',\r\n trickleFunc: (n: number): number => {\r\n if (n >= 0 && n < 20) return 10;\r\n if (n >= 20 && n < 50) return 4;\r\n if (n >= 50 && n < 80) return 2;\r\n if (n >= 80 && n < 99) return 0.5;\r\n return 0;\r\n }\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NgProgress {\r\n\r\n /** Store progress bar instances */\r\n private readonly _instances = new Map();\r\n\r\n /** Global config */\r\n config: NgProgressConfig;\r\n\r\n constructor(@Optional() @Inject(NG_PROGRESS_CONFIG) config: NgProgressConfig) {\r\n this.config = config ? {...defaultConfig, ...config} : defaultConfig;\r\n }\r\n\r\n /**\r\n * Get or Create progress bar by ID\r\n * @param id\r\n * @param config\r\n */\r\n ref(id = 'root', config?: NgProgressConfig) {\r\n if (this._instances.has(id)) {\r\n // Get ProgressRef instance\r\n const progressRef = this._instances.get(id);\r\n if (config) {\r\n progressRef.setConfig({...this.config, ...config});\r\n }\r\n return progressRef;\r\n } else {\r\n // Create new ProgressRef instance\r\n const progressRef = new NgProgressRef({...this.config, ...config}, this.deleteInstance(id));\r\n return this._instances.set(id, progressRef).get(id);\r\n }\r\n }\r\n\r\n /**\r\n * Destroy all progress bar instances\r\n */\r\n destroyAll() {\r\n this._instances.forEach((ref: NgProgressRef) => ref.destroy());\r\n }\r\n\r\n /**\r\n * A destroyer function for each progress bar instance\r\n */\r\n private deleteInstance(id: string) {\r\n return () => {\r\n this._instances.delete(id);\r\n };\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ChangeDetectionStrategy,\r\n EventEmitter,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { Observable, Subscription, SubscriptionLike} from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { NgProgress } from './ng-progress.service';\r\nimport { NgProgressRef } from './ng-progress-ref';\r\nimport { NgProgressState } from './ng-progress.interface';\r\n\r\n@Component({\r\n selector: 'ng-progress',\r\n host: {\r\n 'role': 'progressbar',\r\n '[attr.spinnerPosition]': 'spinnerPosition',\r\n '[attr.dir]': 'direction',\r\n '[attr.thick]': 'thick',\r\n '[attr.fixed]': 'fixed'\r\n },\r\n template: `\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 styleUrls: ['./ng-progress.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n preserveWhitespaces: false\r\n})\r\n\r\nexport class NgProgressComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n private _started: SubscriptionLike = Subscription.EMPTY;\r\n private _completed: SubscriptionLike = Subscription.EMPTY;\r\n\r\n /** Progress bar worker */\r\n progressRef: NgProgressRef;\r\n\r\n /** Stream that emits progress state */\r\n state$: Observable<{ active: boolean, transform: string }>;\r\n\r\n /** Creates a new instance if id is not already exists */\r\n @Input() id = 'root';\r\n\r\n /** Initializes inputs from the global config */\r\n @Input() min: number = this._ngProgress.config.min;\r\n @Input() max: number = this._ngProgress.config.max;\r\n @Input() ease: string = this._ngProgress.config.ease;\r\n @Input() color: string = this._ngProgress.config.color;\r\n @Input() speed: number = this._ngProgress.config.speed;\r\n @Input() thick: boolean = this._ngProgress.config.thick;\r\n @Input() fixed: boolean = this._ngProgress.config.fixed;\r\n @Input() meteor: boolean = this._ngProgress.config.meteor;\r\n @Input() spinner: boolean = this._ngProgress.config.spinner;\r\n @Input() trickleSpeed: number = this._ngProgress.config.trickleSpeed;\r\n @Input() debounceTime: number = this._ngProgress.config.debounceTime;\r\n @Input() trickleFunc: (n: number) => number = this._ngProgress.config.trickleFunc;\r\n @Input() spinnerPosition: 'left' | 'right' = this._ngProgress.config.spinnerPosition;\r\n @Input() direction: 'ltr+' | 'ltr-' | 'rtl+' | 'rtl-' = this._ngProgress.config.direction;\r\n @Output() started = new EventEmitter();\r\n @Output() completed = new EventEmitter();\r\n\r\n get isStarted() {\r\n return this.progressRef.isStarted;\r\n }\r\n\r\n constructor(private _ngProgress: NgProgress) {\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.progressRef instanceof NgProgressRef) {\r\n // Update progress bar config when inputs change\r\n this.progressRef.setConfig({\r\n max: (this.max > 0 && this.max <= 100) ? this.max : 100,\r\n min: (this.min < 100 && this.min >= 0) ? this.min : 0,\r\n speed: this.speed,\r\n trickleSpeed: this.trickleSpeed,\r\n trickleFunc: this.trickleFunc,\r\n debounceTime: this.debounceTime\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n // Get progress bar service instance\r\n this.progressRef = this._ngProgress.ref(this.id, {\r\n max: this.max,\r\n min: this.min,\r\n speed: this.speed,\r\n trickleSpeed: this.trickleSpeed,\r\n debounceTime: this.debounceTime\r\n });\r\n\r\n // Subscribe to progress state\r\n this.state$ = this.progressRef.state.pipe(\r\n map((state: NgProgressState) => ({\r\n active: state.active,\r\n transform: `translate3d(${state.value}%,0,0)`\r\n }))\r\n );\r\n\r\n // Subscribes to started and completed events on deman\r\n if (this.started.observers.length) {\r\n this._started = this.progressRef.started.subscribe(() => this.started.emit());\r\n }\r\n if (this.completed.observers.length) {\r\n this._completed = this.progressRef.completed.subscribe(() => this.completed.emit());\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._started.unsubscribe();\r\n this._completed.unsubscribe();\r\n if (this.progressRef instanceof NgProgressRef) {\r\n this.progressRef.destroy();\r\n }\r\n }\r\n\r\n start() {\r\n this.progressRef.start();\r\n }\r\n\r\n complete() {\r\n this.progressRef.complete();\r\n }\r\n\r\n inc(n?: number) {\r\n this.progressRef.inc(n);\r\n }\r\n\r\n set(n: number) {\r\n this.progressRef.set(n);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgProgressComponent } from './ng-progress.component';\r\nimport { NgProgressConfig, NG_PROGRESS_CONFIG } from './ng-progress.interface';\r\n\r\n@NgModule({\r\n declarations: [NgProgressComponent],\r\n exports: [NgProgressComponent],\r\n imports: [CommonModule]\r\n})\r\nexport class NgProgressModule {\r\n static withConfig(config: NgProgressConfig): ModuleWithProviders {\r\n return {\r\n ngModule: NgProgressModule,\r\n providers: [\r\n {provide: NG_PROGRESS_CONFIG, useValue: config}\r\n ]\r\n };\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface NgProgressHttpConfig {\r\n id?: string;\r\n silentApis?: string[];\r\n}\r\n\r\nexport const NG_PROGRESS_HTTP_CONFIG = new InjectionToken('ngProgressHttpConfig');\r\n","import { Injectable, Optional, Inject } from '@angular/core';\r\nimport { HttpInterceptor, HttpEvent, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { NgProgress, NgProgressRef } from '@ngx-progressbar/core';\r\nimport { NgProgressHttpConfig, NG_PROGRESS_HTTP_CONFIG } from './ng-progress-http.interface';\r\n\r\n@Injectable()\r\nexport class NgProgressInterceptor implements HttpInterceptor {\r\n\r\n private _inProgressCount = 0;\r\n private _progressRef: NgProgressRef;\r\n private readonly _config: NgProgressHttpConfig = {\r\n id: 'root',\r\n silentApis: []\r\n };\r\n\r\n constructor(ngProgress: NgProgress, @Optional() @Inject(NG_PROGRESS_HTTP_CONFIG) config?: NgProgressHttpConfig) {\r\n this._config = config ? {...this._config, ...config} : this._config;\r\n this._progressRef = ngProgress.ref(this._config.id);\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n // Ignore by request headers\r\n if (req.headers.has('ignoreProgressBar')) {\r\n return next.handle(req.clone({headers: req.headers.delete('ignoreProgressBar')}));\r\n }\r\n\r\n // Ignore silent api requests\r\n if (this.checkUrl(req)) {\r\n return next.handle(req);\r\n }\r\n\r\n this._inProgressCount++;\r\n\r\n if (!this._progressRef.isStarted) {\r\n this._progressRef.start();\r\n }\r\n\r\n return next.handle(req).pipe(\r\n finalize(() => {\r\n this._inProgressCount--;\r\n if (this._inProgressCount === 0) {\r\n this._progressRef.complete();\r\n }\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Check if request is silent.\r\n * @param req request\r\n */\r\n private checkUrl(req: HttpRequest) {\r\n const url = req.url.toLowerCase();\r\n const found = this._config.silentApis.find((u) => url.startsWith(u));\r\n return !!found;\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { NgProgressInterceptor } from './ng-progress.interceptor';\r\nimport { NgProgressHttpConfig, NG_PROGRESS_HTTP_CONFIG } from './ng-progress-http.interface';\r\n\r\n@NgModule({\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: NgProgressInterceptor, multi: true }\r\n ]\r\n})\r\nexport class NgProgressHttpModule {\r\n static withConfig(config: NgProgressHttpConfig): ModuleWithProviders {\r\n return {\r\n ngModule: NgProgressHttpModule,\r\n providers: [\r\n { provide: NG_PROGRESS_HTTP_CONFIG, useValue: config }\r\n ]\r\n };\r\n }\r\n}\r\n","import { InjectionToken, Type } from '@angular/core';\r\nimport { RouterEvent } from '@angular/router';\r\n\r\nexport interface NgProgressRouterConfig {\r\n id?: string;\r\n delay?: number;\r\n startEvents?: Type[];\r\n completeEvents?: Type[];\r\n}\r\n\r\nexport const NG_PROGRESS_ROUTER_CONFIG = new InjectionToken('ngProgressRouterConfig');\r\n","import { Injectable, Optional, Inject, Type } from '@angular/core';\r\nimport { Router, NavigationStart, NavigationEnd, NavigationCancel, NavigationError, RouterEvent } from '@angular/router';\r\nimport { of } from 'rxjs';\r\nimport { tap, delay, switchMap, filter } from 'rxjs/operators';\r\nimport { NgProgress } from '@ngx-progressbar/core';\r\nimport { NgProgressRouterConfig, NG_PROGRESS_ROUTER_CONFIG } from './ng-progress-router.interface';\r\n\r\n/**\r\n * Check if a router event type exists in an array of router event types\r\n * @param routerEvent\r\n * @param events\r\n */\r\nfunction eventExists(routerEvent: RouterEvent, events: Type[]) {\r\n let res = false;\r\n events.map((event: Type) => res = res || routerEvent instanceof event);\r\n return res;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NgProgressRouter {\r\n private readonly _config: NgProgressRouterConfig = {\r\n id: 'root',\r\n delay: 0,\r\n startEvents: [NavigationStart],\r\n completeEvents: [NavigationEnd, NavigationCancel, NavigationError]\r\n };\r\n\r\n constructor(progress: NgProgress, router: Router, @Optional() @Inject(NG_PROGRESS_ROUTER_CONFIG) config: NgProgressRouterConfig) {\r\n this._config = config ? {...this._config, ...config} : this._config;\r\n const progressRef = progress.ref(this._config.id);\r\n\r\n const startProgress = of({}).pipe(\r\n tap(() => progressRef.start())\r\n );\r\n\r\n const completeProgress = of({}).pipe(\r\n delay(this._config.delay),\r\n tap(() => progressRef.complete())\r\n );\r\n\r\n const filterEvents = [...this._config.startEvents, ...this._config.completeEvents];\r\n\r\n router.events.pipe(\r\n filter((event: RouterEvent) => eventExists(event, filterEvents)),\r\n switchMap((event: RouterEvent) => eventExists(event, this._config.startEvents) ? startProgress : completeProgress)\r\n ).subscribe();\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { NgProgressRouterConfig, NG_PROGRESS_ROUTER_CONFIG } from './ng-progress-router.interface';\r\nimport { NgProgressRouter } from './ng-progress-router.service';\r\n\r\n@NgModule({})\r\nexport class NgProgressRouterModule {\r\n\r\n // Inject the service to activate it\r\n constructor(ngProgressRouter: NgProgressRouter) {\r\n }\r\n\r\n static withConfig(config: NgProgressRouterConfig): ModuleWithProviders {\r\n return {\r\n ngModule: NgProgressRouterModule,\r\n providers: [\r\n { provide: NG_PROGRESS_ROUTER_CONFIG, useValue: config }\r\n ]\r\n };\r\n }\r\n}\r\n","import { ElementRef } from '@angular/core';\n\nimport { ScrollToAnimationEasingCollection } from './scroll-to-easing.interface';\nimport { ScrollToDefaultConfigOptions } from './scroll-to-config.interface';\n\n/** Default values for Component Input */\nexport const DEFAULTS: ScrollToDefaultConfigOptions = {\n target: null,\n action: 'click',\n duration: 650,\n easing: 'easeInOutQuad',\n offset: 0,\n offsetMap: new Map()\n};\n\n/** Easing Colleciton */\nexport const EASING: ScrollToAnimationEasingCollection = {\n easeInQuad: (time: number) => {\n return time * time;\n },\n easeOutQuad: (time: number) => {\n return time * (2 - time);\n },\n easeInOutQuad: (time: number) => {\n return time < 0.5 ? 2 * time * time : -1 + (4 - 2 * time) * time;\n },\n easeInCubic: (time: number) => {\n return time * time * time;\n },\n easeOutCubic: (time: number) => {\n return (--time) * time * time + 1;\n },\n easeInOutCubic: (time: number) => {\n return time < 0.5 ? 4 * time * time * time : (time - 1) * (2 * time - 2) * (2 * time - 2) + 1;\n },\n easeInQuart: (time: number) => {\n return time * time * time * time;\n },\n easeOutQuart: (time: number) => {\n return 1 - (--time) * time * time * time;\n },\n easeInOutQuart: (time: number) => {\n return time < 0.5 ? 8 * time * time * time * time : 1 - 8 * (--time) * time * time * time;\n },\n easeInQuint: (time: number) => {\n return time * time * time * time * time;\n },\n easeOutQuint: (time: number) => {\n return 1 + (--time) * time * time * time * time;\n },\n easeInOutQuint: (time: number) => {\n return time < 0.5 ? 16 * time * time * time * time * time : 1 + 16 * (--time) * time * time * time * time;\n },\n easeOutElastic: (time: number) => {\n return Math.pow(2, -10 * time) * Math.sin((time - 1 / 4) * (2 * Math.PI) / 1) + 1;\n }\n};\n\n/**\n * Set of allowed events as triggers\n * for the Animation to start.\n */\nexport const EVENTS: string[] = [\n 'click',\n 'mouseenter',\n 'mouseover',\n 'mousedown',\n 'mouseup',\n 'dblclick',\n 'contextmenu',\n 'wheel',\n 'mouseleave',\n 'mouseout'\n];\n\n/**\n * Strip hash (#) from value.\n *\n * @param value \t\t\t\tThe given string value\n * @returns \t\t\t\t\tThe stripped string value\n */\nexport function stripHash(value: string): string {\n return value.substring(0, 1) === '#' ? value.substring(1) : value;\n}\n\n/**\n * Test if a given value is a string.\n *\n * @param value \t\t\t\t\tThe given value\n * @returns \t\t\t\t\t\tWhether the given value is a string\n */\nexport function isString(value: any): value is string {\n return typeof value === 'string' || value instanceof String;\n}\n\n/**\n * Test if a given Element is the Window.\n *\n * @param container \t\t\t\tThe given Element\n * @returns \t\t\t\t\t\tWhether the given Element is Window\n */\nexport function isWindow(container: any): container is Window {\n return container === window;\n}\n\n/**\n * Test if a given value is of type ElementRef.\n *\n * @param value \t\t\t\t\tThe given value\n * @returns Whether the given value is a number\n */\nexport function isElementRef(value: any): value is ElementRef {\n return value instanceof ElementRef;\n}\n\n/**\n * Whether or not the given value is a Native Element.\n *\n * @param value The given value\n * @returns Whether or not the value is a Native Element\n */\nexport function isNativeElement(value: any): value is HTMLElement {\n return value instanceof HTMLElement;\n}\n\n/**\n * Test if a given value is type number.\n *\n * @param value \t\t\t\t\tThe given value\n * @returns \t\t\t\t\t\tWhether the given value is a number\n */\nexport function isNumber(value: any): value is number {\n return !isNaN(parseFloat(value)) && isFinite(value);\n}\n","import { Observable, ReplaySubject } from 'rxjs';\n\nimport { EASING } from './scroll-to-helpers';\nimport { ScrollToConfigOptions, ScrollToListenerTarget } from './scroll-to-config.interface';\n\n/** Scroll To Animation */\nexport class ScrollToAnimation {\n\n /** Number of milliseconds for each Tick */\n private tick: number;\n\n /** Interval */\n private interval: any;\n\n /** Time Lapsed in milliseconds */\n private timeLapsed: number;\n\n /** Percentage of time lapsed */\n private percentage: number;\n\n /** Position of the Element */\n private position: number;\n\n /** Last Element Position */\n private lastPosition: number;\n\n /** Start Position of the Element */\n private startPosition: number;\n\n /** The Distance to scroll */\n private distance: number;\n\n /** Observable Source */\n private source$: ReplaySubject;\n\n /** Scroll Top of the Window */\n private windowScrollTop: number;\n\n /** Mapped Offset taken from the active Offset Map */\n private mappedOffset: number;\n\n /**\n * Class Constructor.\n *\n * @param container The Container\n * @param listenerTarget The Element that listens for DOM Events\n * @param isWindow Whether or not the listener is the Window\n * @param to Position to scroll to\n * @param options Additional options for scrolling\n * @param isBrowser Whether or not execution runs in the browser\n * (as opposed to the server)\n */\n constructor(\n private container: HTMLElement,\n private listenerTarget: ScrollToListenerTarget,\n private readonly isWindow: boolean,\n private readonly to: number,\n private readonly options: ScrollToConfigOptions,\n private isBrowser: boolean\n ) {\n this.tick = 16;\n this.interval = null;\n this.lastPosition = null;\n this.timeLapsed = 0;\n\n this.windowScrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n\n if (!this.container) {\n this.startPosition = this.windowScrollTop;\n } else {\n this.startPosition = this.isWindow ? this.windowScrollTop : this.container.scrollTop;\n }\n\n // Correction for Starting Position of nested HTML Elements\n if (this.container && !this.isWindow) {\n this.to = this.to - this.container.getBoundingClientRect().top + this.startPosition;\n }\n\n // Set Distance\n const directionalDistance = this.startPosition - this.to;\n this.distance = this.container ? Math.abs(this.startPosition - this.to) : this.to;\n\n this.mappedOffset = this.options.offset;\n\n // Set offset from Offset Map\n if (this.isBrowser) {\n this.options\n .offsetMap\n .forEach((value, key) => this.mappedOffset = window.innerWidth > key ? value : this.mappedOffset);\n }\n\n this.distance += this.mappedOffset * (directionalDistance <= 0 ? 1 : -1);\n this.source$ = new ReplaySubject();\n }\n\n /**\n * Start the new Scroll Animation.\n *\n * @returns Observable containing a number\n */\n start(): Observable {\n clearInterval(this.interval);\n this.interval = setInterval(this.loop, this.tick);\n return this.source$.asObservable();\n }\n\n /**\n * Stop the current Scroll Animation Loop.\n *\n * @param force Force to stop the Animation Loop\n * @returns Void\n */\n stop(): void {\n clearInterval(this.interval);\n this.interval = null;\n this.source$.complete();\n }\n\n /** Recursively loop over the Scroll Animation */\n private loop = (): void => {\n\n this.timeLapsed += this.tick;\n this.percentage = (this.timeLapsed / this.options.duration);\n this.percentage = (this.percentage > 1) ? 1 : this.percentage;\n\n // Position Update\n this.position = this.startPosition +\n ((this.startPosition - this.to <= 0 ? 1 : -1) *\n this.distance *\n EASING[this.options.easing](this.percentage));\n\n if (this.lastPosition !== null && this.position === this.lastPosition) {\n this.stop();\n } else {\n this.source$.next(this.position);\n this.isWindow\n ? this.listenerTarget.scrollTo(0, Math.floor(this.position))\n : this.container.scrollTop = Math.floor(this.position);\n this.lastPosition = this.position;\n }\n }\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\n\nimport { ScrollToConfigOptions, ScrollToConfigOptionsTarget, ScrollToListenerTarget, ScrollToTarget } from './scroll-to-config.interface';\nimport { ScrollToAnimation } from './scroll-to-animation';\nimport { DEFAULTS, isElementRef, isNativeElement, isNumber, isString, isWindow, stripHash } from './scroll-to-helpers';\nimport { Observable, ReplaySubject, throwError } from 'rxjs';\n\n/**\n * The Scroll To Service handles starting, interrupting\n * and ending the actual Scroll Animation. It provides\n * some utilities to find the proper HTML Element on a\n * given page to setup Event Listeners and calculate\n * distances for the Animation.\n */\n@Injectable()\nexport class ScrollToService {\n\n /**\n * The animation that provides the scrolling\n * to happen smoothly over time. Defining it here\n * allows for usage of e.g. `start` and `stop`\n * methods within this Angular Service.\n */\n private animation: ScrollToAnimation;\n\n /**\n * Interruptive Events allow to scrolling animation\n * to be interrupted before it is finished. The list\n * of Interruptive Events represents those.\n */\n private interruptiveEvents: string[];\n\n /**\n * Construct and setup required paratemeters.\n *\n * @param document A Reference to the Document\n * @param platformId Angular Platform ID\n */\n constructor(\n @Inject(DOCUMENT) private document: any,\n @Inject(PLATFORM_ID) private platformId: any\n ) {\n this.interruptiveEvents = ['mousewheel', 'DOMMouseScroll', 'touchstart'];\n }\n\n /**\n * Target an Element to scroll to. Notice that the `TimeOut` decorator\n * ensures the executing to take place in the next Angular lifecycle.\n * This allows for scrolling to elements that are e.g. initially hidden\n * by means of `*ngIf`, but ought to be scrolled to eventually.\n *\n * @todo type 'any' in Observable should become custom type like 'ScrollToEvent' (base class), see issue comment:\n * - https://github.com/nicky-lenaers/ngx-scroll-to/issues/10#issuecomment-317198481\n *\n * @param options Configuration Object\n * @returns Observable\n */\n scrollTo(options: ScrollToConfigOptions): Observable {\n\n if (!isPlatformBrowser(this.platformId)) {\n return new ReplaySubject().asObservable();\n }\n\n return this.start(options);\n }\n\n /**\n * Start a new Animation.\n *\n * @todo Emit proper events from subscription\n *\n * @param options Configuration Object\n * @returns Observable\n */\n private start(options: ScrollToConfigOptions): Observable {\n\n // Merge config with default values\n const mergedConfigOptions = {\n ...DEFAULTS as ScrollToConfigOptions,\n ...options\n } as ScrollToConfigOptionsTarget;\n\n if (this.animation) {\n this.animation.stop();\n }\n\n const targetNode = this.getNode(mergedConfigOptions.target);\n if (mergedConfigOptions.target && !targetNode) {\n return throwError('Unable to find Target Element');\n }\n\n const container: HTMLElement = this.getContainer(mergedConfigOptions, targetNode);\n if (mergedConfigOptions.container && !container) {\n return throwError('Unable to find Container Element');\n }\n\n const listenerTarget = this.getListenerTarget(container) || window;\n\n let to = container ? container.getBoundingClientRect().top : 0;\n\n if (targetNode) {\n to = isWindow(listenerTarget) ?\n window.scrollY + targetNode.getBoundingClientRect().top :\n targetNode.getBoundingClientRect().top;\n }\n\n // Create Animation\n this.animation = new ScrollToAnimation(\n container,\n listenerTarget,\n isWindow(listenerTarget),\n to,\n mergedConfigOptions,\n isPlatformBrowser(this.platformId)\n );\n const onInterrupt = () => this.animation.stop();\n this.addInterruptiveEventListeners(listenerTarget, onInterrupt);\n\n // Start Animation\n const animation$ = this.animation.start();\n this.subscribeToAnimation(animation$, listenerTarget, onInterrupt);\n\n return animation$;\n }\n\n /**\n * Subscribe to the events emitted from the Scrolling\n * Animation. Events might be used for e.g. unsubscribing\n * once finished.\n *\n * @param animation$ The Animation Observable\n * @param listenerTarget The Listener Target for events\n * @param onInterrupt The handler for Interruptive Events\n * @returns Void\n */\n private subscribeToAnimation(\n animation$: Observable,\n listenerTarget: ScrollToListenerTarget,\n onInterrupt: EventListenerOrEventListenerObject\n ) {\n const subscription = animation$\n .subscribe(\n () => {\n },\n () => {\n },\n () => {\n this.removeInterruptiveEventListeners(this.interruptiveEvents, listenerTarget, onInterrupt);\n subscription.unsubscribe();\n }\n );\n }\n\n /**\n * Get the container HTML Element in which\n * the scrolling should happen.\n *\n * @param options The Merged Configuration Object\n * @param targetNode the targeted HTMLElement\n */\n private getContainer(options: ScrollToConfigOptions, targetNode: HTMLElement): HTMLElement | null {\n\n let container: HTMLElement | null = null;\n\n if (options.container) {\n container = this.getNode(options.container, true);\n } else if (targetNode) {\n container = this.getFirstScrollableParent(targetNode);\n }\n\n return container;\n }\n\n /**\n * Add listeners for the Animation Interruptive Events\n * to the Listener Target.\n *\n * @param events List of events to listen to\n * @param listenerTarget Target to attach the listener on\n * @param handler Handler for when the listener fires\n * @returns Void\n */\n private addInterruptiveEventListeners(\n listenerTarget: ScrollToListenerTarget,\n handler: EventListenerOrEventListenerObject): void {\n\n if (!listenerTarget) {\n listenerTarget = window;\n }\n\n this.interruptiveEvents\n .forEach(event => listenerTarget\n .addEventListener(event, handler, this.supportPassive() ? {passive: true} : false));\n }\n\n /**\n * Feature-detect support for passive event listeners.\n *\n * @returns Whether or not passive event listeners are supported\n */\n private supportPassive(): boolean {\n\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n get: () => {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassive', null, opts);\n window.removeEventListener('testPassive', null, opts);\n } catch (e) {\n }\n\n return supportsPassive;\n }\n\n /**\n * Remove listeners for the Animation Interrupt Event from\n * the Listener Target. Specifying the correct handler prevents\n * memory leaks and makes the allocated memory available for\n * Garbage Collection.\n *\n * @param events List of Interruptive Events to remove\n * @param listenerTarget Target to attach the listener on\n * @param handler Handler for when the listener fires\n * @returns Void\n */\n private removeInterruptiveEventListeners(\n events: string[],\n listenerTarget: ScrollToListenerTarget,\n handler: EventListenerOrEventListenerObject): void {\n\n if (!listenerTarget) {\n listenerTarget = window;\n }\n events.forEach(event => listenerTarget.removeEventListener(event, handler));\n }\n\n /**\n * Find the first scrollable parent Node of a given\n * Element. The DOM Tree gets searched upwards\n * to find this first scrollable parent. Parents might\n * be ignored by CSS styles applied to the HTML Element.\n *\n * @param nativeElement The Element to search the DOM Tree upwards from\n * @returns The first scrollable parent HTML Element\n */\n private getFirstScrollableParent(nativeElement: HTMLElement): HTMLElement {\n\n let style: CSSStyleDeclaration = window.getComputedStyle(nativeElement);\n\n const overflowRegex: RegExp = /(auto|scroll|overlay)/;\n\n if (style.position === 'fixed') {\n return null;\n }\n\n let parent = nativeElement;\n while (parent.parentElement) {\n parent = parent.parentElement;\n style = window.getComputedStyle(parent);\n\n if (style.position === 'absolute'\n || style.overflow === 'hidden'\n || style.overflowY === 'hidden') {\n continue;\n }\n\n if (overflowRegex.test(style.overflow + style.overflowY)\n || parent.tagName === 'BODY') {\n return parent;\n }\n }\n\n return null;\n }\n\n /**\n * Get the Target Node to scroll to.\n *\n * @param id The given ID of the node, either a string or\n * an element reference\n * @param allowBodyTag Indicate whether or not the Document Body is\n * considered a valid Target Node\n * @returns The Target Node to scroll to\n */\n private getNode(id: ScrollToTarget, allowBodyTag: boolean = false): HTMLElement {\n\n let targetNode: HTMLElement;\n\n if (isString(id)) {\n if (allowBodyTag && (id === 'body' || id === 'BODY')) {\n targetNode = this.document.body;\n } else {\n targetNode = this.document.getElementById(stripHash(id));\n }\n } else if (isNumber(id)) {\n targetNode = this.document.getElementById(String(id));\n } else if (isElementRef(id)) {\n targetNode = id.nativeElement;\n } else if (isNativeElement(id)) {\n targetNode = id;\n }\n\n return targetNode;\n }\n\n /**\n * Retrieve the Listener target. This Listener Target is used\n * to attach Event Listeners on. In case of the target being\n * the Document Body, we need the actual `window` to listen\n * for events.\n *\n * @param container The HTML Container element\n * @returns The Listener Target to attach events on\n */\n private getListenerTarget(container: HTMLElement): ScrollToListenerTarget {\n if (!container) {\n return null;\n }\n return this.isDocumentBody(container) ? window : container;\n }\n\n /**\n * Test if a given HTML Element is the Document Body.\n *\n * @param element The given HTML Element\n * @returns Whether or not the Element is the\n * Document Body Element\n */\n private isDocumentBody(element: HTMLElement): element is HTMLBodyElement {\n return element.tagName.toUpperCase() === 'BODY';\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, Renderer2 } from '@angular/core';\n\nimport { DEFAULTS, EVENTS } from './scroll-to-helpers';\nimport { ScrollToConfigOptions, ScrollToOffsetMap, ScrollToTarget } from './scroll-to-config.interface';\nimport { ScrollToAnimationEasing } from './scroll-to-easing.interface';\nimport { ScrollToEvent } from './scroll-to-event.interface';\nimport { ScrollToService } from './scroll-to.service';\n\n@Directive({\n selector: '[ngxScrollTo]'\n})\nexport class ScrollToDirective implements AfterViewInit {\n\n @Input()\n ngxScrollTo: ScrollToTarget = DEFAULTS.target;\n\n @Input()\n ngxScrollToEvent: ScrollToEvent = DEFAULTS.action;\n\n @Input()\n ngxScrollToDuration: number = DEFAULTS.duration;\n\n @Input()\n ngxScrollToEasing: ScrollToAnimationEasing = DEFAULTS.easing;\n\n @Input()\n ngxScrollToOffset: number = DEFAULTS.offset;\n\n @Input()\n ngxScrollToOffsetMap: ScrollToOffsetMap = DEFAULTS.offsetMap;\n\n private options: ScrollToConfigOptions;\n\n constructor(\n private elementRef: ElementRef,\n private scrollToService: ScrollToService,\n private renderer2: Renderer2) {\n }\n\n /**\n * Angular Lifecycle Hook - After View Init\n *\n * @todo Implement Subscription for Events\n *\n * @returns void\n */\n ngAfterViewInit(): void {\n\n // Test Event Support\n if (EVENTS.indexOf(this.ngxScrollToEvent) === -1) {\n throw new Error(`Unsupported Event '${this.ngxScrollToEvent}'`);\n }\n\n // Listen for the trigger...\n this.renderer2.listen(this.elementRef.nativeElement, this.ngxScrollToEvent,\n (event: Event) => {\n\n this.options = {\n target: this.ngxScrollTo,\n duration: this.ngxScrollToDuration,\n easing: this.ngxScrollToEasing,\n offset: this.ngxScrollToOffset,\n offsetMap: this.ngxScrollToOffsetMap\n };\n\n this.scrollToService.scrollTo(this.options);\n });\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ScrollToDirective } from './scroll-to.directive';\nimport { ScrollToService } from './scroll-to.service';\n\n/** Scroll To Module */\n@NgModule({\n declarations: [\n ScrollToDirective\n ],\n exports: [\n ScrollToDirective\n ]\n})\nexport class ScrollToModule {\n\n /**\n * Guaranteed singletons for provided Services across App.\n *\n * @return An Angular Module with Providers\n */\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: ScrollToModule,\n providers: [\n ScrollToService\n ]\n };\n }\n}\n","/*\n * Public API Surface of ngx-scroll-to\n */\n\nexport * from './lib/scroll-to-config.interface';\nexport * from './lib/scroll-to-easing.interface';\nexport * from './lib/scroll-to.directive';\nexport * from './lib/scroll-to.module';\nexport * from './lib/scroll-to.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { Injectable, EventEmitter, Directive, ElementRef, Renderer2, Optional, NgZone, Input, Output, HostBinding, HostListener, isDevMode, Component, ContentChildren, NgModule, TemplateRef, ViewContainerRef, InjectionToken, Inject, ContentChild, ViewChild } from '@angular/core';\nimport { BehaviorSubject, Subject, fromEvent, merge } from 'rxjs';\nimport { Keys, isChanged, isDocumentAvailable, hasObservers, guid } from '@progress/kendo-angular-common';\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { filter } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\nimport { PopupService, PopupModule } from '@progress/kendo-angular-popup';\n\n/**\n * @hidden\n */\nclass KendoButtonService {\n constructor() {\n this.buttonLookChange = new BehaviorSubject('default');\n this.buttonClicked = new Subject();\n this.buttonClicked$ = this.buttonClicked.asObservable();\n }\n click(button) {\n this.buttonClicked.next(button);\n }\n setButtonLook(look) {\n this.buttonLookChange.next(look);\n }\n}\nKendoButtonService.decorators = [\n { type: Injectable },\n];\n\nconst SPAN_TAG_NAME = 'SPAN';\n/**\n * Represents the Kendo UI Button component for Angular.\n */\nclass ButtonDirective {\n constructor(element, renderer, service, localization, ngZone) {\n this.service = service;\n this.ngZone = ngZone;\n /**\n * Provides visual styling that indicates if the Button is active.\n * By default, `toggleable` is set to `false`.\n */\n this.toggleable = false;\n /**\n * Adds visual weight to the Button and makes it primary.\n */\n this.primary = false;\n /**\n * Changes the visual appearance by using alternative styling options\n * ([more information and examples]({% slug appearance_button %})).\n *\n * The available values are:\n * * `flat`\n * * `outline`\n */\n this.look = 'default';\n /**\n * @hidden\n */\n this.role = 'button';\n /**\n * Fires each time the selected state of a toggleable button is changed.\n *\n * The event argument is the new selected state (boolean).\n */\n this.selectedChange = new EventEmitter();\n /**\n * Fires each time the user clicks the button.\n */\n this.click = new EventEmitter();\n this.isDisabled = false;\n this.isIcon = false;\n this.isIconClass = false;\n this._focused = false;\n this.domEvents = [];\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.localizationChangeSubscription = localization.changes\n .subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');\n this.element = element.nativeElement;\n this.renderer = renderer;\n }\n /**\n * Backwards-compatible alias\n *\n * @hidden\n */\n get togglable() {\n return this.toggleable;\n }\n /**\n * @hidden\n */\n set togglable(value) {\n this.toggleable = value;\n }\n /**\n * Sets the selected state of the Button.\n */\n get selected() {\n return this._selected || false;\n }\n set selected(value) {\n this._selected = value;\n }\n /**\n * @hidden\n */\n set tabIndex(index) {\n this.element.tabIndex = index;\n }\n get tabIndex() {\n return this.element.tabIndex;\n }\n /**\n * Defines the name for an existing icon in a Kendo UI theme.\n * The icon is rendered inside the Button by a `span.k-icon` element.\n */\n set icon(icon) {\n if (icon) {\n this.iconSetter(icon, () => {\n this.isIcon = true;\n const classes = 'k-icon k-i-' + icon;\n this.addIcon(classes);\n });\n }\n else {\n this.isIcon = false;\n this.updateIconNode();\n }\n }\n /**\n * Defines a CSS class—or multiple classes separated by spaces—\n * which are applied to a `span` element inside the Button. Allows the usage of custom icons.\n */\n set iconClass(iconClassName) {\n if (iconClassName) {\n this.iconSetter(iconClassName, () => {\n this.isIconClass = true;\n this.addIcon(iconClassName);\n });\n }\n else {\n this.isIconClass = false;\n this.updateIconNode();\n }\n }\n /**\n * Defines a URL which is used for an `img` element inside the Button.\n * The URL can be relative or absolute. If relative, it is evaluated with relation to the web page URL.\n */\n set imageUrl(imageUrl) {\n if (imageUrl) {\n this.iconSetter(imageUrl, this.addImgIcon.bind(this));\n }\n else {\n this.removeImageNode();\n }\n }\n /**\n * If set to `true`, it disables the Button.\n */\n set disabled(disabled) {\n this.isDisabled = disabled;\n this.renderer.setProperty(this.element, 'disabled', disabled);\n }\n get disabled() {\n return this.isDisabled;\n }\n set isFocused(isFocused) {\n this.toggleClass('k-state-focused', isFocused);\n this._focused = isFocused;\n }\n get isFocused() {\n return this._focused;\n }\n get classButton() {\n return true;\n }\n get classPrimary() {\n return this.primary;\n }\n get isFlat() {\n return this.look === 'flat';\n }\n get isBare() {\n return this.look === 'bare';\n }\n get isOutline() {\n return this.look === 'outline';\n }\n get classDisabled() {\n return this.isDisabled;\n }\n get classActive() {\n return this.selected;\n }\n get getDirection() {\n return this.direction;\n }\n /**\n * @hidden\n */\n onFocus() {\n this.isFocused = true;\n }\n /**\n * @hidden\n */\n onBlur() {\n this.isFocused = false;\n }\n ngOnInit() {\n const isSpan = this.element.tagName === SPAN_TAG_NAME;\n if (this.service) {\n this.buttonLookChangeSubscription = this.service.buttonLookChange\n .pipe(filter((look) => look !== 'default'))\n .subscribe((look) => this.look = look);\n }\n if (!this.element.hasAttribute('role') && this.togglable) {\n this.toggleAriaCheckbox(this.toggleable);\n }\n if (this.role) {\n this.setAttribute('role', this.role);\n }\n this.ngZone.runOutsideAngular(() => {\n this.domEvents.push(this.renderer.listen(this.element, 'click', this._onButtonClick.bind(this)));\n this.domEvents.push(this.renderer.listen(this.element, 'keydown', (event) => {\n if (isSpan && (event.keyCode === Keys.Space || event.keyCode === Keys.Enter)) {\n this.click.emit(event);\n this._onButtonClick();\n }\n }));\n });\n }\n ngOnChanges(change) {\n if (isChanged('togglable', change) || isChanged('toggleable', change)) {\n this.toggleAriaCheckbox(this.toggleable);\n }\n }\n ngAfterViewChecked() {\n this.setIconTextClasses();\n }\n ngOnDestroy() {\n this.imageNode = null;\n this.iconNode = null;\n this.renderer = null;\n this.localizationChangeSubscription.unsubscribe();\n if (this.service && this.buttonLookChangeSubscription) {\n this.buttonLookChangeSubscription.unsubscribe();\n }\n clearTimeout(this.deferTimeout);\n this.domEvents.forEach(unbindHandler => unbindHandler());\n }\n /**\n * Focuses the Button component.\n */\n focus() {\n if (isDocumentAvailable()) {\n this.element.focus();\n this.isFocused = true;\n }\n }\n /**\n * Blurs the Button component.\n */\n blur() {\n if (isDocumentAvailable()) {\n this.element.blur();\n this.isFocused = false;\n }\n }\n /**\n * @hidden\n */\n setAttribute(attribute, value) {\n this.renderer.setAttribute(this.element, attribute, value);\n }\n /**\n * @hidden\n */\n removeAttribute(attribute) {\n this.renderer.removeAttribute(this.element, attribute);\n }\n /**\n * @hidden\n *\n * Internal setter that triggers selectedChange\n */\n setSelected(value) {\n const changed = this.selected !== value;\n this.selected = value;\n this.setAttribute('aria-checked', this.selected.toString());\n this.toggleClass('k-state-active', this.selected);\n if (changed && hasObservers(this.selectedChange)) {\n this.ngZone.run(() => {\n this.selectedChange.emit(value);\n });\n }\n }\n toggleAriaCheckbox(shouldSet) {\n if (!isDocumentAvailable()) {\n return;\n }\n if (shouldSet) {\n this.role = 'checkbox';\n this.setAttribute('role', this.role);\n this.setAttribute('aria-checked', this.selected.toString());\n }\n else {\n this.role = 'button';\n this.setAttribute('role', this.role);\n this.removeAttribute('aria-checked');\n }\n }\n hasText() {\n if (isDocumentAvailable()) {\n return String(this.element.textContent).trim().length > 0;\n }\n else {\n return false;\n }\n }\n addImgIcon(imageUrl) {\n let renderer = this.renderer;\n if (this.imageNode) {\n renderer.setProperty(this.imageNode, 'src', imageUrl);\n }\n else if (isDocumentAvailable()) {\n this.imageNode = renderer.createElement('img');\n renderer.setProperty(this.imageNode, 'src', imageUrl);\n renderer.setProperty(this.imageNode, 'className', 'k-image');\n renderer.setAttribute(this.imageNode, 'role', 'presentation');\n this.prependChild(this.imageNode);\n }\n }\n addIcon(classNames) {\n let renderer = this.renderer;\n if (this.iconNode) {\n renderer.setProperty(this.iconNode, 'className', classNames);\n }\n else if (isDocumentAvailable()) {\n this.iconNode = renderer.createElement('span');\n renderer.setProperty(this.iconNode, 'className', classNames);\n renderer.setAttribute(this.iconNode, 'role', 'presentation');\n this.prependChild(this.iconNode);\n }\n }\n prependChild(node) {\n this.defer(() => {\n if (this.renderer && node !== this.element.firstChild) {\n this.renderer.insertBefore(this.element, node, this.element.firstChild);\n }\n });\n }\n defer(callback) {\n this.ngZone.runOutsideAngular(() => {\n this.deferTimeout = setTimeout(callback, 0);\n });\n }\n iconSetter(icon, insertIcon) {\n if (icon) {\n insertIcon(icon);\n }\n this.setIconTextClasses();\n }\n removeImageNode() {\n if (this.imageNode && this.renderer.parentNode(this.imageNode)) {\n this.renderer.removeChild(this.element, this.imageNode);\n this.imageNode = null;\n }\n }\n removeIconNode() {\n if (this.iconNode && this.renderer.parentNode(this.iconNode)) {\n this.renderer.removeChild(this.element, this.iconNode);\n this.iconNode = null;\n }\n }\n updateIconNode() {\n if (!this.isIcon && !this.isIconClass) {\n this.removeIconNode();\n }\n }\n setIconTextClasses() {\n const hasIcon = this.isIcon || this.isIconClass || this.imageNode;\n const hasText = this.hasText();\n this.toggleClass('k-button-icon', hasIcon && !hasText);\n this.toggleClass('k-button-icontext', hasIcon && hasText);\n }\n toggleClass(className, add) {\n if (add) {\n this.renderer.addClass(this.element, className);\n }\n else {\n this.renderer.removeClass(this.element, className);\n }\n }\n _onButtonClick() {\n if (!this.disabled && this.service) {\n this.ngZone.run(() => {\n this.service.click(this);\n });\n }\n if (this.togglable && !this.service) {\n this.setSelected(!this.selected);\n }\n }\n}\nButtonDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'kendoButton',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.button'\n }\n ],\n selector: 'button[kendoButton], span[kendoButton]' // tslint:disable-line\n },] },\n];\n/** @nocollapse */\nButtonDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: KendoButtonService, decorators: [{ type: Optional }] },\n { type: LocalizationService },\n { type: NgZone }\n];\nButtonDirective.propDecorators = {\n toggleable: [{ type: Input }],\n togglable: [{ type: Input }],\n primary: [{ type: Input }],\n look: [{ type: Input }],\n selected: [{ type: Input }],\n tabIndex: [{ type: Input }],\n icon: [{ type: Input }],\n iconClass: [{ type: Input }],\n imageUrl: [{ type: Input }],\n disabled: [{ type: Input }],\n role: [{ type: Input }],\n selectedChange: [{ type: Output }],\n click: [{ type: Output }],\n classButton: [{ type: HostBinding, args: ['class.k-button',] }],\n classPrimary: [{ type: HostBinding, args: ['class.k-primary',] }],\n isFlat: [{ type: HostBinding, args: ['class.k-flat',] }],\n isBare: [{ type: HostBinding, args: ['class.k-bare',] }],\n isOutline: [{ type: HostBinding, args: ['class.k-outline',] }],\n classDisabled: [{ type: HostBinding, args: ['attr.aria-disabled',] }, { type: HostBinding, args: ['class.k-state-disabled',] }],\n classActive: [{ type: HostBinding, args: ['attr.aria-pressed',] }, { type: HostBinding, args: ['class.k-state-active',] }],\n getDirection: [{ type: HostBinding, args: ['attr.dir',] }],\n onFocus: [{ type: HostListener, args: ['focus',] }],\n onBlur: [{ type: HostListener, args: ['blur',] }]\n};\n\n/* tslint:disable:no-null-keyword */\n/* tslint:disable:no-bitwise */\nconst resolvedPromise = Promise.resolve(null);\n/**\n * @hidden\n */\nconst isPresent = (value) => value !== null && value !== undefined;\n/**\n * @hidden\n */\nconst tick = (f) => (resolvedPromise.then(f));\n/**\n * @hidden\n */\nfunction isDocumentNode(container) {\n return container.nodeType === 9;\n}\n/**\n * @hidden\n */\nfunction closest(element, selector) {\n if (element.closest) {\n return element.closest(selector);\n }\n const matches = Element.prototype.matches ?\n (el, sel) => el.matches(sel)\n : (el, sel) => el.msMatchesSelector(sel);\n let node = element;\n while (node && !isDocumentNode(node)) {\n if (matches(node, selector)) {\n return node;\n }\n node = node.parentNode;\n }\n}\n\n/**\n * @hidden\n */\nclass PreventableEvent {\n constructor() {\n this.prevented = false;\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * If the event is prevented by any of its subscribers, returns `true`.\n *\n * @returns `true` if the default action was prevented. Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * @hidden\n */\nconst ariaChecked = 'aria-checked';\n/**\n * @hidden\n */\nconst tabindex = 'tabindex';\n/**\n * Represents the Kendo UI ButtonGroup component for Angular.\n */\nclass ButtonGroupComponent {\n constructor(service, localization, element) {\n this.service = service;\n this.element = element;\n /**\n * By default, the selection mode of the ButtonGroup is set to `multiple`.\n */\n this.selection = 'multiple';\n /**\n * Changes the visual appearance by using alternative styling options\n * ([more information and examples]({% slug styling_buttongroup %})).\n * The `look` property of the ButtonGroup takes precedence over the `look` property\n * of the individual buttons that are part of the group.\n *\n * The available values are:\n * * `flat`\n * * `outline`\n */\n this.look = 'default';\n /**\n * Fires every time keyboard navigation occurs.\n */\n this.navigate = new EventEmitter();\n this._tabIndex = 0;\n this.currentTabIndex = 0;\n this.localizationChangeSubscription = localization.changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');\n }\n /**\n * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n set tabIndex(value) {\n this._tabIndex = value;\n this.currentTabIndex = value;\n }\n get tabIndex() {\n return this._tabIndex;\n }\n get wrapperClass() {\n return true;\n }\n get disabledClass() {\n return this.disabled;\n }\n get stretchedClass() {\n return !!this.width;\n }\n get isFlat() {\n return this.look === 'flat';\n }\n get isBare() {\n return this.look === 'bare';\n }\n get isOutline() {\n return this.look === 'outline';\n }\n get getRole() {\n return this.isSelectionSingle() ? 'radiogroup' : 'group';\n }\n get dir() {\n return this.direction;\n }\n get ariaDisabled() {\n return this.disabled;\n }\n get wrapperWidth() {\n return this.width;\n }\n get wrapperTabIndex() {\n return this.disabled ? undefined : this.currentTabIndex;\n }\n /**\n * @hidden\n */\n keydown(event) {\n if (!this.disabled) {\n this.navigateFocus(event);\n }\n }\n /**\n * @hidden\n */\n onFocus() {\n this.currentTabIndex = -1;\n const focusedIndex = this.buttons.toArray().findIndex(current => current.element.tabIndex !== -1);\n const index = focusedIndex === -1 ? 0 : focusedIndex;\n this.focus(this.buttons.filter((_current, i) => {\n return i === index;\n }));\n }\n /**\n * @hidden\n */\n focusout(event) {\n if (event.relatedTarget && event.relatedTarget.parentNode !== this.element.nativeElement) {\n this.defocus(this.buttons.toArray());\n this.currentTabIndex = this.tabIndex;\n }\n }\n ngOnInit() {\n this.service.setButtonLook(this.look);\n this.subscription = this.service.buttonClicked$.subscribe((button) => {\n let newSelectionValue;\n if (this.isSelectionSingle()) {\n newSelectionValue = true;\n this.deactivate(this.buttons.filter(current => current !== button));\n }\n else {\n this.defocus(this.buttons.toArray());\n newSelectionValue = !button.selected;\n }\n if (button.togglable) {\n button.setSelected(newSelectionValue);\n button.setAttribute(ariaChecked, newSelectionValue.toString());\n }\n button.setAttribute(tabindex, \"0\");\n });\n }\n ngOnChanges(change) {\n if (isChanged('disabled', change)) {\n this.buttons.forEach((button) => {\n if (isPresent(this.disabled)) {\n button.disabled = this.disabled;\n }\n });\n }\n }\n ngAfterContentInit() {\n const isRadioGroup = this.isSelectionSingle();\n const buttonsRole = isRadioGroup ? 'radio' : 'checkbox';\n this.buttons.forEach((button) => {\n if (button.togglable) {\n button.setAttribute(ariaChecked, button.selected.toString());\n button.setAttribute('role', buttonsRole);\n }\n if (button.selected) {\n button.setAttribute(tabindex, \"0\");\n }\n else {\n button.setAttribute(tabindex, \"-1\");\n }\n });\n }\n ngAfterViewChecked() {\n if (this.buttons.length) {\n this.buttons.first.renderer.addClass(this.buttons.first.element, 'k-group-start');\n this.buttons.last.renderer.addClass(this.buttons.last.element, 'k-group-end');\n }\n }\n ngOnDestroy() {\n this.subscription.unsubscribe();\n this.localizationChangeSubscription.unsubscribe();\n }\n ngAfterContentChecked() {\n this.verifySettings();\n }\n navigateFocus(event) {\n let focusedIndex = this.buttons.toArray().findIndex(current => current.element.tabIndex !== -1);\n const firstIndex = 0;\n const lastIndex = this.buttons.length - 1;\n const eventArgs = new PreventableEvent();\n if (event.keyCode === Keys.ArrowRight && focusedIndex < lastIndex) {\n this.navigate.emit(eventArgs);\n if (!eventArgs.isDefaultPrevented()) {\n this.defocus(this.buttons.toArray());\n this.focus(this.buttons.filter((_current, index) => {\n return index === focusedIndex + 1;\n }));\n }\n }\n if (event.keyCode === Keys.ArrowLeft && focusedIndex > firstIndex) {\n this.navigate.emit(eventArgs);\n if (!eventArgs.isDefaultPrevented()) {\n this.defocus(this.buttons.toArray());\n this.focus(this.buttons.filter((_current, index) => {\n return index === focusedIndex - 1;\n }));\n }\n }\n }\n deactivate(buttons) {\n buttons.forEach((button) => {\n button.setSelected(false);\n button.setAttribute(ariaChecked, button.selected.toString());\n button.setAttribute(tabindex, \"-1\");\n });\n }\n activate(buttons) {\n buttons.forEach((button) => {\n button.setSelected(true);\n button.setAttribute(ariaChecked, button.selected.toString());\n button.setAttribute(tabindex, \"0\");\n button.focus();\n });\n }\n defocus(buttons) {\n buttons.forEach((button) => {\n button.setAttribute(tabindex, \"-1\");\n });\n }\n focus(buttons) {\n buttons.forEach((button) => {\n button.setAttribute(tabindex, \"0\");\n button.focus();\n });\n }\n verifySettings() {\n if (isDevMode()) {\n if (this.isSelectionSingle() && this.buttons.filter(button => button.selected).length > 1) {\n throw new Error('Having multiple selected buttons with single selection mode is not supported');\n }\n }\n }\n isSelectionSingle() {\n return this.selection === 'single';\n }\n}\nButtonGroupComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoButtonGroup',\n providers: [\n KendoButtonService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.buttongroup'\n }\n ],\n selector: 'kendo-buttongroup',\n template: `\n \n `\n },] },\n];\n/** @nocollapse */\nButtonGroupComponent.ctorParameters = () => [\n { type: KendoButtonService },\n { type: LocalizationService },\n { type: ElementRef }\n];\nButtonGroupComponent.propDecorators = {\n disabled: [{ type: Input, args: ['disabled',] }],\n selection: [{ type: Input, args: ['selection',] }],\n width: [{ type: Input, args: ['width',] }],\n look: [{ type: Input }],\n tabIndex: [{ type: Input }],\n navigate: [{ type: Output }],\n buttons: [{ type: ContentChildren, args: [ButtonDirective,] }],\n wrapperClass: [{ type: HostBinding, args: ['class.k-button-group',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }],\n stretchedClass: [{ type: HostBinding, args: ['class.k-button-group-stretched',] }],\n isFlat: [{ type: HostBinding, args: ['class.k-button-group-flat',] }],\n isBare: [{ type: HostBinding, args: ['class.k-button-group-bare',] }],\n isOutline: [{ type: HostBinding, args: ['class.k-button-group-outline',] }],\n getRole: [{ type: HostBinding, args: ['attr.role',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n ariaDisabled: [{ type: HostBinding, args: ['attr.aria-disalbed',] }],\n wrapperWidth: [{ type: HostBinding, args: ['style.width',] }],\n wrapperTabIndex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n keydown: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n onFocus: [{ type: HostListener, args: ['focus',] }],\n focusout: [{ type: HostListener, args: ['focusout', ['$event'],] }]\n};\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmodules'] }})\n * definition for the Button directive.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Button module\n * import { ButtonModule } from '@progress/kendo-angular-buttons';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, ButtonModule], // import Button module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass ButtonModule {\n}\nButtonModule.decorators = [\n { type: NgModule, args: [{\n declarations: [ButtonDirective],\n exports: [ButtonDirective]\n },] },\n];\n\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `ButtonGroupComponent`—The ButtonGroupComponent component class.\n */\nclass ButtonGroupModule {\n}\nButtonGroupModule.decorators = [\n { type: NgModule, args: [{\n declarations: [ButtonGroupComponent],\n exports: [ButtonGroupComponent],\n imports: [CommonModule, ButtonModule]\n },] },\n];\n\n/* tslint:disable:directive-selector-name */\n/**\n * Used for rendering the list item content.\n *\n * To define the item template, nest a `` tag with the `kendoItemTemplate` directive inside the component tag.\n *\n * For the DropDownButton, use the `kendoDropDownButtonItemTemplate` directive.\n * For the SplitButton, use the `kendoSplitButtonItemTemplate` directive.\n *\n * The template context is set to the current component. To get a reference to the current data item, use the `let-dataItem` directive.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * {{dataItem}} option\n * \n * \n * \n * \n * {{dataItem}} option\n * \n * \n * `\n * })\n * class AppComponent {\n * public listItems: Array = [{\n * text: 'item1',\n * icon: 'refresh',\n * disabled: false,\n * click: (dataItem: any) => {\n * //action\n * }\n * }, {\n * text: 'item2',\n * icon: 'refresh',\n * disabled: false,\n * click: (dataItem: any) => {\n * //action\n * }\n * }]\n * }\n * ```\n *\n * For more examples, refer to the article on the [DropDownList templates]({% slug overview_ddl %}#templates).\n */\nclass ButtonItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nButtonItemTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]'\n },] },\n];\n/** @nocollapse */\nButtonItemTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * @hidden\n */\nclass ListComponent {\n constructor() {\n this.onItemClick = new EventEmitter();\n this.onItemBlur = new EventEmitter();\n }\n getText(dataItem) {\n if (dataItem) {\n return this.textField ? dataItem[this.textField] : dataItem.text || dataItem;\n }\n return undefined;\n }\n getIconClasses(dataItem) {\n const icon = dataItem.icon ? 'k-icon k-i-' + dataItem.icon : undefined;\n const classes = {};\n classes[icon || dataItem.iconClass] = true;\n return classes;\n }\n onClick(index) {\n this.onItemClick.emit(index);\n }\n onBlur() {\n this.onItemBlur.emit();\n }\n}\nListComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-button-list',\n template: `\n
    \n
  • \n \n \n \n \n \n {{ getText(dataItem) }}\n \n
  • \n
\n `\n },] },\n];\nListComponent.propDecorators = {\n data: [{ type: Input }],\n textField: [{ type: Input }],\n itemTemplate: [{ type: Input }],\n onItemClick: [{ type: Output }],\n onItemBlur: [{ type: Output }]\n};\n\n/**\n * @hidden\n */\nclass FocusService {\n constructor() {\n this.onFocus = new EventEmitter();\n }\n isFocused(index) {\n return index === this.focused;\n }\n focus(index) {\n if (this.isFocused(index)) {\n return;\n }\n this.focused = index;\n this.onFocus.emit(index);\n }\n resetFocus() {\n this.focused = -1;\n }\n get focused() {\n return this.focusedIndex;\n }\n set focused(index) {\n this.focusedIndex = index;\n this.onFocus.emit(index);\n }\n}\nFocusService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nclass FocusableDirective {\n constructor(focusService, elementRef) {\n this.focusService = focusService;\n this.element = elementRef.nativeElement;\n this.subscribeEvents();\n }\n get focusedClassName() {\n return this.focusService.isFocused(this.index);\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this.unsubscribeEvents();\n }\n subscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.focusSubscription = this.focusService.onFocus.subscribe((index) => {\n if (this.index === index) {\n this.element.focus();\n }\n });\n }\n unsubscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n if (this.focusSubscription) {\n this.focusSubscription.unsubscribe();\n }\n }\n}\nFocusableDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoButtonFocusable]'\n },] },\n];\n/** @nocollapse */\nFocusableDirective.ctorParameters = () => [\n { type: FocusService },\n { type: ElementRef }\n];\nFocusableDirective.propDecorators = {\n index: [{ type: Input }],\n focusedClassName: [{ type: HostBinding, args: ['class.k-state-focused',] }]\n};\n\n/**\n * @hidden\n */\nclass TemplateContextDirective {\n constructor(viewContainerRef) {\n this.viewContainerRef = viewContainerRef;\n }\n set templateContext(context) {\n if (this.insertedViewRef) {\n this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.insertedViewRef));\n this.insertedViewRef = undefined;\n }\n if (context.templateRef) {\n this.insertedViewRef = this.viewContainerRef.createEmbeddedView(context.templateRef, context);\n }\n }\n}\nTemplateContextDirective.decorators = [\n { type: Directive, args: [{\n selector: '[templateContext]' // tslint:disable-line:directive-selector\n },] },\n];\n/** @nocollapse */\nTemplateContextDirective.ctorParameters = () => [\n { type: ViewContainerRef }\n];\nTemplateContextDirective.propDecorators = {\n templateContext: [{ type: Input }]\n};\n\nconst EXPORTED_DIRECTIVES = [\n ListComponent,\n FocusableDirective,\n ButtonItemTemplateDirective,\n TemplateContextDirective\n];\n/**\n * @hidden\n */\nclass ListModule {\n}\nListModule.decorators = [\n { type: NgModule, args: [{\n declarations: [EXPORTED_DIRECTIVES],\n exports: [EXPORTED_DIRECTIVES],\n imports: [CommonModule]\n },] },\n];\n\n/**\n * @hidden\n */\nvar KeyEvents;\n(function (KeyEvents) {\n KeyEvents[KeyEvents[\"keydown\"] = 0] = \"keydown\";\n KeyEvents[KeyEvents[\"keypress\"] = 1] = \"keypress\";\n KeyEvents[KeyEvents[\"keyup\"] = 2] = \"keyup\";\n})(KeyEvents || (KeyEvents = {}));\n\n/**\n * @hidden\n */\nvar NavigationAction;\n(function (NavigationAction) {\n NavigationAction[NavigationAction[\"Undefined\"] = 0] = \"Undefined\";\n NavigationAction[NavigationAction[\"Open\"] = 1] = \"Open\";\n NavigationAction[NavigationAction[\"Close\"] = 2] = \"Close\";\n NavigationAction[NavigationAction[\"Enter\"] = 3] = \"Enter\";\n NavigationAction[NavigationAction[\"EnterPress\"] = 4] = \"EnterPress\";\n NavigationAction[NavigationAction[\"EnterUp\"] = 5] = \"EnterUp\";\n NavigationAction[NavigationAction[\"Tab\"] = 6] = \"Tab\";\n NavigationAction[NavigationAction[\"Esc\"] = 7] = \"Esc\";\n NavigationAction[NavigationAction[\"Navigate\"] = 8] = \"Navigate\";\n})(NavigationAction || (NavigationAction = {}));\n\n/* tslint:disable:deprecation */\n/**\n * @hidden\n */\nclass ListButton {\n constructor(focusService, navigationService, wrapperRef, _zone, localization) {\n this.focusService = focusService;\n this.navigationService = navigationService;\n this.wrapperRef = wrapperRef;\n this._zone = _zone;\n this._open = false;\n this._disabled = false;\n this._active = false;\n this._popupSettings = { animate: true, popupClass: '' };\n this.listId = guid();\n this._isFocused = false;\n this.focusService = focusService;\n this.navigationService = navigationService;\n this.wrapper = wrapperRef.nativeElement;\n this.localizationChangeSubscription = localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr'));\n this.subscribeEvents();\n }\n get popupClasses() {\n const popupClasses = ['k-list-container', 'k-reset', 'k-group'];\n if (this._popupSettings.popupClass) {\n popupClasses.push(this._popupSettings.popupClass);\n }\n return popupClasses.join(' ');\n }\n get openState() {\n return this._open;\n }\n set openState(open) {\n this._open = open;\n }\n /**\n * @hidden\n */\n togglePopupVisibility() {\n if (this._disabled) {\n return;\n }\n this.openState = !this.openState;\n if (!this.openState) {\n this.focusService.focus(-1);\n }\n }\n /**\n * @hidden\n */\n onItemClick(index) {\n this.emitItemClickHandler(index);\n setTimeout(() => this.focusWrapper(), 1);\n }\n ngOnDestroy() {\n this.openState = false;\n this.unsubscribeEvents();\n clearTimeout(this.focusFirstTimeout);\n clearTimeout(this.blurTimeout);\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n }\n subscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.subscribeListItemFocusEvent();\n this.subscribeComponentBlurredEvent();\n this.subscribeNavigationEvents();\n }\n subscribeListItemFocusEvent() {\n this.focusSubscription = this.focusService.onFocus.subscribe(() => {\n this._isFocused = true;\n });\n }\n subscribeComponentBlurredEvent() {\n this._zone.runOutsideAngular(() => {\n this.tabSubscription = this.navigationService.tab.pipe(filter(() => this._isFocused)).subscribe(this.handleTab.bind(this));\n this.componentBlurredSubscription = fromEvent(document, 'click')\n .pipe(filter((event) => !this.wrapperContains(event.target)), filter(() => this._isFocused))\n .subscribe(() => this._zone.run(() => this.blurWrapper()));\n });\n }\n subscribeNavigationEvents() {\n this.navigationSubscription = this.navigationService.navigate.subscribe(this.focusService.focus.bind(this.focusService));\n this.enterPressSubscription = this.navigationService.enterpress.subscribe(() => {\n if (!this._disabled && !this._open) {\n this._active = true;\n }\n });\n this.enterUpSubscription = this.navigationService.enterup.subscribe(() => {\n if (!this._open) {\n this._active = false;\n }\n this.enterHandler();\n this.focusWrapper();\n });\n this.openSubscription = this.navigationService.open.subscribe(() => {\n if (!this._open) {\n this.togglePopupVisibility();\n this.focusFirstItem();\n }\n else {\n this.focusWrapper();\n }\n });\n this.closeSubscription = merge(this.navigationService.close, this.navigationService.esc).subscribe(() => this.focusWrapper());\n }\n enterHandler() { } // tslint:disable-line\n unsubscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.unsubscribe(this.componentBlurredSubscription);\n this.unsubscribe(this.focusSubscription);\n this.unsubscribe(this.navigationSubscription);\n this.unsubscribe(this.enterPressSubscription);\n this.unsubscribe(this.enterUpSubscription);\n this.unsubscribe(this.openSubscription);\n this.unsubscribe(this.closeSubscription);\n this.unsubscribe(this.tabSubscription);\n }\n unsubscribe(subscription) {\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n keyDownHandler(event) {\n this.keyHandler(event);\n }\n /**\n * @hidden\n */\n keyPressHandler(event) {\n this.keyHandler(event, KeyEvents.keypress);\n }\n /**\n * @hidden\n */\n keyUpHandler(event) {\n this.keyHandler(event, KeyEvents.keyup);\n }\n /**\n * @hidden\n */\n keyHandler(event, keyEvent) {\n if (this._disabled) {\n return;\n }\n let focused = this.focusService.focused || 0;\n const eventData = event;\n const action = this.navigationService.process({\n altKey: eventData.altKey,\n current: focused,\n keyCode: eventData.keyCode,\n keyEvent: keyEvent,\n max: this._data ? this._data.length - 1 : 0,\n min: 0\n });\n if (action !== NavigationAction.Undefined &&\n action !== NavigationAction.Tab &&\n (action !== NavigationAction.Enter || (action === NavigationAction.Enter && this._open))) {\n eventData.preventDefault();\n }\n }\n emitItemClickHandler(index) {\n const dataItem = this._data[index];\n if (this._itemClick) {\n this._itemClick.emit(dataItem);\n }\n if (dataItem && dataItem.click && !dataItem.disabled) {\n dataItem.click(dataItem);\n }\n }\n focusFirstItem() {\n if (this._data && isPresent(this._data[0])) {\n this.focusFirstTimeout = setTimeout(() => this.focusService.focus(0), 1);\n }\n }\n focusWrapper() {\n if (this._open) {\n this.togglePopupVisibility();\n this.focusButton();\n }\n }\n wrapperContains(element) {\n return this.wrapper === element || this.wrapper.contains(element);\n }\n blurWrapper(emit = true) {\n if (this._open) {\n this.togglePopupVisibility();\n }\n this._isFocused = false;\n if (emit) {\n this._blur.emit();\n }\n }\n focusButton() {\n if (this.button) {\n this.button.nativeElement.focus();\n }\n }\n handleTab() {\n this.focusButton();\n this.blurWrapper(false);\n }\n}\n\n/**\n * @hidden\n */\nconst NAVIGATION_CONFIG = new InjectionToken('navigation.config');\n\n/**\n * @hidden\n */\nclass NavigationService {\n constructor(config) {\n this.navigate = new EventEmitter();\n this.open = new EventEmitter();\n this.close = new EventEmitter();\n this.enter = new EventEmitter();\n this.enterpress = new EventEmitter();\n this.enterup = new EventEmitter();\n this.tab = new EventEmitter();\n this.esc = new EventEmitter();\n this.useLeftRightArrows = config.useLeftRightArrows;\n }\n process(args) {\n const keyCode = args.keyCode;\n const keyEvent = args.keyEvent;\n let index;\n let action = NavigationAction.Undefined;\n if (keyEvent === KeyEvents.keypress) {\n if (this.isEnter(keyCode)) {\n action = NavigationAction.EnterPress;\n }\n }\n else if (keyEvent === KeyEvents.keyup) {\n if (this.isEnter(keyCode)) {\n action = NavigationAction.EnterUp;\n }\n }\n else {\n if (args.altKey && keyCode === Keys.ArrowDown) {\n action = NavigationAction.Open;\n }\n else if (args.altKey && keyCode === Keys.ArrowUp) {\n action = NavigationAction.Close;\n }\n else if (this.isEnter(keyCode)) {\n action = NavigationAction.Enter;\n }\n else if (keyCode === Keys.Escape) {\n action = NavigationAction.Esc;\n }\n else if (keyCode === Keys.Tab) {\n action = NavigationAction.Tab;\n }\n else if (keyCode === Keys.ArrowUp || (this.useLeftRightArrows && keyCode === Keys.ArrowLeft)) {\n index = this.next({\n current: args.current,\n start: args.max,\n end: args.min,\n step: -1\n });\n action = NavigationAction.Navigate;\n }\n else if (keyCode === Keys.ArrowDown || (this.useLeftRightArrows && keyCode === Keys.ArrowRight)) {\n index = this.next({\n current: args.current,\n start: args.min,\n end: args.max,\n step: 1\n });\n action = NavigationAction.Navigate;\n }\n }\n if (action !== NavigationAction.Undefined) {\n this[NavigationAction[action].toLowerCase()].emit(index);\n }\n return action;\n }\n isEnter(keyCode) {\n return keyCode === Keys.Enter || keyCode === Keys.Space;\n }\n next(args) {\n if (!isPresent(args.current)) {\n return args.start;\n }\n else {\n return args.current !== args.end ? args.current + args.step : args.end;\n }\n }\n}\nNavigationService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nNavigationService.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Inject, args: [NAVIGATION_CONFIG,] }] }\n];\n\n/* tslint:disable:no-access-missing-member */\nconst NAVIGATION_SETTINGS = {\n useLeftRightArrows: true\n};\nconst ɵ0 = NAVIGATION_SETTINGS;\nconst NAVIGATION_SETTINGS_PROVIDER = {\n provide: NAVIGATION_CONFIG,\n useValue: ɵ0\n};\n/**\n * Represents the Kendo UI SplitButton component for Angular.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * Paste\n * `\n * })\n *\n * class AppComponent {\n * public data: Array = [{\n * text: 'Keep Text Only',\n * icon: 'paste-plain-text',\n * click: () => { console.log('Keep Text Only click handler'); }\n * }, {\n * text: 'Paste as HTML',\n * icon: 'paste-as-html'\n * }, {\n * text: 'Paste Markdown',\n * icon: 'paste-markdown'\n * }, {\n * text: 'Set Default Paste'\n * }];\n *\n * public onSplitButtonClick(dataItem: any): void {\n * console.log('Paste');\n * }\n *\n * public onSplitButtonItemClick(dataItem: any): void {\n * if (dataItem) {\n * console.log(dataItem.text);\n * }\n * }\n * }\n * ```\n */\nclass SplitButtonComponent extends ListButton {\n constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization) {\n super(focusService, navigationService, wrapperRef, zone, localization);\n this.popupService = popupService;\n this.elRef = elRef;\n /**\n * Sets the text of the SplitButton.\n */\n this.text = '';\n /**\n * Defines an icon to be rendered next to the button text\n * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).\n */\n this.icon = '';\n /**\n * Defines an icon with a custom CSS class to be rendered next to the button text\n * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).\n */\n this.iconClass = '';\n /**\n * Defines the location of an image to be displayed next to the button text\n * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).\n */\n this.imageUrl = '';\n /**\n * Changes the visual appearance by using alternative styling options.\n *\n * The available values are:\n * * `flat`\n * * `outline`\n */\n this.look = 'default';\n /**\n * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n this.tabIndex = 0;\n /**\n * Specifies the name of the [font icon]({% slug icons %}#toc-list-of-font-icons) that will\n * be rendered for the button which opens the popup.\n */\n this.arrowButtonIcon = 'arrow-s';\n /**\n * Fires each time the user clicks the main button.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * Reply\n * \n * `\n * })\n * class AppComponent {\n * public data: Array = ['Reply All', 'Forward', 'Reply & Delete'];\n *\n * public onSplitButtonClick(): void {\n * console.log('SplitButton click');\n * }\n * }\n * ```\n *\n */\n this.buttonClick = new EventEmitter();\n /**\n * Fires each time the user clicks on the drop-down list. The event data contains the data item bound to the clicked list item.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * Reply\n * \n * `\n * })\n * class AppComponent {\n * public data: Array = ['Reply All', 'Forward', 'Reply & Delete'];\n *\n * public onSplitButtonItemClick(dataItem?: string): void {\n * if (dataItem) {\n * console.log(dataItem);\n * }\n * }\n * }\n * ```\n *\n */\n this.itemClick = new EventEmitter();\n /**\n * Fires each time the SplitButton gets focused.\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the SplitButton gets blurred.\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the popup is about to open.\n * This event is preventable. If you cancel the event, the popup will remain closed.\n */\n this.open = new EventEmitter();\n /**\n * Fires each time the popup is about to close.\n * This event is preventable. If you cancel the event, the popup will remain open.\n */\n this.close = new EventEmitter();\n this.listId = guid();\n this.buttonText = '';\n this.lockFocus = false;\n this._itemClick = this.itemClick;\n this._blur = this.onBlur;\n }\n /**\n * When set to `true`, disables a SplitButton item\n * ([see example]({% slug databinding_splitbutton %}#toc-arrays-of-complex-data)).\n */\n set disabled(value) {\n this._disabled = value;\n }\n get disabled() {\n return this._disabled;\n }\n /**\n * Configures the popup of the SplitButton.\n *\n * The available options are:\n * - `animate: Boolean`—Controls the popup animation. By default, the open and close animations are enabled.\n * - `popupClass: String`—Specifies a list of CSS classes that are used to style the popup.\n * - `appendTo: \"root\" | \"component\" | ViewContainerRef`—Specifies the component to which the popup will be appended.\n * - `align: \"left\" | \"center\" | \"right\"`—Specifies the alignment of the popup.\n */\n set popupSettings(settings) {\n this._popupSettings = Object.assign({ animate: true, popupClass: '' }, settings);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * Sets the data of the SplitButton.\n *\n * > The data has to be provided in an array-like list.\n */\n set data(data) {\n this._data = data || [];\n }\n get data() {\n if (!this._data) {\n this.data = [];\n }\n return this._data;\n }\n /**\n * @hidden\n */\n set openState(open) {\n if (this.disabled) {\n return;\n }\n const eventArgs = new PreventableEvent();\n if (open) {\n this.open.emit(eventArgs);\n }\n else {\n this.close.emit(eventArgs);\n }\n if (eventArgs.isDefaultPrevented()) {\n return;\n }\n this._toggle(open);\n }\n /**\n * @hidden\n */\n get openState() {\n return this._open;\n }\n /**\n * @hidden\n */\n get active() {\n return this._active;\n }\n /**\n * @hidden\n */\n get componentTabIndex() {\n return this.disabled ? -1 : this.tabIndex;\n }\n set isFocused(value) {\n this._isFocused = value;\n }\n get isFocused() {\n return this._isFocused && !this._disabled;\n }\n get widgetClasses() {\n return true;\n }\n get dir() {\n return this.direction;\n }\n /**\n * @hidden\n */\n get ariaLabel() {\n return `${this.buttonText} splitbutton`;\n }\n /**\n * @hidden\n */\n onButtonFocus() {\n if (!this.isFocused) {\n this._isFocused = true;\n this.onFocus.emit();\n }\n }\n /**\n * @hidden\n */\n onArrowButtonClick() {\n this.lockFocus = true;\n this.togglePopupVisibility();\n }\n /**\n * @hidden\n */\n onButtonClick() {\n this.lockFocus = true;\n this.buttonClick.emit();\n }\n /**\n * @hidden\n */\n onButtonBlur() {\n if (!this.isOpen && !this.lockFocus) {\n this.blurWrapper();\n }\n this.lockFocus = false;\n }\n /**\n * @hidden\n */\n keydown(event) {\n this.keyDownHandler(event);\n }\n /**\n * @hidden\n */\n keypress(event) {\n this.keyPressHandler(event);\n }\n /**\n * @hidden\n */\n keyup(event) {\n this.keyUpHandler(event);\n }\n /**\n * @hidden\n */\n ngAfterViewInit() {\n this.updateButtonText();\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (changes.hasOwnProperty('text')) {\n this.updateButtonText();\n }\n }\n /**\n * @hidden\n */\n togglePopupVisibility() {\n super.togglePopupVisibility();\n if (isDocumentAvailable() && this.lockFocus) {\n this.button.nativeElement.focus();\n }\n }\n /**\n * @hidden\n */\n wrapperContains(element) {\n return (this.wrapper === element || this.wrapper.contains(element) || (this.popupRef && this.popupRef.popupElement.contains(element)));\n }\n /**\n * @hidden\n */\n get anchorAlign() {\n let align = { horizontal: this.popupSettings.align || 'left', vertical: 'bottom' };\n if (this.direction === 'rtl' && !isPresent(this.popupSettings.align)) {\n align.horizontal = 'right';\n }\n return align;\n }\n /**\n * @hidden\n */\n get popupAlign() {\n let align = { horizontal: this.popupSettings.align || 'left', vertical: 'top' };\n if (this.direction === 'rtl' && !isPresent(this.popupSettings.align)) {\n align.horizontal = 'right';\n }\n return align;\n }\n /**\n * Focuses the SplitButton component.\n */\n focus() {\n if (isDocumentAvailable()) {\n this.button.nativeElement.focus();\n }\n }\n /**\n * Blurs the SplitButton component.\n */\n blur() {\n if (isDocumentAvailable()) {\n this.button.nativeElement.blur();\n this.blurWrapper();\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.destroyPopup();\n }\n /**\n * Toggles the visibility of the popup.\n * If the `toggle` method is used to open or close the popup, the `open` and `close` events will not be fired.\n *\n * @param open - The state of the popup.\n */\n toggle(open) {\n if (this.disabled) {\n return;\n }\n tick(() => this._toggle(open === undefined ? !this._open : open));\n }\n /**\n * Returns the current open state of the popup.\n */\n get isOpen() {\n return this.openState;\n }\n enterHandler() {\n if (this.disabled) {\n return;\n }\n if (this.openState) {\n let focused = this.focusService.focused;\n if (isPresent(focused) && focused !== -1) {\n this.emitItemClickHandler(focused);\n }\n }\n else {\n this.buttonClick.emit();\n }\n }\n updateButtonText() {\n if (isDocumentAvailable()) {\n let innerText = this.wrapper.innerText\n .split('\\n')\n .join('')\n .trim();\n //setTimout is needed because of `Expression has changed after it was checked.` error;\n setTimeout(() => (this.buttonText = innerText), 0);\n }\n }\n get appendTo() {\n const { appendTo } = this.popupSettings;\n if (!appendTo || appendTo === 'root') {\n return undefined;\n }\n return appendTo === 'component' ? this.containerRef : appendTo;\n }\n _toggle(open) {\n this._open = open;\n this.destroyPopup();\n if (this._open) {\n this.createPopup();\n }\n }\n createPopup() {\n this.popupRef = this.popupService.open({\n anchor: this.elRef,\n anchorAlign: this.anchorAlign,\n animate: this.popupSettings.animate,\n appendTo: this.appendTo,\n content: this.popupTemplate,\n popupAlign: this.popupAlign,\n popupClass: this.popupClasses\n });\n this.popupRef.popupAnchorViewportLeave.subscribe(() => (this.openState = false));\n this.popupRef.popupOpen.subscribe(this.focusFirstItem.bind(this));\n }\n destroyPopup() {\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n}\nSplitButtonComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoSplitButton',\n providers: [\n FocusService,\n NavigationService,\n NAVIGATION_SETTINGS_PROVIDER,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.splitbutton'\n }\n ],\n selector: 'kendo-splitbutton',\n template: `\n \n {{ text }}\n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nSplitButtonComponent.ctorParameters = () => [\n { type: FocusService },\n { type: NavigationService },\n { type: ElementRef },\n { type: NgZone },\n { type: PopupService },\n { type: ElementRef },\n { type: LocalizationService }\n];\nSplitButtonComponent.propDecorators = {\n text: [{ type: Input }],\n icon: [{ type: Input }],\n iconClass: [{ type: Input }],\n imageUrl: [{ type: Input }],\n look: [{ type: Input }],\n disabled: [{ type: Input }],\n popupSettings: [{ type: Input }],\n tabIndex: [{ type: Input }],\n textField: [{ type: Input }],\n data: [{ type: Input }],\n buttonClass: [{ type: Input }],\n arrowButtonClass: [{ type: Input }],\n arrowButtonIcon: [{ type: Input }],\n buttonClick: [{ type: Output }],\n itemClick: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n open: [{ type: Output }],\n close: [{ type: Output }],\n itemTemplate: [{ type: ContentChild, args: [ButtonItemTemplateDirective,] }],\n button: [{ type: ViewChild, args: ['button', { static: true },] }],\n arrowButton: [{ type: ViewChild, args: ['arrowButton', { static: true, read: ElementRef },] }],\n popupTemplate: [{ type: ViewChild, args: ['popupTemplate', { static: true },] }],\n containerRef: [{ type: ViewChild, args: ['container', { read: ViewContainerRef, static: true },] }],\n isFocused: [{ type: HostBinding, args: ['class.k-state-focused',] }],\n widgetClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-split-button',] }, { type: HostBinding, args: ['class.k-button-group',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n keydown: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n keypress: [{ type: HostListener, args: ['keypress', ['$event'],] }],\n keyup: [{ type: HostListener, args: ['keyup', ['$event'],] }]\n};\n\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `SplitButtonComponent`—The SplitButtonComponent component class.\n */\nclass SplitButtonModule {\n}\nSplitButtonModule.decorators = [\n { type: NgModule, args: [{\n declarations: [SplitButtonComponent],\n exports: [SplitButtonComponent, ListModule],\n imports: [CommonModule, PopupModule, ButtonModule, ListModule]\n },] },\n];\n\n/* tslint:disable:no-access-missing-member */\nconst NAVIGATION_SETTINGS$1 = {\n useLeftRightArrows: true\n};\nconst ɵ0$1 = NAVIGATION_SETTINGS$1;\nconst NAVIGATION_SETTINGS_PROVIDER$1 = {\n provide: NAVIGATION_CONFIG,\n useValue: ɵ0$1\n};\n/**\n * Represents the Kendo UI DropDownButton component for Angular.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * User Settings\n * \n * `\n * })\n * class AppComponent {\n * public data: Array = [{\n * text: 'My Profile'\n * }, {\n * text: 'Friend Requests'\n * }, {\n * text: 'Account Settings'\n * }, {\n * text: 'Support'\n * }, {\n * text: 'Log Out'\n * }];\n * }\n * ```\n */\nclass DropDownButtonComponent extends ListButton {\n constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization) {\n super(focusService, navigationService, wrapperRef, zone, localization);\n this.popupService = popupService;\n this.elRef = elRef;\n /**\n * Defines the name of an existing icon in a Kendo UI theme.\n */\n this.icon = '';\n /**\n * Defines the list of CSS classes which are used for styling the Button with custom icons.\n */\n this.iconClass = '';\n /**\n * Defines a URL for styling the button with a custom image.\n */\n this.imageUrl = '';\n /**\n * Adds visual weight to the default button and makes it primary.\n */\n this.primary = false;\n /**\n * Changes the visual appearance by using alternative styling options.\n *\n * The available values are:\n * * `flat`\n * * `outline`\n */\n this.look = 'default';\n /**\n * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n this.tabIndex = 0;\n /**\n * Fires each time the user clicks on a drop-down list item. The event data contains the data item bound to the clicked list item.\n */\n this.itemClick = new EventEmitter();\n /**\n * Fires each time the popup is about to open.\n * This event is preventable. If you cancel the event, the popup will remain closed.\n */\n this.open = new EventEmitter();\n /**\n * Fires each time the popup is about to close.\n * This event is preventable. If you cancel the event, the popup will remain open.\n */\n this.close = new EventEmitter();\n /**\n * Fires each time the DropDownButton gets focused.\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the DropDownButton gets blurred.\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n this.listId = guid();\n this._itemClick = this.itemClick;\n this._blur = this.onBlur;\n }\n /**\n * Configures the popup of the DropDownButton.\n *\n * The available options are:\n * - `animate: Boolean`—Controls the popup animation. By default, the open and close animations are enabled.\n * - `popupClass: String`—Specifies a list of CSS classes that are used to style the popup.\n * - `appendTo: \"root\" | \"component\" | ViewContainerRef`—Specifies the component to which the popup will be appended.\n * - `align: \"left\" | \"center\" | \"right\"`—Specifies the alignment of the popup.\n */\n set popupSettings(settings) {\n this._popupSettings = Object.assign({ animate: true, popupClass: '' }, settings);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * Sets the disabled state of the DropDownButton.\n */\n set disabled(value) {\n if (value && this.openState) {\n this.openState = false;\n }\n this._disabled = value;\n }\n get disabled() {\n return this._disabled;\n }\n /**\n * Sets or gets the data of the DropDownButton.\n *\n * > The data has to be provided in an array-like list.\n */\n set data(data) {\n this._data = data || [];\n }\n get data() {\n return this._data;\n }\n /**\n * @hidden\n */\n set openState(open) {\n if (this.disabled) {\n return;\n }\n const eventArgs = new PreventableEvent();\n if (open) {\n this.open.emit(eventArgs);\n }\n else {\n this.close.emit(eventArgs);\n }\n if (eventArgs.isDefaultPrevented()) {\n return;\n }\n this._toggle(open);\n }\n /**\n * @hidden\n */\n get openState() {\n return this._open;\n }\n /**\n * @hidden\n */\n get componentTabIndex() {\n return this.disabled ? (-1) : this.tabIndex;\n }\n get appendTo() {\n const { appendTo } = this.popupSettings;\n if (!appendTo || appendTo === 'root') {\n return undefined;\n }\n return appendTo === 'component' ? this.container : appendTo;\n }\n get focused() {\n return this._isFocused && !this._disabled;\n }\n get widgetClasses() {\n return true;\n }\n get dir() {\n return this.direction;\n }\n /**\n * @hidden\n */\n get active() {\n return this._active;\n }\n /**\n * @hidden\n */\n keydown(event) {\n this.keyDownHandler(event);\n }\n /**\n * @hidden\n */\n keypress(event) {\n this.keyPressHandler(event);\n }\n /**\n * @hidden\n */\n keyup(event) {\n this.keyUpHandler(event);\n }\n /**\n * @hidden\n */\n mousedown(event) {\n if (this._disabled) {\n event.preventDefault();\n }\n }\n /**\n * @hidden\n */\n openPopup() {\n this.togglePopupVisibility();\n }\n /**\n * @hidden\n */\n onButtonBlur() {\n if (!this.isOpen) {\n this.blurWrapper();\n }\n }\n /**\n * @hidden\n */\n get anchorAlign() {\n let align = { horizontal: this.popupSettings.align || 'left', vertical: 'bottom' };\n if (this.direction === 'rtl' && !isPresent(this.popupSettings.align)) {\n align.horizontal = 'right';\n }\n return align;\n }\n /**\n * @hidden\n */\n get popupAlign() {\n let align = { horizontal: this.popupSettings.align || 'left', vertical: 'top' };\n if (this.direction === 'rtl' && !isPresent(this.popupSettings.align)) {\n align.horizontal = 'right';\n }\n return align;\n }\n /**\n * Focuses the DropDownButton component.\n */\n focus() {\n if (isDocumentAvailable()) {\n this.button.nativeElement.focus();\n }\n }\n /**\n * Blurs the DropDownButton component.\n */\n blur() {\n if (isDocumentAvailable()) {\n this.button.nativeElement.blur();\n this.blurWrapper();\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.destroyPopup();\n }\n /**\n * Toggles the visibility of the popup.\n * If the `toggle` method is used to open or close the popup, the `open` and `close` events will not be fired.\n *\n * @param open - The state of the popup.\n */\n toggle(open) {\n if (this.disabled) {\n return;\n }\n tick(() => (this._toggle((open === undefined) ? !this._open : open)));\n }\n /**\n * Returns the current open state of the popup.\n */\n get isOpen() {\n return this.openState;\n }\n /**\n * @hidden\n */\n handleFocus() {\n if (!this._disabled && !this._isFocused) {\n this._isFocused = true;\n this.onFocus.emit();\n }\n }\n /**\n * @hidden\n */\n wrapperContains(element) {\n return this.wrapper === element\n || this.wrapper.contains(element)\n || (this.popupRef && this.popupRef.popupElement.contains(element));\n }\n subscribeNavigationEvents() {\n this.navigationSubscription = this.navigationService.navigate\n .subscribe(this.onArrowKeyNavigate.bind(this));\n this.enterPressSubscription = this.navigationService.enterpress.subscribe(this.onNavigationEnterPress.bind(this));\n this.enterUpSubscription = this.navigationService.enterup.subscribe(this.onNavigationEnterUp.bind(this));\n this.openSubscription = this.navigationService.open.subscribe(this.onNavigationOpen.bind(this));\n this.closeSubscription = merge(this.navigationService.close, this.navigationService.esc).subscribe(this.onNavigationClose.bind(this));\n }\n onNavigationEnterPress() {\n if (!this._disabled && !this.openState) {\n this._active = true;\n }\n }\n onNavigationEnterUp() {\n if (!this._disabled && !this.openState) {\n this._active = false;\n }\n if (this.openState) {\n let focused = this.focusService.focused;\n if (isPresent(focused) && focused !== -1) {\n this.emitItemClickHandler(focused);\n }\n }\n this.togglePopupVisibility();\n if (!this.openState && isDocumentAvailable()) {\n this.button.nativeElement.focus();\n }\n }\n onNavigationOpen() {\n if (!this._disabled && !this.openState) {\n this.togglePopupVisibility();\n }\n }\n onNavigationClose() {\n if (this.openState) {\n this.togglePopupVisibility();\n if (isDocumentAvailable()) {\n this.button.nativeElement.focus();\n }\n }\n }\n onArrowKeyNavigate(index) {\n this.focusService.focus(index);\n }\n _toggle(open) {\n if (this._open === open) {\n return;\n }\n this._open = open;\n this.destroyPopup();\n if (this._open) {\n this.createPopup();\n }\n }\n createPopup() {\n this.popupRef = this.popupService.open({\n anchor: this.elRef,\n anchorAlign: this.anchorAlign,\n animate: this.popupSettings.animate,\n appendTo: this.appendTo,\n content: this.popupTemplate,\n popupAlign: this.popupAlign,\n popupClass: this.popupClasses\n });\n this.popupRef.popupAnchorViewportLeave.subscribe(() => this.openState = false);\n this.popupRef.popupOpen.subscribe(this.focusFirstItem.bind(this));\n }\n destroyPopup() {\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n}\nDropDownButtonComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoDropDownButton',\n providers: [\n FocusService,\n NavigationService,\n NAVIGATION_SETTINGS_PROVIDER$1,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.dropdownbutton'\n }\n ],\n selector: 'kendo-dropdownbutton',\n template: `\n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nDropDownButtonComponent.ctorParameters = () => [\n { type: FocusService },\n { type: NavigationService },\n { type: ElementRef },\n { type: NgZone },\n { type: PopupService },\n { type: ElementRef },\n { type: LocalizationService }\n];\nDropDownButtonComponent.propDecorators = {\n icon: [{ type: Input }],\n iconClass: [{ type: Input }],\n imageUrl: [{ type: Input }],\n popupSettings: [{ type: Input }],\n textField: [{ type: Input }],\n disabled: [{ type: Input }],\n data: [{ type: Input }],\n primary: [{ type: Input }],\n look: [{ type: Input }],\n buttonClass: [{ type: Input }],\n tabIndex: [{ type: Input }],\n itemClick: [{ type: Output }],\n open: [{ type: Output }],\n close: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n focused: [{ type: HostBinding, args: ['class.k-state-focused',] }],\n widgetClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-dropdown-button',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n itemTemplate: [{ type: ContentChild, args: [ButtonItemTemplateDirective,] }],\n button: [{ type: ViewChild, args: ['button', { static: true },] }],\n buttonList: [{ type: ViewChild, args: ['buttonList', { static: true },] }],\n popupTemplate: [{ type: ViewChild, args: ['popupTemplate', { static: true },] }],\n container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef, static: true },] }],\n keydown: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n keypress: [{ type: HostListener, args: ['keypress', ['$event'],] }],\n keyup: [{ type: HostListener, args: ['keyup', ['$event'],] }],\n mousedown: [{ type: HostListener, args: ['mousedown', ['$event'],] }]\n};\n\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `DropDownButtonComponent`—The DropDownButtonComponent component class.\n */\nclass DropDownButtonModule {\n}\nDropDownButtonModule.decorators = [\n { type: NgModule, args: [{\n declarations: [DropDownButtonComponent],\n exports: [DropDownButtonComponent, ListModule],\n imports: [CommonModule, PopupModule, ListModule, ButtonModule]\n },] },\n];\n\n/**\n * Displays a Chip that represents an input, attribute or an action.\n */\nclass ChipComponent {\n constructor(element, renderer, localizationService) {\n this.element = element;\n this.renderer = renderer;\n this.localizationService = localizationService;\n /**\n * Changes the visual appearance by using alternative styling options.\n *\n * The available values are:\n * * `filled`\n * * `outlined`\n */\n this.look = 'filled';\n /**\n * Specifies the selected state of the Chip.\n */\n this.selected = false;\n /**\n * Specifies if the Chip will be removable or not.\n * If the property is set to `true`, the Chip renders a remove icon.\n */\n this.removable = false;\n /**\n * Specifies the Chip type.\n *\n * The possible values are:\n * - `none` (default)\n * - `success`\n * - `error`\n * - `warning`\n * - `info`\n */\n this.type = 'none';\n /**\n * If set to `true`, the Chip will be disabled.\n */\n this.disabled = false;\n /**\n * Fires each time the user clicks the remove icon of the Chip.\n */\n this.remove = new EventEmitter();\n this.tabIndex = 0;\n this.hostClass = true;\n this.focused = false;\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n }\n get outlineClass() {\n return this.look === 'outlined';\n }\n get filledClass() {\n return this.look === 'filled';\n }\n get hasIconClass() {\n return this.icon || this.iconClass ? true : false;\n }\n get disabledClass() {\n return this.disabled;\n }\n get selectedClass() {\n return this.selected;\n }\n get focusedClass() {\n return this.focused;\n }\n /**\n * @hidden\n */\n onFocus() {\n this.focused = true;\n }\n /**\n * @hidden\n */\n onBlur() {\n this.focused = false;\n }\n ngOnInit() {\n this.dynamicRTLSubscription = this.localizationService.changes\n .subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');\n }\n ngOnDestroy() {\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n ngAfterViewInit() {\n const chip = this.element.nativeElement;\n const typeClass = this.typeClass();\n if (this.type !== 'none') {\n this.renderer.addClass(chip, typeClass);\n }\n }\n /**\n * @hidden\n */\n get iconClasses() {\n if (this.icon) {\n return `k-icon k-i-${this.icon}`;\n }\n if (this.iconClass) {\n return `${this.iconClass}`;\n }\n }\n /**\n * @hidden\n */\n get selectedIconClasses() {\n if (this.selectedIcon) {\n return `${this.selectedIcon}`;\n }\n return `k-icon k-i-check`;\n }\n /**\n * @hidden\n */\n get removeIconClasses() {\n if (this.removeIcon) {\n return `${this.removeIcon}`;\n }\n return `k-icon k-i-close-circle`;\n }\n /**\n * @hidden\n */\n typeClass() {\n return {\n 'none': '',\n 'success': 'k-chip-success',\n 'warning': 'k-chip-warning',\n 'error': 'k-chip-error',\n 'info': 'k-chip-info'\n }[this.type];\n }\n /**\n * Focuses the Chip component.\n */\n focus() {\n if (isDocumentAvailable()) {\n this.element.nativeElement.focus();\n this.focused = true;\n }\n }\n /**\n * Blurs the Chip component.\n */\n blur() {\n if (isDocumentAvailable()) {\n this.element.nativeElement.blur();\n this.focused = false;\n }\n }\n /**\n * @hidden\n */\n onRemoveClick(e) {\n if (this.removable) {\n this.remove.emit({ sender: this, originalEvent: e });\n }\n }\n}\nChipComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-chip',\n template: `\n \n \n \n \n\n \n \n\n \n \n {{ label }}\n \n \n \n\n \n \n \n `,\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chip'\n }\n ]\n },] },\n];\n/** @nocollapse */\nChipComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: LocalizationService }\n];\nChipComponent.propDecorators = {\n look: [{ type: Input }],\n label: [{ type: Input }],\n icon: [{ type: Input }],\n iconClass: [{ type: Input }],\n selected: [{ type: Input }],\n selectedIcon: [{ type: Input }],\n removable: [{ type: Input }],\n removeIcon: [{ type: Input }],\n type: [{ type: Input }],\n disabled: [{ type: Input }],\n remove: [{ type: Output }],\n tabIndex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n hostClass: [{ type: HostBinding, args: ['class.k-chip',] }],\n outlineClass: [{ type: HostBinding, args: ['class.k-chip-outline',] }],\n filledClass: [{ type: HostBinding, args: ['class.k-chip-filled',] }],\n hasIconClass: [{ type: HostBinding, args: ['class.k-chip-has-icon',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-chip-disabled',] }],\n selectedClass: [{ type: HostBinding, args: ['class.k-chip-selected',] }],\n focusedClass: [{ type: HostBinding, args: ['class.k-chip-focused',] }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n onFocus: [{ type: HostListener, args: ['focus',] }],\n onBlur: [{ type: HostListener, args: ['blur',] }]\n};\n\nclass ChipListComponent {\n constructor(localizationService) {\n this.localizationService = localizationService;\n this.hostClass = true;\n /**\n * Sets the selection mode of the ChipList.\n *\n * The available values are:\n * * `none` (default)\n * * `single`\n * * `multiple`\n */\n this.selection = 'none';\n /**\n * Fires each time when the ChipList selection is changed.\n */\n this.selectedChange = new EventEmitter();\n /**\n * Fires each time the user clicks on the remove icon of the Chip.\n */\n this.remove = new EventEmitter();\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n }\n get single() {\n return this.selection === 'single';\n }\n get multiple() {\n return this.selection === 'multiple';\n }\n /**\n * @hidden\n */\n onClick($event) {\n const target = $event.target;\n const isRemoveClicked = closest(target, '.k-remove-icon');\n const clickedChip = closest(target, '.k-chip');\n const chip = this.chips.find((chip) => clickedChip === chip.element.nativeElement);\n if (isRemoveClicked && clickedChip) {\n const removeEventArgs = { sender: this, originalEvent: $event, removedChip: chip };\n this.remove.emit(removeEventArgs);\n }\n if (this.selection !== 'none' && clickedChip && !isRemoveClicked) {\n this.setSelection(chip);\n }\n }\n ngOnInit() {\n this.dynamicRTLSubscription = this.localizationService.changes\n .subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');\n }\n ngOnDestroy() {\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n selectedChips() {\n return this.chips.reduce((acc, cur, idx) => { return cur.selected ? acc.concat(idx) : acc; }, []);\n }\n /**\n * Updates the selection on click of a Chip. Emits events.\n */\n setSelection(chip) {\n if (this.selection === 'single') {\n this.clearSelection(chip);\n }\n chip.selected = !chip.selected;\n this.selectedChange.emit(this.selectedChips());\n }\n clearSelection(chip) {\n this.chips.forEach((c) => {\n if (chip !== c) {\n c.selected = false;\n }\n });\n }\n}\nChipListComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-chip-list',\n template: `\n \n `,\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chip-list'\n }\n ]\n },] },\n];\n/** @nocollapse */\nChipListComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nChipListComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-chip-list',] }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n selection: [{ type: Input }],\n selectedChange: [{ type: Output }],\n remove: [{ type: Output }],\n chips: [{ type: ContentChildren, args: [ChipComponent,] }],\n single: [{ type: HostBinding, args: ['class.k-selection-single',] }],\n multiple: [{ type: HostBinding, args: ['class.k-selection-multiple',] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }]\n};\n\nconst exportedModules = [\n ChipComponent,\n ChipListComponent\n];\nconst declarations = [\n ...exportedModules\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Chip and ChipList components.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Chip module\n * import { ChipModule } from '@progress/kendo-angular-buttons';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, ChipModule], // import Chip module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * ```\n */\nclass ChipModule {\n}\nChipModule.decorators = [\n { type: NgModule, args: [{\n declarations: [declarations],\n exports: [exportedModules],\n imports: [CommonModule]\n },] },\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmodules'] }})\n * definition for the Buttons components.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Buttons module\n * import { ButtonsModule } from '@progress/kendo-angular-buttons';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, ButtonsModule], // import Buttons module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass ButtonsModule {\n}\nButtonsModule.decorators = [\n { type: NgModule, args: [{\n exports: [ButtonGroupModule, ButtonModule, SplitButtonModule, DropDownButtonModule, ChipModule]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { KendoButtonService, FocusService, FocusableDirective, ButtonItemTemplateDirective, ListButton, ListComponent, ListModule, TemplateContextDirective, NAVIGATION_CONFIG, NavigationService, ButtonDirective, ButtonDirective as Button, ButtonGroupComponent, ButtonGroupComponent as ButtonGroup, ButtonGroupModule, ButtonModule, ButtonsModule, SplitButtonComponent, SplitButtonComponent as SplitButton, SplitButtonModule, DropDownButtonComponent, DropDownButtonComponent as DropDownButton, DropDownButtonModule, ChipComponent, ChipListComponent, ChipModule };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { EventEmitter, Directive, ElementRef, NgZone, Input, Output, NgModule, Renderer2, Injectable, Component } from '@angular/core';\nimport Draggable from '@telerik/kendo-draggable';\nimport { CommonModule } from '@angular/common';\nimport { auditTime } from 'rxjs/operators';\nimport { merge, fromEvent, from } from 'rxjs';\n\nconst isDocumentAvailable = () => typeof document !== 'undefined';\n\nconst isChanged = (propertyName, changes, skipFirstChange = true) => (typeof changes[propertyName] !== 'undefined' &&\n (!changes[propertyName].isFirstChange() || !skipFirstChange) &&\n changes[propertyName].previousValue !== changes[propertyName].currentValue);\n\nconst anyChanged = (propertyNames, changes, skipFirstChange = true) => propertyNames.some(name => isChanged(name, changes, skipFirstChange));\n\nconst hasObservers = (emitter) => emitter && emitter.observers.length > 0;\n\nconst guid = () => {\n let id = \"\";\n for (let i = 0; i < 32; i++) {\n const random = Math.random() * 16 | 0; // tslint:disable-line:no-bitwise\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += \"-\";\n }\n // tslint:disable-next-line:no-bitwise\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\n\nclass DraggableDirective {\n constructor(element, ngZone) {\n this.element = element;\n this.ngZone = ngZone;\n this.enableDrag = true;\n this.kendoPress = new EventEmitter();\n this.kendoDrag = new EventEmitter();\n this.kendoRelease = new EventEmitter();\n }\n ngOnInit() {\n this.toggleDraggable();\n }\n ngOnChanges(changes) {\n if (isChanged('enableDrag', changes)) {\n this.toggleDraggable();\n }\n }\n ngOnDestroy() {\n this.destroyDraggable();\n }\n toggleDraggable() {\n if (isDocumentAvailable()) {\n this.destroyDraggable();\n if (this.enableDrag) {\n this.draggable = new Draggable({\n drag: (e) => this.kendoDrag.next(e),\n press: (e) => this.kendoPress.next(e),\n release: (e) => this.kendoRelease.next(e)\n });\n this.ngZone.runOutsideAngular(() => this.draggable.bindTo(this.element.nativeElement));\n }\n }\n }\n destroyDraggable() {\n if (this.draggable) {\n this.draggable.destroy();\n this.draggable = null;\n }\n }\n}\nDraggableDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDraggable]'\n },] },\n];\n/** @nocollapse */\nDraggableDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone }\n];\nDraggableDirective.propDecorators = {\n enableDrag: [{ type: Input }],\n kendoPress: [{ type: Output }],\n kendoDrag: [{ type: Output }],\n kendoRelease: [{ type: Output }]\n};\n\n/**\n * @hidden\n */\nclass DraggableModule {\n}\nDraggableModule.decorators = [\n { type: NgModule, args: [{\n declarations: [DraggableDirective],\n exports: [DraggableDirective],\n imports: [CommonModule]\n },] },\n];\n\n/* tslint:disable:no-input-rename */\n/**\n * @hidden\n */\nclass EventsOutsideAngularDirective {\n constructor(element, ngZone, renderer) {\n this.element = element;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.events = {};\n }\n ngOnInit() {\n if (!this.element || !this.element.nativeElement) {\n return;\n }\n const events = this.events;\n this.subscriptions = [];\n this.ngZone.runOutsideAngular(() => {\n for (let name in events) {\n if (events.hasOwnProperty(name)) {\n this.subscriptions.push(this.renderer.listen(this.element.nativeElement, name, this.scope ? events[name].bind(this.scope) : events[name]));\n }\n }\n });\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n for (let idx = 0; idx < this.subscriptions.length; idx++) {\n this.subscriptions[idx]();\n }\n this.subscriptions = null;\n }\n }\n}\nEventsOutsideAngularDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoEventsOutsideAngular]'\n },] },\n];\n/** @nocollapse */\nEventsOutsideAngularDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone },\n { type: Renderer2 }\n];\nEventsOutsideAngularDirective.propDecorators = {\n events: [{ type: Input, args: ['kendoEventsOutsideAngular',] }],\n scope: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass EventsModule {\n}\nEventsModule.decorators = [\n { type: NgModule, args: [{\n declarations: [EventsOutsideAngularDirective],\n exports: [EventsOutsideAngularDirective]\n },] },\n];\n\nclass ResizeService {\n constructor(resizeBatchService) {\n this.resizeBatchService = resizeBatchService;\n this.resize = new EventEmitter();\n this.acceptedSize = false;\n this.state = 0 /* Initial */;\n }\n acceptSize(size = this.measure()) {\n this.lastWidth = size.width;\n this.lastHeight = size.height;\n this.acceptedSize = true;\n }\n checkChanges() {\n if (!isDocumentAvailable()) {\n return;\n }\n if (this.state === 0 /* Initial */) {\n this.state = 1 /* Initializing */;\n // batch initial measure\n this.resizeBatchService.schedule(this, this.init);\n }\n }\n destroy() {\n this.resizeBatchService.cancel(this);\n }\n checkSize() {\n if (!this.parentElement) {\n return;\n }\n const { width, height } = this.measure();\n const sameSize = width === this.lastWidth && height === this.lastHeight;\n if (sameSize) {\n return;\n }\n this.lastWidth = width;\n this.lastHeight = height;\n this.acceptedSize = false;\n this.resize.emit();\n return true;\n }\n initSize() {\n const size = this.measure();\n this.lastWidth = size.width;\n this.lastHeight = size.height;\n }\n measure() {\n let width = 0;\n let height = 0;\n if (this.parentElement) {\n height = this.parentElement.offsetHeight;\n width = this.parentElement.offsetWidth;\n }\n return { height, width };\n }\n}\n\n// tslint:disable:deprecation\nconst div = style => {\n const el = document.createElement('div');\n el.style.cssText = style;\n return el;\n};\nconst computedProp = (elem, prop) => getComputedStyle(elem, null).getPropertyValue(prop);\nconst WRAP_STYLE = 'position: absolute; display: block; left: 0; top: 0; right: 0; bottom: 0; z-index: -1;' +\n 'overflow: hidden; visibility: hidden;';\nconst EXPAND_CHILD_STYLE = 'position: absolute; left: 0; top: 0; transition: 0s;';\nconst SHRINK_CHILD_STYLE = EXPAND_CHILD_STYLE + 'width: 200%; height: 200%;';\nclass ResizeCompatService extends ResizeService {\n constructor(resizeBatchService, element, ngZone) {\n super(resizeBatchService);\n this.element = element;\n this.ngZone = ngZone;\n }\n checkChanges() {\n if (this.state === 2 /* Initialized */) {\n if (!this.resizeBatchService.isScheduled(this)) {\n this.resizeBatchService.schedule(this, this.checkSize);\n }\n return;\n }\n super.checkChanges();\n }\n destroy() {\n super.destroy();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n if (this.expand) {\n const element = this.element.nativeElement;\n element.removeChild(this.expand);\n element.removeChild(this.shrink);\n this.expand.removeChild(this.expandChild);\n this.expand = this.expandChild = this.shrink = this.element = null;\n }\n }\n checkSize() {\n if (super.checkSize()) {\n this.reset();\n return true;\n }\n }\n init() {\n const parentElement = this.parentElement = this.element.nativeElement.parentElement;\n if (computedProp(parentElement, 'position') === 'static') {\n parentElement.style.position = 'relative';\n }\n this.state = 2 /* Initialized */;\n this.render();\n this.reset();\n this.initSize();\n this.subscribe();\n }\n render() {\n const element = this.element.nativeElement;\n element.style.cssText = WRAP_STYLE;\n element.setAttribute('dir', 'ltr');\n this.expand = div(WRAP_STYLE);\n this.expandChild = div(EXPAND_CHILD_STYLE);\n this.expand.appendChild(this.expandChild);\n element.appendChild(this.expand);\n this.shrink = div(WRAP_STYLE);\n const shrinkChild = div(SHRINK_CHILD_STYLE);\n this.shrink.appendChild(shrinkChild);\n element.appendChild(this.shrink);\n }\n reset() {\n const expandChild = this.expandChild;\n expandChild.style.width = 100000 + 'px';\n expandChild.style.height = 100000 + 'px';\n const expand = this.expand;\n expand.scrollLeft = 100000;\n expand.scrollTop = 100000;\n const shrink = this.shrink;\n shrink.scrollLeft = 100000;\n shrink.scrollTop = 100000;\n }\n subscribe() {\n this.ngZone.runOutsideAngular(() => {\n this.subscription = merge(fromEvent(this.shrink, 'scroll'), fromEvent(this.expand, 'scroll'))\n .subscribe(() => {\n this.checkSize();\n });\n });\n }\n}\n\nconst HAS_OBSERVER = typeof ResizeObserver !== 'undefined';\n/**\n * @hidden\n */\nclass ResizeObserverService extends ResizeService {\n constructor(resizeBatchService, element, ngZone) {\n super(resizeBatchService);\n this.element = element;\n this.ngZone = ngZone;\n }\n static supported() {\n return HAS_OBSERVER;\n }\n destroy() {\n super.destroy();\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n this.parentElement = null;\n }\n init() {\n this.parentElement = this.element.nativeElement.parentElement;\n this.initSize();\n this.state = 2 /* Initialized */;\n this.ngZone.runOutsideAngular(() => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkSize();\n });\n this.resizeObserver.observe(this.parentElement);\n });\n }\n}\n\n/* tslint:disable:align */\n/**\n * @hidden\n */\nclass ResizeBatchService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.scheduled = [];\n this.resolvedPromise = Promise.resolve(null);\n this.flush = this.flush.bind(this);\n }\n schedule(instance, method) {\n this.scheduled.push({ instance, method });\n if (!this.subscription) {\n this.ngZone.runOutsideAngular(() => {\n this.subscription = from(this.resolvedPromise)\n .subscribe(this.flush);\n });\n }\n }\n isScheduled(instance) {\n return Boolean(this.scheduled.find(item => item.instance === instance));\n }\n cancel(instance) {\n const scheduled = this.scheduled;\n const count = scheduled.length;\n for (let idx = 0; idx < count; idx++) {\n if (scheduled[idx].instance === instance) {\n scheduled.splice(idx, 1);\n if (!scheduled.length) {\n this.unsubscribe();\n }\n return;\n }\n }\n }\n ngOnDestroy() {\n this.unsubscribe();\n }\n unsubscribe() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = null;\n }\n }\n flush() {\n this.scheduled.forEach(item => {\n item.method.call(item.instance);\n });\n this.scheduled = [];\n this.unsubscribe();\n }\n}\nResizeBatchService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nResizeBatchService.ctorParameters = () => [\n { type: NgZone }\n];\n\n/**\n * Emit up to 10 resize events per second by default.\n * Chosen as a compromise between responsiveness and performance.\n */\nconst DEFAULT_RATE_LIMIT = 10;\n/**\n * Resize Sensor Component\n *\n * Triggers a \"resize\" event whenever the parent DOM element size changes.\n */\nclass ResizeSensorComponent {\n constructor(resizeBatchService, element, ngZone) {\n /**\n * The maximum number of resize events to emit per second.\n *\n * Defaults to 10.\n */\n this.rateLimit = DEFAULT_RATE_LIMIT;\n /**\n * Fires when the parent DOM element has been resized.\n */\n this.resize = new EventEmitter();\n const serviceType = ResizeObserverService.supported() ? ResizeObserverService : ResizeCompatService;\n this.resizeService = new serviceType(resizeBatchService, element, ngZone);\n const throttleTime = 1000 / (this.rateLimit || DEFAULT_RATE_LIMIT);\n this.subscription = this.resizeService.resize\n .pipe(auditTime(throttleTime))\n .subscribe(() => {\n if (!this.resizeService.acceptedSize) {\n this.resize.emit();\n }\n });\n }\n ngAfterViewChecked() {\n this.resizeService.checkChanges();\n }\n ngOnDestroy() {\n this.subscription.unsubscribe();\n this.resizeService.destroy();\n }\n acceptSize(size) {\n this.resizeService.acceptSize(size);\n }\n}\nResizeSensorComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-resize-sensor',\n template: ''\n },] },\n];\n/** @nocollapse */\nResizeSensorComponent.ctorParameters = () => [\n { type: ResizeBatchService },\n { type: ElementRef },\n { type: NgZone }\n];\nResizeSensorComponent.propDecorators = {\n rateLimit: [{ type: Input }],\n resize: [{ type: Output }]\n};\n\nconst COMPONENT_DIRECTIVES = [ResizeSensorComponent];\n/**\n * Resize Sensor module\n */\nclass ResizeSensorModule {\n}\nResizeSensorModule.decorators = [\n { type: NgModule, args: [{\n declarations: [COMPONENT_DIRECTIVES],\n exports: [COMPONENT_DIRECTIVES],\n providers: [ResizeBatchService]\n },] },\n];\n\nclass KendoInput {\n}\n\n/**\n * Enum with key codes.\n */\nvar Keys;\n(function (Keys) {\n Keys[Keys[\"Alt\"] = 18] = \"Alt\";\n Keys[Keys[\"ArrowDown\"] = 40] = \"ArrowDown\";\n Keys[Keys[\"ArrowLeft\"] = 37] = \"ArrowLeft\";\n Keys[Keys[\"ArrowRight\"] = 39] = \"ArrowRight\";\n Keys[Keys[\"ArrowUp\"] = 38] = \"ArrowUp\";\n Keys[Keys[\"Backspace\"] = 8] = \"Backspace\";\n Keys[Keys[\"Control\"] = 17] = \"Control\";\n Keys[Keys[\"Delete\"] = 46] = \"Delete\";\n Keys[Keys[\"Digit0\"] = 48] = \"Digit0\";\n Keys[Keys[\"Digit1\"] = 49] = \"Digit1\";\n Keys[Keys[\"Digit2\"] = 50] = \"Digit2\";\n Keys[Keys[\"Digit3\"] = 51] = \"Digit3\";\n Keys[Keys[\"Digit4\"] = 52] = \"Digit4\";\n Keys[Keys[\"Digit5\"] = 53] = \"Digit5\";\n Keys[Keys[\"Digit6\"] = 54] = \"Digit6\";\n Keys[Keys[\"Digit7\"] = 55] = \"Digit7\";\n Keys[Keys[\"Digit8\"] = 56] = \"Digit8\";\n Keys[Keys[\"Digit9\"] = 57] = \"Digit9\";\n Keys[Keys[\"End\"] = 35] = \"End\";\n Keys[Keys[\"Enter\"] = 13] = \"Enter\";\n Keys[Keys[\"Escape\"] = 27] = \"Escape\";\n Keys[Keys[\"F1\"] = 112] = \"F1\";\n Keys[Keys[\"F2\"] = 113] = \"F2\";\n Keys[Keys[\"F10\"] = 121] = \"F10\";\n Keys[Keys[\"Home\"] = 36] = \"Home\";\n Keys[Keys[\"Insert\"] = 45] = \"Insert\";\n Keys[Keys[\"KeyA\"] = 65] = \"KeyA\";\n Keys[Keys[\"KeyB\"] = 66] = \"KeyB\";\n Keys[Keys[\"KeyC\"] = 67] = \"KeyC\";\n Keys[Keys[\"KeyD\"] = 68] = \"KeyD\";\n Keys[Keys[\"KeyE\"] = 69] = \"KeyE\";\n Keys[Keys[\"KeyF\"] = 70] = \"KeyF\";\n Keys[Keys[\"KeyG\"] = 71] = \"KeyG\";\n Keys[Keys[\"KeyH\"] = 72] = \"KeyH\";\n Keys[Keys[\"KeyI\"] = 73] = \"KeyI\";\n Keys[Keys[\"KeyJ\"] = 74] = \"KeyJ\";\n Keys[Keys[\"KeyK\"] = 75] = \"KeyK\";\n Keys[Keys[\"KeyL\"] = 76] = \"KeyL\";\n Keys[Keys[\"KeyM\"] = 77] = \"KeyM\";\n Keys[Keys[\"KeyN\"] = 78] = \"KeyN\";\n Keys[Keys[\"KeyO\"] = 79] = \"KeyO\";\n Keys[Keys[\"KeyP\"] = 80] = \"KeyP\";\n Keys[Keys[\"KeyQ\"] = 81] = \"KeyQ\";\n Keys[Keys[\"KeyR\"] = 82] = \"KeyR\";\n Keys[Keys[\"KeyS\"] = 83] = \"KeyS\";\n Keys[Keys[\"KeyT\"] = 84] = \"KeyT\";\n Keys[Keys[\"KeyU\"] = 85] = \"KeyU\";\n Keys[Keys[\"KeyV\"] = 86] = \"KeyV\";\n Keys[Keys[\"KeyW\"] = 87] = \"KeyW\";\n Keys[Keys[\"KeyX\"] = 88] = \"KeyX\";\n Keys[Keys[\"KeyY\"] = 89] = \"KeyY\";\n Keys[Keys[\"KeyZ\"] = 90] = \"KeyZ\";\n Keys[Keys[\"NumpadDecimal\"] = 110] = \"NumpadDecimal\";\n Keys[Keys[\"PageDown\"] = 34] = \"PageDown\";\n Keys[Keys[\"PageUp\"] = 33] = \"PageUp\";\n Keys[Keys[\"Shift\"] = 16] = \"Shift\";\n Keys[Keys[\"Space\"] = 32] = \"Space\";\n Keys[Keys[\"Tab\"] = 9] = \"Tab\";\n})(Keys || (Keys = {}));\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ResizeService, DraggableDirective, DraggableModule, EventsOutsideAngularDirective, EventsModule, ResizeSensorComponent, ResizeBatchService, ResizeCompatService, ResizeObserverService, ResizeSensorModule, KendoInput, isDocumentAvailable, isChanged, anyChanged, hasObservers, guid, Keys };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { Injectable, EventEmitter, Injector, InjectionToken, Component, Inject, ElementRef, Renderer2, NgZone, Input, Output, HostBinding, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, Directive, TemplateRef, isDevMode, forwardRef, Optional, ContentChild, ViewContainerRef, HostListener, ViewChildren, ContentChildren, IterableDiffers, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, NgControl } from '@angular/forms';\nimport { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { getDate, isEqual, cloneDate, addDays, addDecades, addCenturies, firstDecadeOfCentury, lastDecadeOfCentury, firstYearOfDecade, createDate, durationInCenturies, addYears, lastYearOfDecade, durationInDecades, addWeeks, addMonths, firstDayOfMonth, lastDayOfMonth, dayOfWeek, durationInMonths, firstMonthOfYear, lastMonthOfYear, durationInYears, weekInYear } from '@progress/kendo-date-math';\nimport { isDocumentAvailable, KendoInput, guid, hasObservers, Keys, EventsModule } from '@progress/kendo-angular-common';\nimport { IntlService, IntlModule } from '@progress/kendo-angular-intl';\nimport { ReplaySubject, Observable, Subject, combineLatest, of, interval, animationFrameScheduler, fromEvent, EMPTY, from, Subscription, BehaviorSubject, merge } from 'rxjs';\nimport { map, scan, takeWhile, tap, filter, debounceTime } from 'rxjs/operators';\nimport { PopupService, PopupModule } from '@progress/kendo-angular-popup';\nimport { CommonModule } from '@angular/common';\nimport { touchEnabled } from '@progress/kendo-common';\n\n/**\n * @hidden\n */\nvar Action;\n(function (Action) {\n Action[Action[\"Left\"] = 0] = \"Left\";\n Action[Action[\"Right\"] = 1] = \"Right\";\n Action[Action[\"Up\"] = 2] = \"Up\";\n Action[Action[\"Down\"] = 3] = \"Down\";\n Action[Action[\"PrevView\"] = 4] = \"PrevView\";\n Action[Action[\"NextView\"] = 5] = \"NextView\";\n Action[Action[\"FirstInView\"] = 6] = \"FirstInView\";\n Action[Action[\"LastInView\"] = 7] = \"LastInView\";\n Action[Action[\"LowerView\"] = 8] = \"LowerView\";\n Action[Action[\"UpperView\"] = 9] = \"UpperView\";\n})(Action || (Action = {}));\n\n/**\n * @hidden\n */\nconst EMPTY_SELECTIONRANGE = { start: null, end: null };\n\n/**\n * @hidden\n */\nconst MIDNIGHT_DATE = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nconst MIN_DATE = new Date(1900, 0, 1);\n/**\n * @hidden\n */\nconst MAX_DATE = new Date(2099, 11, 31);\n/**\n * @hidden\n */\nconst MIN_TIME = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nconst MAX_TIME = new Date(1980, 0, 1, 23, 59, 59);\n\n/* tslint:disable:no-bitwise max-line-length */\nconst isSet = (value) => value !== null && value !== undefined;\nconst setter = (method) => (date, value) => {\n const clone = cloneDate(date);\n clone[method](value);\n return clone;\n};\n/**\n * @hidden\n */\nconst setTime = (origin, candidate) => {\n const date = cloneDate(origin);\n date.setHours(candidate.getHours(), candidate.getMinutes(), candidate.getSeconds(), candidate.getMilliseconds());\n return date;\n};\nconst normalizeTimes = (candidate, min, max) => ({\n candidateValue: setTime(MIDNIGHT_DATE, candidate),\n maxValue: addDays(setTime(MIDNIGHT_DATE, max), min.getHours() < max.getHours() ||\n (min.getHours() === max.getHours() && min.getMinutes() < max.getMinutes()) ? 0 : 1),\n minValue: setTime(MIDNIGHT_DATE, min)\n});\n/**\n * @hidden\n */\nconst setHours = setter('setHours');\n/**\n * @hidden\n */\nconst setMinutes = setter('setMinutes');\n/**\n * @hidden\n */\nconst setSeconds = setter('setSeconds');\n/**\n * @hidden\n */\nconst range = (start, end, step = 1) => {\n const result = [];\n for (let i = start; i < end; i = i + step) {\n result.push(i);\n }\n return result;\n};\n/**\n * @hidden\n */\nconst isInRange = (candidate, min, max) => (!candidate || !((min && min > candidate) || (max && max < candidate)));\n/**\n * @hidden\n */\nconst isInTimeRange = (candidate, min, max) => {\n if (!candidate || !min || !max) {\n return true;\n }\n const { candidateValue, minValue, maxValue } = normalizeTimes(candidate, min, max);\n return minValue <= candidateValue && candidateValue <= maxValue;\n};\n/**\n * @hidden\n */\nconst isValidRange = (min, max) => (!isSet(min) || !isSet(max) || min <= max);\n/**\n * @hidden\n */\nconst dateInRange = (candidate, min, max) => {\n if (!candidate) {\n return candidate;\n }\n if (min && candidate < min) {\n return cloneDate(min);\n }\n if (max && candidate > max) {\n return cloneDate(max);\n }\n return candidate;\n};\n/**\n * @hidden\n */\nconst timeInRange = (candidate, min, max) => {\n if (!candidate || !min || !max) {\n return candidate;\n }\n const { candidateValue, minValue, maxValue } = normalizeTimes(candidate, min, max);\n if (candidateValue < minValue) {\n return setTime(candidate, min);\n }\n if (candidateValue > maxValue) {\n return setTime(candidate, max);\n }\n return candidate;\n};\n/**\n * @hidden\n */\nconst getNow = () => new Date();\n/**\n * @hidden\n */\nconst getToday = () => getDate(new Date());\n/**\n * @hidden\n */\nconst noop = (_) => { }; // tslint:disable-line:no-empty\n/**\n * @hidden\n */\nconst isWindowAvailable = () => {\n return typeof window !== 'undefined';\n};\n/**\n * @hidden\n */\nconst stringifyClassObject = (classes) => {\n const pushToAcc = (acc, cls) => classes[cls] ? acc.concat(cls) : acc;\n return Object.keys(classes).reduce(pushToAcc, []).join(' ');\n};\n/**\n * @hidden\n */\nconst shiftWeekNames = (names, offset) => (names.slice(offset).concat(names.slice(0, offset)));\n/**\n * @hidden\n */\nconst approximateStringMatching = (oldTextOrigin, oldFormat, newTextOrigin, caret) => {\n // Remove the right part of the cursor.\n //oldFormat = oldFormat.substring(0, caret + oldText.length - newText.length);\n const oldIndex = caret + oldTextOrigin.length - newTextOrigin.length;\n const oldTextSeparator = oldTextOrigin[oldIndex];\n const oldText = oldTextOrigin.substring(0, caret + oldTextOrigin.length - newTextOrigin.length);\n const newText = newTextOrigin.substring(0, caret);\n const diff = [];\n // Handle typing a single character over the same selection.\n if (oldText === newText && caret > 0) {\n diff.push([oldFormat[caret - 1], newText[caret - 1]]);\n return diff;\n }\n if (oldText.indexOf(newText) === 0 && (newText.length === 0 || oldFormat[newText.length - 1] !== oldFormat[newText.length])) {\n // Handle Delete/Backspace.\n let deletedSymbol = \"\";\n //XXX:\n // Whole text is replaced with a same char\n // Nasty patch required to keep the selection in the first segment\n if (newText.length === 1) {\n diff.push([oldFormat[0], newText[0]]);\n }\n for (let i = newText.length; i < oldText.length; i++) {\n if (oldFormat[i] !== deletedSymbol && oldFormat[i] !== \"_\") {\n deletedSymbol = oldFormat[i];\n diff.push([deletedSymbol, \"\"]);\n }\n }\n return diff;\n }\n // Handle inserting text (the new text is longer than the previous one).\n // Handle typing over a literal as well.\n if (newText.indexOf(oldText) === 0 || oldFormat[caret - 1] === \"_\") {\n let symbol = oldFormat[0];\n for (let i = Math.max(0, oldText.length - 1); i < oldFormat.length; i++) {\n if (oldFormat[i] !== \"_\") {\n symbol = oldFormat[i];\n break;\n }\n }\n return [[symbol, newText[caret - 1]]];\n }\n // Handle entering a space or a separator, for navigation to the next item.\n if (newText[newText.length - 1] === \" \" || (newText[newText.length - 1] === oldTextSeparator && oldFormat[oldIndex] === '_')) {\n return [[oldFormat[caret - 1], \"_\"]];\n }\n // Handle typing over a correctly selected part.\n return [[oldFormat[caret - 1], newText[caret - 1]]];\n};\n/**\n * @hidden\n */\nconst domContainerFactory = (type) => (children, classes = \"\", styles = {}) => {\n const container = document.createElement(type);\n container.className = classes;\n Object.keys(styles).map(key => container.style[key] = styles[key]);\n if (typeof children === 'string') {\n container.innerHTML = children || '';\n }\n else {\n (children || []).forEach(child => child && container.appendChild(child));\n }\n return container;\n};\n/**\n * @hidden\n */\nconst hasChange = (changes, field) => changes[field] !== undefined;\n/**\n * @hidden\n */\nconst hasExistingValue = (changes, field) => changes[field] && changes[field].currentValue !== undefined && changes[field].currentValue !== null;\n/**\n * @hidden\n */\nconst isInSelectionRange = (value, selectionRange) => {\n const { start, end } = selectionRange || EMPTY_SELECTIONRANGE;\n if (!start || !end) {\n return false;\n }\n return start < value && value < end;\n};\n/**\n * @hidden\n */\nconst either = (value1, value2) => value1 || value2;\n/**\n * @hidden\n */\nconst clampRange = (value) => ({ start: value, end: value });\n/**\n * @hidden\n */\nconst isEqualRange = (initial, updated) => {\n const { start: initialStart, end: initialEnd } = initial || EMPTY_SELECTIONRANGE;\n const { start: updatedStart, end: updatedEnd } = updated || EMPTY_SELECTIONRANGE;\n return isEqual(initialStart, updatedStart) && isEqual(initialEnd, updatedEnd);\n};\n/**\n * @hidden\n *\n * Creates a new date based on the date information from the specified date portion\n * and the time information from the time portion.\n * If a parameter is not provided, returns `null`.\n */\nconst mergeDateAndTime = (date, time) => {\n if (!(date && time)) {\n return null;\n }\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\n};\n/**\n * @hidden\n */\nconst lastMillisecondOfDate = (date) => {\n if (!date) {\n return null;\n }\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n};\n/**\n * @hidden\n *\n * Returns an array with dates ranging between and including the specified start and\n * end dates that are evaluated as disabled.\n */\nconst disabledDatesInRange = (start, end, isDateDisabled) => {\n if (!(start && end && isDateDisabled) || (start > end)) {\n return [];\n }\n const dates = [];\n let current = start;\n while (current <= end) {\n if (isDateDisabled(current)) {\n dates.push(current);\n }\n current = addDays(current, 1);\n }\n return dates;\n};\n\n/* tslint:disable:object-literal-sort-keys */\nconst EMPTY_DATA = [[]];\nconst CELLS_LENGTH = 5;\nconst ROWS_LENGTH = 2;\nconst ACTIONS = {\n [Action.Left]: (date) => addDecades(date, -1),\n [Action.Up]: (date) => addDecades(date, -5),\n [Action.Right]: (date) => addDecades(date, 1),\n [Action.Down]: (date) => addDecades(date, 5),\n [Action.PrevView]: (date) => addCenturies(date, -1),\n [Action.NextView]: (date) => addCenturies(date, 1),\n [Action.FirstInView]: (date) => firstDecadeOfCentury(date),\n [Action.LastInView]: (date) => lastDecadeOfCentury(date)\n};\n/**\n * @hidden\n */\nclass CenturyViewService {\n addToDate(min, skip) {\n return addCenturies(min, skip);\n }\n datesList(start, count) {\n return range(0, count).map(i => addCenturies(start, i));\n }\n data(options) {\n const { cellUID, focusedDate, isActiveView, max, min, selectedDate, selectionRange = EMPTY_SELECTIONRANGE, viewDate } = options;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n const cells = range(0, CELLS_LENGTH);\n const firstDate = firstDecadeOfCentury(viewDate);\n const lastDate = lastDecadeOfCentury(viewDate);\n const isSelectedDateInRange = isInRange(selectedDate, min, max);\n const today = getToday();\n return range(0, ROWS_LENGTH).map(rowOffset => {\n const baseDate = addDecades(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(cellOffset => {\n const cellDate = this.normalize(addDecades(baseDate, cellOffset), min, max);\n if (!this.isInRange(cellDate, min, max)) {\n return null;\n }\n const isRangeStart = this.isEqual(cellDate, selectionRange.start);\n const isRangeEnd = this.isEqual(cellDate, selectionRange.end);\n const isInMiddle = !isRangeStart && !isRangeEnd;\n const isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n return {\n formattedValue: this.value(cellDate),\n id: `${cellUID}${cellDate.getTime()}`,\n isFocused: this.isEqual(cellDate, focusedDate),\n isSelected: isActiveView && isSelectedDateInRange && this.isEqual(cellDate, selectedDate),\n isWeekend: false,\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && this.isEqual(cellDate, firstDate),\n isToday: this.isEqual(cellDate, today),\n title: this.cellTitle(cellDate),\n value: cellDate\n };\n });\n });\n }\n isEqual(candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return firstYearOfDecade(candidate).getFullYear() === firstYearOfDecade(expected).getFullYear();\n }\n isInArray(date, dates) {\n if (!dates.length) {\n return false;\n }\n const year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= (dates[dates.length - 1].getFullYear() + 99);\n }\n isInRange(candidate, min, max) {\n const year = firstYearOfDecade(candidate).getFullYear();\n const aboveMin = !min || firstYearOfDecade(min).getFullYear() <= year;\n const belowMax = !max || year <= firstYearOfDecade(max).getFullYear();\n return aboveMin && belowMax;\n }\n beginningOfPeriod(date) {\n if (!date) {\n return date;\n }\n const firstYear = firstYearOfDecade(firstDecadeOfCentury(date));\n return createDate(firstYear.getFullYear(), 0, 1);\n }\n isRangeStart(value) {\n return value.getFullYear() % 1000 === 0;\n }\n move(value, action) {\n const modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n }\n cellTitle(value) {\n return firstYearOfDecade(value).getFullYear().toString();\n }\n navigationTitle(value) {\n return value ? firstDecadeOfCentury(value).getFullYear().toString() : '';\n }\n title(value) {\n if (!value) {\n return '';\n }\n return `${firstDecadeOfCentury(value).getFullYear()} - ${lastDecadeOfCentury(value).getFullYear()}`;\n }\n rowLength(_) {\n return CELLS_LENGTH;\n }\n skip(value, min) {\n return durationInCenturies(min, value);\n }\n total(min, max) {\n return durationInCenturies(min, max) + 1;\n }\n value(current) {\n return current ? firstYearOfDecade(current).getFullYear().toString() : '';\n }\n viewDate(date, max, viewsCount = 1) {\n const viewsInRange = this.total(date, max);\n if (viewsInRange < viewsCount) {\n const centuriesToSubtract = viewsCount - viewsInRange;\n return addCenturies(date, -1 * centuriesToSubtract);\n }\n return date;\n }\n normalize(cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n }\n}\nCenturyViewService.decorators = [\n { type: Injectable },\n];\n\n/* tslint:disable:object-literal-sort-keys */\nconst EMPTY_DATA$1 = [[]];\nconst CELLS_LENGTH$1 = 5;\nconst ROWS_LENGTH$1 = 2;\nconst ACTIONS$1 = {\n [Action.Left]: (date) => addYears(date, -1),\n [Action.Up]: (date) => addYears(date, -5),\n [Action.Right]: (date) => addYears(date, 1),\n [Action.Down]: (date) => addYears(date, 5),\n [Action.PrevView]: (date) => addDecades(date, -1),\n [Action.NextView]: (date) => addDecades(date, 1),\n [Action.FirstInView]: (date) => firstYearOfDecade(date),\n [Action.LastInView]: (date) => lastYearOfDecade(date)\n};\n/**\n * @hidden\n */\nclass DecadeViewService {\n addToDate(min, skip) {\n return addDecades(min, skip);\n }\n datesList(start, count) {\n return range(0, count).map(i => addDecades(start, i));\n }\n data(options) {\n const { cellUID, focusedDate, isActiveView, max, min, selectedDate, selectionRange = EMPTY_SELECTIONRANGE, viewDate } = options;\n if (!viewDate) {\n return EMPTY_DATA$1;\n }\n const cells = range(0, CELLS_LENGTH$1);\n const firstDate = firstYearOfDecade(viewDate);\n const lastDate = lastYearOfDecade(viewDate);\n const isSelectedDateInRange = isInRange(selectedDate, min, max);\n const today = getToday();\n return range(0, ROWS_LENGTH$1).map(rowOffset => {\n const baseDate = addYears(firstDate, rowOffset * CELLS_LENGTH$1);\n return cells.map(cellOffset => {\n const cellDate = this.normalize(addYears(baseDate, cellOffset), min, max);\n if (!this.isInRange(cellDate, min, max)) {\n return null;\n }\n const isRangeStart = this.isEqual(cellDate, selectionRange.start);\n const isRangeEnd = this.isEqual(cellDate, selectionRange.end);\n const isInMiddle = !isRangeStart && !isRangeEnd;\n const isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n return {\n formattedValue: this.value(cellDate),\n id: `${cellUID}${cellDate.getTime()}`,\n isFocused: this.isEqual(cellDate, focusedDate),\n isSelected: isActiveView && isSelectedDateInRange && this.isEqual(cellDate, selectedDate),\n isWeekend: false,\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && this.isEqual(cellDate, firstDate),\n isToday: this.isEqual(cellDate, today),\n title: this.cellTitle(cellDate),\n value: cellDate\n };\n });\n });\n }\n isEqual(candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return candidate.getFullYear() === expected.getFullYear();\n }\n isInArray(date, dates) {\n if (!dates.length) {\n return false;\n }\n const year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= (dates[dates.length - 1].getFullYear() + 9);\n }\n isInRange(candidate, min, max) {\n const year = candidate.getFullYear();\n const aboveMin = !min || min.getFullYear() <= year;\n const belowMax = !max || year <= max.getFullYear();\n return aboveMin && belowMax;\n }\n beginningOfPeriod(date) {\n if (!date) {\n return date;\n }\n const firstYear = firstYearOfDecade(date);\n return createDate(firstYear.getFullYear(), 0, 1);\n }\n isRangeStart(value) {\n return value.getFullYear() % 100 === 0;\n }\n move(value, action) {\n const modifier = ACTIONS$1[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n }\n cellTitle(value) {\n return value.getFullYear().toString();\n }\n navigationTitle(value) {\n return value ? firstYearOfDecade(value).getFullYear().toString() : '';\n }\n title(value) {\n if (!value) {\n return '';\n }\n return `${firstYearOfDecade(value).getFullYear()} - ${lastYearOfDecade(value).getFullYear()}`;\n }\n rowLength(_) {\n return CELLS_LENGTH$1;\n }\n skip(value, min) {\n return durationInDecades(min, value);\n }\n total(min, max) {\n return durationInDecades(min, max) + 1;\n }\n value(current) {\n return current ? current.getFullYear().toString() : '';\n }\n viewDate(date, max, viewsCount = 1) {\n const viewsInRange = this.total(date, max);\n if (viewsInRange < viewsCount) {\n const decadesToSubtract = viewsCount - viewsInRange;\n return addDecades(date, -1 * decadesToSubtract);\n }\n return date;\n }\n normalize(cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n }\n}\nDecadeViewService.decorators = [\n { type: Injectable },\n];\n\n/* tslint:disable:object-literal-sort-keys */\nconst EMPTY_DATA$2 = [[]];\nconst CELLS_LENGTH$2 = 7;\nconst ROWS_LENGTH$2 = 6;\nconst ACTIONS$2 = {\n [Action.Left]: (date) => addDays(date, -1),\n [Action.Up]: (date) => addWeeks(date, -1),\n [Action.Right]: (date) => addDays(date, 1),\n [Action.Down]: (date) => addWeeks(date, 1),\n [Action.PrevView]: (date) => addMonths(date, -1),\n [Action.NextView]: (date) => addMonths(date, 1),\n [Action.FirstInView]: (date) => firstDayOfMonth(date),\n [Action.LastInView]: (date) => lastDayOfMonth(date)\n};\n/**\n * @hidden\n */\nclass MonthViewService {\n constructor(_intlService) {\n this._intlService = _intlService;\n }\n addToDate(min, skip) {\n return addMonths(min, skip);\n }\n datesList(start, count) {\n return range(0, count).map(i => addMonths(start, i));\n }\n data(options) {\n const { cellUID, focusedDate, isActiveView, max, min, selectedDate, selectionRange = EMPTY_SELECTIONRANGE, viewDate, isDateDisabled = () => false } = options;\n if (!viewDate) {\n return EMPTY_DATA$2;\n }\n const firstMonthDate = firstDayOfMonth(viewDate);\n const firstMonthDay = getDate(firstMonthDate);\n const lastMonthDate = lastDayOfMonth(viewDate);\n const lastMonthDay = getDate(lastMonthDate);\n const backward = -1;\n const isSelectedDateInRange = isInRange(selectedDate, min, max);\n const date = dayOfWeek(firstMonthDate, this._intlService.firstDay(), backward);\n const cells = range(0, CELLS_LENGTH$2);\n const today = getToday();\n return range(0, ROWS_LENGTH$2).map(rowOffset => {\n const baseDate = addDays(date, rowOffset * CELLS_LENGTH$2);\n return cells.map(cellOffset => {\n const cellDate = this.normalize(addDays(baseDate, cellOffset), min, max);\n const cellDay = getDate(cellDate);\n const otherMonth = cellDay < firstMonthDay || cellDay > lastMonthDay;\n const outOfRange = cellDate < min || cellDate > max;\n if (otherMonth || outOfRange) {\n return null;\n }\n const isRangeStart = this.isEqual(cellDate, selectionRange.start);\n const isRangeEnd = this.isEqual(cellDate, selectionRange.end);\n const isInMiddle = !isRangeStart && !isRangeEnd;\n const isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n return {\n formattedValue: this.value(cellDate),\n id: `${cellUID}${cellDate.getTime()}`,\n isFocused: this.isEqual(cellDate, focusedDate),\n isSelected: isActiveView && isSelectedDateInRange && this.isEqual(cellDate, selectedDate),\n isWeekend: this.isWeekend(cellDate),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitStart: isRangeMid && this.isEqual(cellDate, firstMonthDate),\n isRangeSplitEnd: isRangeMid && this.isEqual(cellDate, lastMonthDate),\n isToday: this.isEqual(cellDate, today),\n title: this.cellTitle(cellDate),\n value: cellDate,\n isDisabled: isDateDisabled(cellDate)\n };\n });\n });\n }\n isEqual(candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return getDate(candidate).getTime() === getDate(expected).getTime();\n }\n isInArray(date, dates) {\n if (dates.length === 0) {\n return false;\n }\n const lowerBound = this.beginningOfPeriod(dates[0]);\n const upperBound = this.beginningOfPeriod(addMonths(dates[dates.length - 1], 1));\n return lowerBound <= date && date < upperBound;\n }\n isInRange(candidate, min, max) {\n const value = getDate(candidate);\n const aboveMin = !min || getDate(min) <= value;\n const belowMax = !max || value <= getDate(max);\n return aboveMin && belowMax;\n }\n beginningOfPeriod(date) {\n if (!date) {\n return date;\n }\n return createDate(date.getFullYear(), date.getMonth(), 1);\n }\n isRangeStart(value) {\n return !value.getMonth();\n }\n move(value, action) {\n const modifier = ACTIONS$2[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n }\n cellTitle(value) {\n return this._intlService.formatDate(value, 'D');\n }\n navigationTitle(value) {\n if (!value) {\n return '';\n }\n return this.isRangeStart(value) ? value.getFullYear().toString() : this.abbrMonthNames()[value.getMonth()];\n }\n title(current) {\n return `${this.wideMonthNames()[current.getMonth()]} ${current.getFullYear()}`;\n }\n rowLength(prependCell) {\n return CELLS_LENGTH$2 + (prependCell ? 1 : 0);\n }\n skip(value, min) {\n return durationInMonths(min, value);\n }\n total(min, max) {\n return durationInMonths(min, max) + 1;\n }\n value(current) {\n return current ? current.getDate().toString() : \"\";\n }\n viewDate(date, max, viewsCount = 1) {\n const viewsInRange = this.total(date, max);\n if (viewsInRange < viewsCount) {\n const monthsToSubtract = viewsCount - viewsInRange;\n return addMonths(date, -1 * monthsToSubtract);\n }\n return date;\n }\n isWeekend(date) {\n const { start, end } = this._intlService.weekendRange();\n const day = date.getDay();\n if (end < start) {\n return day <= end || start <= day;\n }\n return start <= day && day <= end;\n }\n abbrMonthNames() {\n return this._intlService.dateFormatNames({ nameType: 'abbreviated', type: 'months' });\n }\n normalize(cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n }\n wideMonthNames() {\n return this._intlService.dateFormatNames({ nameType: 'wide', type: 'months' });\n }\n}\nMonthViewService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nMonthViewService.ctorParameters = () => [\n { type: IntlService }\n];\n\n/* tslint:disable:object-literal-sort-keys */\nconst EMPTY_DATA$3 = [[]];\nconst CELLS_LENGTH$3 = 5;\nconst ROWS_LENGTH$3 = 3;\nconst upStep = (month) => {\n if (month > 4) {\n return -5;\n }\n if (month < 2) {\n return -2;\n }\n return -7;\n};\nconst downStep = (month) => {\n if (month < 7) {\n return 5;\n }\n if (month < 10) {\n return 7;\n }\n return 2;\n};\nconst ACTIONS$3 = {\n [Action.Left]: (date) => addMonths(date, -1),\n [Action.Up]: (date) => addMonths(date, upStep(date.getMonth())),\n [Action.Right]: (date) => addMonths(date, 1),\n [Action.Down]: (date) => addMonths(date, downStep(date.getMonth())),\n [Action.PrevView]: (date) => addYears(date, -1),\n [Action.NextView]: (date) => addYears(date, 1),\n [Action.FirstInView]: (date) => firstMonthOfYear(date),\n [Action.LastInView]: (date) => lastMonthOfYear(date)\n};\n/**\n * @hidden\n */\nclass YearViewService {\n constructor(_intlService) {\n this._intlService = _intlService;\n }\n addToDate(min, skip) {\n return addYears(min, skip);\n }\n datesList(start, count) {\n return range(0, count).map(i => addYears(start, i));\n }\n data(options) {\n const { cellUID, focusedDate, isActiveView, max, min, selectedDate, selectionRange = EMPTY_SELECTIONRANGE, viewDate } = options;\n if (!viewDate) {\n return EMPTY_DATA$3;\n }\n const months = this.abbrMonthNames();\n const isSelectedDateInRange = isInRange(selectedDate, min, max);\n const firstDate = firstMonthOfYear(viewDate);\n const lastDate = lastMonthOfYear(viewDate);\n const currentYear = firstDate.getFullYear();\n const cells = range(0, CELLS_LENGTH$3);\n const today = getToday();\n return range(0, ROWS_LENGTH$3).map(rowOffset => {\n const baseDate = addMonths(firstDate, rowOffset * CELLS_LENGTH$3);\n return cells.map(cellOffset => {\n const cellDate = this.normalize(addMonths(baseDate, cellOffset), min, max);\n const changedYear = currentYear < cellDate.getFullYear();\n if (!this.isInRange(cellDate, min, max) || changedYear) {\n return null;\n }\n const isRangeStart = this.isEqual(cellDate, selectionRange.start);\n const isRangeEnd = this.isEqual(cellDate, selectionRange.end);\n const isInMiddle = !isRangeStart && !isRangeEnd;\n const isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n return {\n formattedValue: months[cellDate.getMonth()],\n id: `${cellUID}${cellDate.getTime()}`,\n isFocused: this.isEqual(cellDate, focusedDate),\n isSelected: isActiveView && isSelectedDateInRange && this.isEqual(cellDate, selectedDate),\n isWeekend: false,\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && this.isEqual(cellDate, firstDate),\n isToday: this.isEqual(cellDate, today),\n title: this.cellTitle(cellDate),\n value: cellDate\n };\n });\n });\n }\n isEqual(candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return candidate.getFullYear() === expected.getFullYear() &&\n candidate.getMonth() === expected.getMonth();\n }\n isInArray(date, dates) {\n if (!dates.length) {\n return false;\n }\n const year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= dates[dates.length - 1].getFullYear();\n }\n isInRange(candidate, min, max) {\n const candidateValue = createDate(candidate.getFullYear(), candidate.getMonth(), 1);\n const aboveMin = !min || createDate(min.getFullYear(), min.getMonth(), 1) <= candidateValue;\n const belowMax = !max || candidateValue <= createDate(max.getFullYear(), max.getMonth(), 1);\n return aboveMin && belowMax;\n }\n beginningOfPeriod(date) {\n if (!date) {\n return date;\n }\n return createDate(date.getFullYear(), 0, 1);\n }\n isRangeStart(value) {\n return value.getFullYear() % 10 === 0;\n }\n move(value, action) {\n const modifier = ACTIONS$3[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n }\n cellTitle(value) {\n return `${value.getFullYear()} ${this.value(value)}`;\n }\n navigationTitle(value) {\n return this.title(value);\n }\n title(current) {\n return current ? current.getFullYear().toString() : '';\n }\n rowLength(_) {\n return CELLS_LENGTH$3;\n }\n skip(value, min) {\n return durationInYears(min, value);\n }\n total(min, max) {\n return durationInYears(min, max) + 1;\n }\n value(current) {\n return current ? this.abbrMonthNames()[current.getMonth()] : '';\n }\n viewDate(date, max, viewsCount = 1) {\n const viewsInRange = this.total(date, max);\n if (viewsInRange < viewsCount) {\n const yearsToSubtract = viewsCount - viewsInRange;\n return addYears(date, -1 * yearsToSubtract);\n }\n return date;\n }\n abbrMonthNames() {\n return this._intlService.dateFormatNames({ nameType: 'abbreviated', type: 'months' });\n }\n normalize(cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n }\n}\nYearViewService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nYearViewService.ctorParameters = () => [\n { type: IntlService }\n];\n\n/**\n * @hidden\n *\n * The Enum which defines all possible Calendar view types.\n */\nvar CalendarViewEnum;\n(function (CalendarViewEnum) {\n CalendarViewEnum[CalendarViewEnum[\"month\"] = 0] = \"month\";\n CalendarViewEnum[CalendarViewEnum[\"year\"] = 1] = \"year\";\n CalendarViewEnum[CalendarViewEnum[\"decade\"] = 2] = \"decade\";\n CalendarViewEnum[CalendarViewEnum[\"century\"] = 3] = \"century\";\n})(CalendarViewEnum || (CalendarViewEnum = {}));\n\nconst services = {\n [CalendarViewEnum.month]: MonthViewService,\n [CalendarViewEnum.year]: YearViewService,\n [CalendarViewEnum.decade]: DecadeViewService,\n [CalendarViewEnum.century]: CenturyViewService\n};\nconst viewOffset = (view, offset) => {\n const candidate = CalendarViewEnum[CalendarViewEnum[view + offset]];\n return candidate !== undefined ? candidate : view;\n};\n/**\n * @hidden\n */\nclass BusViewService {\n constructor(injector) {\n this.injector = injector;\n this.viewChanged = new EventEmitter();\n this.bottom = CalendarViewEnum.month;\n this.top = CalendarViewEnum.century;\n }\n configure(bottom, top) {\n this.bottom = bottom;\n this.top = top;\n }\n service(view) {\n const serviceType = services[view];\n return serviceType ? this.injector.get(serviceType) : null;\n }\n moveDown(view) {\n this.move(view, -1);\n }\n moveUp(view) {\n this.move(view, 1);\n }\n moveToBottom(activeView) {\n if (activeView === this.bottom) {\n return;\n }\n this.viewChanged.emit({ view: this.bottom });\n }\n canMoveDown(view) {\n return this.bottom < view;\n }\n canMoveUp(view) {\n return view < this.top;\n }\n clamp(view) {\n if (view < this.bottom) {\n return this.bottom;\n }\n if (view > this.top) {\n return this.top;\n }\n return view;\n }\n move(view, offset) {\n const candidate = this.clamp(viewOffset(view, offset));\n if (candidate === view) {\n return;\n }\n this.viewChanged.emit({ view: candidate });\n }\n}\nBusViewService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nBusViewService.ctorParameters = () => [\n { type: Injector }\n];\n\nconst div = domContainerFactory('div');\nconst ul = domContainerFactory('ul');\nconst li = domContainerFactory('li');\nconst td = domContainerFactory('td');\nconst th = domContainerFactory('th');\nconst tr = domContainerFactory('tr');\nconst tbody = domContainerFactory('tbody');\nconst thead = domContainerFactory('thead');\nconst table = domContainerFactory('table');\nconst monthHeader = () => (div(`\n March 2017\n TODAY\n `, 'k-calendar-header'));\nconst monthWeekHeader = () => (table([\n thead([\n tr([th('MO')])\n ])\n], 'k-calendar-weekdays'));\nconst repeat = (count, mapper) => new Array(count).fill('1').map(mapper);\nconst content = (rows, cells = 1) => (table([\n tbody([tr([th('1')])].concat(repeat(rows, () => tr(repeat(cells, c => td(`${c}`))))))\n]));\nconst scrollable = (children) => div(children, 'k-content k-scrollable');\nconst view = (contentElement, className, renderWeekHeader) => (div([\n monthHeader(),\n renderWeekHeader ? monthWeekHeader() : null,\n scrollable([contentElement, contentElement])\n], className, { left: '-10000px', position: 'absolute' }));\nconst ɵ6 = () => {\n let navElement;\n return () => {\n if (!isDocumentAvailable) {\n return null;\n }\n if (!navElement) {\n navElement = div([scrollable([ul([li('FEB')])])], 'k-calendar-navigation', { left: '0px', position: 'absolute' });\n }\n return navElement;\n };\n};\nconst navigationList = (ɵ6)();\nconst viewFactory = ({ cells, rows }, className, renderWeekHeader) => {\n let viewElement;\n return () => {\n if (!isDocumentAvailable) {\n return null;\n }\n if (!viewElement) {\n viewElement = view(content(rows, cells), className, renderWeekHeader);\n }\n return viewElement;\n };\n};\nconst getScrollable = (element) => element.querySelector('.k-scrollable');\nconst horizontal = element => {\n const scrollableElement = getScrollable(element);\n scrollableElement.classList.add('k-scrollable-horizontal');\n return element;\n};\nconst monthView = viewFactory({ cells: 7, rows: 6 }, 'k-calendar-view k-calendar-monthview', true);\nconst yearView = viewFactory({ cells: 5, rows: 3 }, 'k-calendar-view k-calendar-yearview', false);\nconst decadeView = viewFactory({ cells: 5, rows: 2 }, 'k-calendar-view k-calendar-decadeview', false);\nconst horzMonthView = () => horizontal(monthView());\nconst horzYearView = () => horizontal(yearView());\nconst horzDecadeView = () => horizontal(decadeView());\nconst height = (element) => (parseFloat(window.getComputedStyle(element).height) || element.offsetHeight);\nconst width = (element) => {\n const styles = window.getComputedStyle(element);\n const computed = parseFloat(styles.width)\n + parseFloat(styles.paddingLeft)\n + parseFloat(styles.paddingRight);\n return computed || element.offsetWidth;\n};\nconst getBody = (element) => element.querySelector('tbody');\n/**\n * @hidden\n */\nclass CalendarDOMService {\n ensureHeights() {\n if (this.calendarHeight !== undefined) {\n return;\n }\n this.calculateHeights();\n }\n calculateHeights(container) {\n if (!isDocumentAvailable()) {\n return;\n }\n this.hostContainer = container;\n this.batch(monthView(), (contentElement) => {\n const viewElement = getBody(contentElement);\n this.calendarHeight = height(contentElement);\n this.monthViewHeight = height(viewElement);\n this.headerHeight = height(viewElement.children[0]);\n this.scrollableContentHeight = height(getScrollable(contentElement));\n });\n this.batch(horzMonthView(), (contentElement) => {\n const viewElement = getBody(contentElement);\n this.calendarWidth = width(contentElement);\n this.monthViewWidth = width(viewElement);\n this.scrollableContentWidth = width(getScrollable(contentElement));\n });\n this.batch(yearView(), (contentElement) => {\n this.yearViewHeight = height(getBody(contentElement));\n this.scrollableYearContentHeight = height(getScrollable(contentElement));\n });\n this.batch(horzYearView(), (contentElement) => {\n this.yearViewWidth = width(getBody(contentElement));\n });\n this.batch(decadeView(), (contentElement) => {\n this.decadeViewHeight = height(getBody(contentElement));\n this.centuryViewHeight = this.decadeViewHeight;\n });\n this.batch(horzDecadeView(), (contentElement) => {\n this.decadeViewWidth = width(getBody(contentElement));\n this.centuryViewWidth = this.decadeViewWidth;\n });\n this.batch(navigationList(), (contentElement) => {\n this.navigationItemHeight = height(contentElement.querySelector('li'));\n });\n }\n viewHeight(viewType) {\n return this.viewDimension(viewType, 'height');\n }\n viewWidth(viewType) {\n return this.viewDimension(viewType, 'width');\n }\n viewDimension(viewType, dimension) {\n const viewProp = dimension === 'height' ? 'ViewHeight' : 'ViewWidth';\n switch (viewType) {\n case CalendarViewEnum.month:\n return this[`month${viewProp}`];\n case CalendarViewEnum.year:\n return this[`year${viewProp}`];\n case CalendarViewEnum.decade:\n return this[`decade${viewProp}`];\n case CalendarViewEnum.century:\n return this[`century${viewProp}`];\n default:\n return 1;\n }\n }\n batch(contentElement, action) {\n const hostContainer = this.hostContainer || document.body;\n const appendedContent = hostContainer.appendChild(contentElement);\n action(appendedContent);\n hostContainer.removeChild(appendedContent);\n }\n}\nCalendarDOMService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nconst update = (arr, idx, value) => ([\n ...arr.slice(0, idx + 1),\n ...(arr.slice(idx + 1).map(x => x + value))\n]);\n/**\n * @hidden\n */\nclass RowHeightService {\n constructor(total = 0, rowHeight, detailRowHeight) {\n this.total = total;\n this.rowHeight = rowHeight;\n this.detailRowHeight = detailRowHeight;\n this.offsets = [];\n this.heights = [];\n let agg = 0;\n for (let idx = 0; idx < total; idx++) {\n this.offsets.push(agg);\n agg += rowHeight;\n this.heights.push(rowHeight);\n }\n }\n height(rowIndex) {\n return this.heights[rowIndex];\n }\n expandDetail(rowIndex) {\n if (this.height(rowIndex) === this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight);\n }\n }\n collapseDetail(rowIndex) {\n if (this.height(rowIndex) > this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight * -1);\n }\n }\n index(position) {\n if (position < 0) {\n return undefined;\n }\n const result = this.offsets.reduce((prev, current, idx) => {\n if (prev !== undefined) {\n return prev;\n }\n else if (current === position) {\n return idx;\n }\n else if (current > position) {\n return idx - 1;\n }\n return undefined;\n }, undefined); // tslint:disable-line:align\n return result === undefined ? this.total - 1 : result;\n }\n offset(rowIndex) {\n return this.offsets[rowIndex];\n }\n totalHeight() {\n return this.heights.reduce((prev, curr) => prev + curr, 0);\n }\n updateRowHeight(rowIndex, value) {\n this.heights[rowIndex] += value;\n this.offsets = update(this.offsets, rowIndex, value);\n }\n}\n\nconst normalize = x => Math.max(x, 0);\n/**\n * @hidden\n */\nclass ScrollAction {\n constructor(offset) {\n this.offset = offset;\n }\n}\n/**\n * @hidden\n */\nclass PageAction {\n constructor(skip) {\n this.skip = skip;\n }\n}\n/**\n * @hidden\n */\nclass ScrollerService {\n constructor(scrollObservable) {\n this.scrollObservable = scrollObservable;\n this.firstLoaded = 0;\n this.bottomOffset = 0;\n this.topOffset = 0;\n }\n create(rowHeightService, skip, take, total, topOffset = 0, bottomOffset = 0, direction = 'vertical') {\n this.rowHeightService = rowHeightService;\n this.firstLoaded = skip;\n this.lastLoaded = skip + take;\n this.take = take;\n this.total = total;\n this.lastScroll = 0;\n this.topOffset = topOffset;\n this.bottomOffset = bottomOffset;\n this.direction = direction;\n const subject = new ReplaySubject(2);\n const offsetBufferRows = this.rowsForHeight(topOffset);\n const skipWithOffset = normalize(skip - offsetBufferRows);\n subject.next(new ScrollAction(this.rowOffset(skipWithOffset)));\n if (offsetBufferRows) {\n subject.next(new PageAction(skipWithOffset));\n }\n this.subscription = Observable.create(observer => {\n this.unsubscribe();\n this.scrollSubscription = this.scrollObservable.subscribe(x => this.onScroll(x, observer));\n }).subscribe(x => subject.next(x));\n return subject;\n }\n destroy() {\n this.unsubscribe();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n onScroll({ scrollLeft, scrollTop, offsetHeight, offsetWidth }, observer) {\n const scrollPosition = this.direction === 'vertical' ? scrollTop : scrollLeft;\n const offsetSize = this.direction === 'vertical' ? offsetHeight : offsetWidth;\n if (this.lastScroll === scrollPosition) {\n return;\n }\n const up = this.lastScroll >= scrollPosition;\n this.lastScroll = scrollPosition;\n const firstItemIndex = this.rowHeightService.index(normalize(scrollPosition - this.topOffset));\n const lastItemIndex = this.rowHeightService.index(normalize(scrollPosition + offsetSize - this.bottomOffset));\n if (!up && lastItemIndex >= this.lastLoaded && this.lastLoaded < this.total) {\n this.firstLoaded = firstItemIndex;\n observer.next(new ScrollAction(this.rowOffset(firstItemIndex)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n observer.next(new PageAction(this.firstLoaded));\n }\n if (up && firstItemIndex <= this.firstLoaded) {\n const nonVisibleBuffer = Math.floor(this.take * 0.3);\n this.firstLoaded = normalize(firstItemIndex - nonVisibleBuffer);\n observer.next(new ScrollAction(this.rowOffset(this.firstLoaded)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n observer.next(new PageAction(this.firstLoaded));\n }\n }\n rowOffset(index) {\n return this.rowHeightService.offset(index) + this.topOffset;\n }\n rowsForHeight(height) {\n return Math.ceil(height / this.rowHeightService.height(0));\n }\n unsubscribe() {\n if (this.scrollSubscription) {\n this.scrollSubscription.unsubscribe();\n this.scrollSubscription = null;\n }\n }\n}\n\n/* tslint:disable:component-selector-name component-selector-type */\n/**\n * @hidden\n */\nconst SCROLLER_FACTORY_TOKEN = new InjectionToken('dateinputs-scroll-service-factory');\n/**\n * @hidden\n */\nfunction DEFAULT_SCROLLER_FACTORY(observable) {\n return new ScrollerService(observable);\n}\n/**\n * @hidden\n */\nvar ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[ScrollDirection[\"Backward\"] = 0] = \"Backward\";\n ScrollDirection[ScrollDirection[\"Forward\"] = 1] = \"Forward\";\n})(ScrollDirection || (ScrollDirection = {}));\nconst FRAME_DURATION = 17;\nconst scrollModifiers = {\n [ScrollDirection.Forward]: (step) => value => value + step,\n [ScrollDirection.Backward]: (step) => value => value - step\n};\nconst scrollNormalizers = {\n [ScrollDirection.Forward]: (end) => value => Math.min(value, end),\n [ScrollDirection.Backward]: (end) => value => Math.max(value, end)\n};\nconst scrollValidators = {\n [ScrollDirection.Forward]: end => start => start < end,\n [ScrollDirection.Backward]: end => start => start > end\n};\nconst differenceToScroll = (scrollTop, staticOffset, maxScrollDifference) => {\n return Math.min(Math.abs(staticOffset - scrollTop), maxScrollDifference);\n};\n/**\n * @hidden\n */\nclass VirtualizationComponent {\n constructor(scrollerFactory, container, renderer, zone) {\n this.container = container;\n this.renderer = renderer;\n this.zone = zone;\n this.direction = 'vertical';\n this.itemHeight = 1;\n this.itemWidth = 1;\n this.topOffset = 0;\n this.bottomOffset = 0;\n this.maxScrollDifference = 100;\n this.scrollOffsetSize = 0;\n this.scrollDuration = 150;\n this.activeIndexChange = new EventEmitter();\n this.pageChange = new EventEmitter();\n this.scrollChange = new EventEmitter();\n this.resolvedPromise = Promise.resolve(null);\n this.dispatcher = new Subject();\n this.scroller = scrollerFactory(this.dispatcher);\n }\n get totalVertexLength() {\n const value = `${this.totalSize}px`;\n return this.direction === 'vertical' ? { height: value } : { width: value };\n }\n get containerOffsetSize() {\n return this.getContainerProperty(this.direction === 'vertical' ? 'offsetHeight' : 'offsetWidth');\n }\n get containerScrollSize() {\n return this.getContainerProperty(this.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth');\n }\n get containerScrollPosition() {\n return this.getContainerProperty(this.direction === 'vertical' ? 'scrollTop' : 'scrollLeft');\n }\n get wrapperClasses() {\n return true;\n }\n get horizontalClass() {\n return this.direction === 'horizontal';\n }\n ngOnChanges(changes) {\n if (changes.direction || changes.take || changes.total) {\n this.initServices();\n this.totalSize = this.rowHeightService.totalHeight() + this.bottomOffset;\n }\n }\n ngOnInit() {\n if (!this.rowHeightService) {\n this.rowHeightService = this.createRowHeightService();\n }\n }\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n this.containerScrollSubscription = this.scroll$()\n .pipe(map((event) => event.target))\n .subscribe(t => {\n this.dispatcher.next(t);\n this.emitActiveIndex();\n });\n });\n }\n ngOnDestroy() {\n if (this.containerScrollSubscription) {\n this.containerScrollSubscription.unsubscribe();\n }\n if (this.scrollSubscription) {\n this.scrollSubscription.unsubscribe();\n }\n if (this.animationSubscription) {\n this.animationSubscription.unsubscribe();\n }\n }\n getContainerProperty(propertyName) {\n return this.container.nativeElement[propertyName];\n }\n activeIndex() {\n return this.itemIndex(Math.ceil(this.containerScrollPosition)); //handle subpixeling\n }\n itemIndex(offset) {\n return this.rowHeightService.index(offset);\n }\n itemOffset(index) {\n return this.rowHeightService.offset(index);\n }\n isIndexVisible(index) {\n if (!this.rowHeightService) {\n return false;\n }\n const containerTop = this.containerScrollPosition;\n const containerBottom = containerTop + this.containerOffsetSize;\n const top = this.rowHeightService.offset(index);\n const bottom = top + this.rowHeightService.height(index);\n return top >= containerTop && bottom <= containerBottom;\n }\n isListScrolled(index) {\n return this.containerScrollPosition !== this.rowHeightService.offset(index);\n }\n scrollTo(value) {\n const scrollProperty = this.direction === \"vertical\" ? 'scrollTop' : 'scrollLeft';\n this.renderer.setProperty(this.container.nativeElement, scrollProperty, value);\n }\n scrollToIndex(index) {\n //XXX: scrolling with tick is required to prevent list jump in Chrome.\n //Original issue: focus first day in the month and press LEFT arrow.\n //Notice how the view jumps on every day change.\n //\n this.zone.runOutsideAngular(() => {\n this.resolvedPromise.then(() => {\n this.scrollTo(this.rowHeightService.offset(index));\n });\n });\n }\n scrollToBottom() {\n this.scrollTo(this.totalSize);\n }\n animateToIndex(index) {\n if (this.animationSubscription) {\n this.animationSubscription.unsubscribe();\n }\n const indexOffset = this.rowHeightService.offset(index);\n const direction = this.getContainerScrollDirection(indexOffset);\n const { start, end } = this.scrollRange(indexOffset, direction);\n if (start === end) {\n return;\n }\n const step = this.scrollStep(start, end);\n const modifyScroll = scrollModifiers[direction](step);\n const normalizeScroll = scrollNormalizers[direction](end);\n const isScrollValid = scrollValidators[direction](modifyScroll(end));\n this.zone.runOutsideAngular(() => {\n this.animationSubscription =\n combineLatest(of(start), interval(0, animationFrameScheduler)).pipe(map(stream => stream[0]), scan(modifyScroll), takeWhile(isScrollValid), map(normalizeScroll)).subscribe((x) => this.scrollTo(x));\n });\n }\n scrollRange(indexOffset, direction) {\n const containerScroll = this.containerScrollPosition;\n if (parseInt(indexOffset, 10) === parseInt(containerScroll, 10)) {\n return { start: indexOffset, end: indexOffset };\n }\n const maxScroll = this.containerMaxScroll();\n const sign = direction === ScrollDirection.Backward ? 1 : -1;\n const difference = differenceToScroll(containerScroll, indexOffset, this.maxScrollDifference);\n const end = Math.min(indexOffset, maxScroll);\n const start = Math.min(Math.max(end + (sign * difference), 0), maxScroll);\n return { start, end };\n }\n scrollStep(start, end) {\n return Math.abs(end - start) / (this.scrollDuration / FRAME_DURATION);\n }\n scroll$() {\n return isDocumentAvailable() ? fromEvent(this.container.nativeElement, 'scroll') : EMPTY;\n }\n initServices() {\n this.rowHeightService = this.createRowHeightService();\n if (this.scrollSubscription) {\n this.scrollSubscription.unsubscribe();\n }\n this.scrollSubscription = this.scroller\n .create(this.rowHeightService, this.skip, this.take, this.total, this.topOffset, this.scrollOffsetSize, this.direction)\n .subscribe((x) => {\n if (x instanceof PageAction) {\n this.pageChange.emit(x);\n }\n else {\n this.scrollChange.emit(x);\n }\n });\n }\n createRowHeightService() {\n const dimension = this.direction === 'vertical' ? this.itemHeight : this.itemWidth;\n return new RowHeightService(this.total, dimension, 0);\n }\n emitActiveIndex() {\n const index = this.rowHeightService.index(this.containerScrollPosition - this.topOffset);\n if (this.lastActiveIndex !== index) {\n this.lastActiveIndex = index;\n this.activeIndexChange.emit(index);\n }\n }\n containerMaxScroll() {\n return this.containerScrollSize - this.containerOffsetSize;\n }\n getContainerScrollDirection(indexOffset) {\n return indexOffset < this.containerScrollPosition ? ScrollDirection.Backward : ScrollDirection.Forward;\n }\n}\nVirtualizationComponent.decorators = [\n { type: Component, args: [{\n providers: [{\n provide: SCROLLER_FACTORY_TOKEN,\n useValue: DEFAULT_SCROLLER_FACTORY\n }],\n selector: 'kendo-virtualization',\n template: `\n \n \n `\n },] },\n];\n/** @nocollapse */\nVirtualizationComponent.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Inject, args: [SCROLLER_FACTORY_TOKEN,] }] },\n { type: ElementRef },\n { type: Renderer2 },\n { type: NgZone }\n];\nVirtualizationComponent.propDecorators = {\n direction: [{ type: Input }],\n itemHeight: [{ type: Input }],\n itemWidth: [{ type: Input }],\n topOffset: [{ type: Input }],\n bottomOffset: [{ type: Input }],\n maxScrollDifference: [{ type: Input }],\n scrollOffsetSize: [{ type: Input }],\n scrollDuration: [{ type: Input }],\n skip: [{ type: Input }],\n take: [{ type: Input }],\n total: [{ type: Input }],\n activeIndexChange: [{ type: Output }],\n pageChange: [{ type: Output }],\n scrollChange: [{ type: Output }],\n wrapperClasses: [{ type: HostBinding, args: ['class.k-content',] }, { type: HostBinding, args: ['class.k-scrollable',] }],\n horizontalClass: [{ type: HostBinding, args: ['class.k-scrollable-horizontal',] }]\n};\n\n/**\n * @hidden\n */\nconst closestInScope = (node, predicate, scope) => {\n while (node && node !== scope && !predicate(node)) {\n node = node.parentNode;\n }\n if (node !== scope) {\n return node;\n }\n};\n/**\n * @hidden\n */\nconst closest = (node, predicate) => {\n while (node && !predicate(node)) {\n node = node.parentNode;\n }\n return node;\n};\n\n/* tslint:disable:component-selector-name component-selector-type */\nconst ITEMS_COUNT = 30;\n/**\n * @hidden\n */\nclass NavigationComponent {\n constructor(bus, dom, intl, cdr, renderer) {\n this.bus = bus;\n this.dom = dom;\n this.intl = intl;\n this.cdr = cdr;\n this.renderer = renderer;\n this.min = new Date(MIN_DATE);\n this.max = new Date(MAX_DATE);\n this.focusedDate = new Date();\n this.valueChange = new EventEmitter();\n this.pageChange = new EventEmitter();\n this.dates = [];\n this.take = ITEMS_COUNT;\n this.indexToScroll = -1;\n }\n get getComponentClass() {\n return true;\n }\n ngOnInit() {\n this.dom.ensureHeights();\n const calendarHeight = this.dom.calendarHeight;\n this.itemHeight = this.dom.navigationItemHeight;\n this.maxViewHeight = this.dom.monthViewHeight;\n this.topOffset = (calendarHeight - this.itemHeight) / 2;\n this.bottomOffset = calendarHeight - this.itemHeight;\n this.intlSubscription = this.intl.changes.subscribe(this.intlChange.bind(this));\n }\n ngOnChanges(changes) {\n this.service = this.bus.service(this.activeView);\n if (!this.service) {\n return;\n }\n this.activeViewValue = CalendarViewEnum[this.activeView];\n const viewDate = dateInRange(this.focusedDate, this.min, this.max);\n const total = this.service.total(this.min, this.max);\n const totalChanged = this.total && this.total !== total;\n this.skip = this.service.skip(viewDate, this.min);\n this.total = total;\n if (totalChanged || !this.service.isInArray(viewDate, this.dates)) {\n this.dates = this.service.datesList(viewDate, this.getTake(this.skip));\n }\n if (!!changes.focusedDate || totalChanged) {\n this.indexToScroll = this.service.skip(this.focusedDate, this.min);\n }\n }\n ngOnDestroy() {\n if (this.intlSubscription) {\n this.intlSubscription.unsubscribe();\n }\n }\n ngAfterViewInit() {\n if (this.indexToScroll === -1) {\n return;\n }\n this.virtualization.scrollToIndex(this.indexToScroll);\n this.indexToScroll = -1;\n }\n ngAfterViewChecked() {\n if (this.indexToScroll === -1) {\n return;\n }\n this.virtualization.scrollToIndex(this.indexToScroll);\n this.indexToScroll = -1;\n }\n onPageChange({ skip }) {\n this.dates = this.service.datesList(this.service.addToDate(this.min, skip), this.getTake(skip));\n this.pageChange.emit();\n }\n scrollChange({ offset }) {\n const el = this.list.nativeElement;\n const translate = `translateY(${offset}px)`;\n this.renderer.setStyle(el, 'transform', translate);\n this.renderer.setStyle(el, '-ms-transform', translate);\n }\n handleDateChange(args) {\n const item = closestInScope(args.target, node => node.hasAttribute('data-date-index'), this.list.nativeElement);\n if (item) {\n const index = parseInt(item.getAttribute('data-date-index'), 10);\n const candidate = this.dates[index];\n this.valueChange.emit(cloneDate(candidate));\n }\n }\n getTake(skip) {\n return Math.min(this.total - skip, this.take);\n }\n intlChange() {\n if (this.activeView === CalendarViewEnum.month) {\n this.cdr.markForCheck();\n }\n }\n}\nNavigationComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-calendar-navigation',\n template: `\n \n \n
    \n
  • \n \n {{service.navigationTitle(date)}}\n \n \n
  • \n
\n \n `\n },] },\n];\n/** @nocollapse */\nNavigationComponent.ctorParameters = () => [\n { type: BusViewService },\n { type: CalendarDOMService },\n { type: IntlService },\n { type: ChangeDetectorRef },\n { type: Renderer2 }\n];\nNavigationComponent.propDecorators = {\n activeView: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n focusedDate: [{ type: Input }],\n templateRef: [{ type: Input }],\n valueChange: [{ type: Output }],\n pageChange: [{ type: Output }],\n virtualization: [{ type: ViewChild, args: [VirtualizationComponent,] }],\n list: [{ type: ViewChild, args: ['list', { static: true },] }],\n getComponentClass: [{ type: HostBinding, args: [\"class.k-calendar-navigation\",] }]\n};\n\nconst VIEWS_COUNT = 5;\nconst isEqualMonthYear = (date1, date2) => (date1 && date2 &&\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth());\n/**\n * @hidden\n */\nclass ViewListComponent {\n constructor(bus, cdr, intl, dom, renderer) {\n this.bus = bus;\n this.cdr = cdr;\n this.intl = intl;\n this.dom = dom;\n this.renderer = renderer;\n this.isActive = true;\n this.min = new Date(MIN_DATE);\n this.max = new Date(MAX_DATE);\n this.activeDateChange = new EventEmitter();\n this.valueChange = new EventEmitter();\n this.pageChange = new EventEmitter();\n this.dates = [];\n this.cols = [];\n this.weekNames = [];\n this.take = VIEWS_COUNT;\n this.animateToIndex = true;\n this.indexToScroll = -1;\n this.minViewsToRender = 1;\n }\n get weekNumber() {\n return this.showWeekNumbers && this.isMonthView();\n }\n set weekNumber(showWeekNumbers) {\n this.showWeekNumbers = showWeekNumbers;\n }\n get getComponentClass() {\n return true;\n }\n get getComponentMonthClass() {\n return this.activeView === CalendarViewEnum.month;\n }\n get getComponentYearClass() {\n return this.activeView === CalendarViewEnum.year;\n }\n get getComponentDecadeClass() {\n return this.activeView === CalendarViewEnum.decade;\n }\n get getComponentCenturyClass() {\n return this.activeView === CalendarViewEnum.century;\n }\n ngOnInit() {\n this.weekNames = this.getWeekNames();\n this.bottomOffset = this.getBottomOffset();\n this.viewOffset = -1 * this.dom.headerHeight;\n this.viewHeight = this.dom.viewHeight(this.activeView);\n this.intlSubscription = this.intl.changes.subscribe(this.intlChange.bind(this));\n }\n ngOnChanges(changes) {\n this.service = this.bus.service(this.activeView);\n if (!this.service) {\n return;\n }\n this.cols = new Array(this.service.rowLength(this.weekNumber)).fill('');\n this.colWidth = Math.round(100 / this.cols.length);\n this.weekNames = hasChange(changes, 'weekNumber') && this.weekNumber ? this.getWeekNames() : this.weekNames;\n const activeViewChanged = hasChange(changes, 'activeView');\n const focusedDate = this.focusedDate;\n const viewDate = dateInRange(this.service.viewDate(focusedDate, this.max, this.minViewsToRender), this.min, this.max);\n const total = this.service.total(this.min, this.max);\n const totalChanged = this.total && this.total !== total;\n const generateDates = totalChanged || !this.service.isInArray(focusedDate, this.dates);\n this.skip = this.service.skip(viewDate, this.min);\n this.total = total;\n this.animateToIndex = !activeViewChanged;\n this.bottomOffset = this.getBottomOffset();\n this.viewHeight = this.dom.viewHeight(this.activeView);\n if (generateDates) {\n this.dates = this.service.datesList(viewDate, this.getTake(this.skip));\n }\n if (!isEqualMonthYear(this.activeDate, focusedDate)) {\n this.activeDate = cloneDate(focusedDate);\n }\n const updateIndex = hasChange(changes, 'focusedDate') || activeViewChanged;\n if (generateDates || updateIndex || this.virtualization.isIndexVisible(this.skip)) {\n this.indexToScroll = this.service.skip(focusedDate, this.min);\n }\n }\n ngOnDestroy() {\n if (this.intlSubscription) {\n this.intlSubscription.unsubscribe();\n }\n }\n ngAfterViewInit() {\n if (this.indexToScroll === -1) {\n return;\n }\n this.virtualization.scrollToIndex(this.indexToScroll);\n this.indexToScroll = -1;\n }\n ngAfterViewChecked() {\n if (this.indexToScroll === -1) {\n return;\n }\n this.virtualization[this.animateToIndex ? 'animateToIndex' : 'scrollToIndex'](this.indexToScroll);\n this.animateToIndex = true;\n this.indexToScroll = -1;\n }\n onPageChange({ skip }) {\n this.dates = this.service.datesList(this.service.addToDate(this.min, skip), this.getTake(skip));\n this.pageChange.emit();\n }\n scrollChange({ offset }) {\n const el = this.list.nativeElement;\n const translate = `translateY(${offset}px)`;\n this.renderer.setStyle(el, 'transform', translate);\n this.renderer.setStyle(el, '-ms-transform', translate);\n }\n setActiveDate(index) {\n const candidate = this.service.addToDate(this.min, index);\n if (isEqual(this.activeDate, candidate)) {\n return;\n }\n this.activeDate = candidate;\n this.activeDateChange.emit(candidate);\n this.cdr.detectChanges();\n }\n handleDateChange(candidate) {\n this.valueChange.emit(candidate);\n }\n isMonthView() {\n return this.activeView === CalendarViewEnum.month;\n }\n isScrolled() {\n return this.virtualization.isListScrolled(this.service.skip(this.focusedDate, this.min));\n }\n getBottomOffset() {\n return this.getScrollableHeight() - this.dom.viewHeight(this.activeView);\n }\n getScrollableHeight() {\n return this.activeView === CalendarViewEnum.month ?\n this.dom.scrollableContentHeight :\n this.dom.scrollableYearContentHeight;\n }\n getTake(skip) {\n return Math.min(this.total - skip, this.take);\n }\n getWeekNames() {\n const weekNames = shiftWeekNames(this.intl.dateFormatNames({ nameType: 'short', type: 'days' }), this.intl.firstDay());\n return this.weekNumber ? [''].concat(weekNames) : weekNames;\n }\n intlChange() {\n this.weekNames = this.getWeekNames();\n if (this.isMonthView()) {\n this.cdr.markForCheck();\n }\n }\n}\nViewListComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-calendar-viewlist',\n template: `\n \n \n \n \n \n \n \n \n
{{name}}
\n \n \n \n\n \n
\n \n `\n },] },\n];\n/** @nocollapse */\nViewListComponent.ctorParameters = () => [\n { type: BusViewService },\n { type: ChangeDetectorRef },\n { type: IntlService },\n { type: CalendarDOMService },\n { type: Renderer2 }\n];\nViewListComponent.propDecorators = {\n cellTemplateRef: [{ type: Input }],\n weekNumberTemplateRef: [{ type: Input }],\n headerTitleTemplateRef: [{ type: Input }],\n activeView: [{ type: Input }],\n cellUID: [{ type: Input }],\n focusedDate: [{ type: Input }],\n isActive: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n value: [{ type: Input }],\n weekNumber: [{ type: Input }],\n activeDateChange: [{ type: Output }],\n valueChange: [{ type: Output }],\n pageChange: [{ type: Output }],\n virtualization: [{ type: ViewChild, args: [VirtualizationComponent,] }],\n list: [{ type: ViewChild, args: ['list', { static: true },] }],\n getComponentClass: [{ type: HostBinding, args: [\"class.k-calendar-view\",] }],\n getComponentMonthClass: [{ type: HostBinding, args: [\"class.k-calendar-monthview\",] }],\n getComponentYearClass: [{ type: HostBinding, args: [\"class.k-calendar-yearview\",] }],\n getComponentDecadeClass: [{ type: HostBinding, args: [\"class.k-calendar-decadeview\",] }],\n getComponentCenturyClass: [{ type: HostBinding, args: [\"class.k-calendar-centuryview\",] }]\n};\n\nconst KEY_TO_ACTION = {\n '33': Action.PrevView,\n '34': Action.NextView,\n '35': Action.LastInView,\n '36': Action.FirstInView,\n '37': Action.Left,\n '38': Action.Up,\n '39': Action.Right,\n '40': Action.Down,\n 'meta+38': Action.UpperView,\n 'meta+40': Action.LowerView\n};\n/**\n * @hidden\n */\nclass NavigationService {\n constructor(bus) {\n this.bus = bus;\n }\n action(event) {\n const action = `${event.ctrlKey || event.metaKey ? 'meta+' : ''}${event.keyCode}`;\n return KEY_TO_ACTION[action];\n }\n move(value, action, activeView) {\n const service = this.bus.service(activeView);\n if (!service) {\n return value;\n }\n if (action === Action.UpperView && this.bus.canMoveUp(activeView)) {\n this.bus.moveUp(activeView);\n return value;\n }\n if (action === Action.LowerView && this.bus.canMoveDown(activeView)) {\n this.bus.moveDown(activeView);\n return value;\n }\n return service.move(value, action);\n }\n}\nNavigationService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nNavigationService.ctorParameters = () => [\n { type: BusViewService }\n];\n\nconst divideByMagnitude = (magnitude) => x => Math.floor(x / magnitude);\nconst powerByMagnitude = (magnitude) => x => x * magnitude;\n/**\n * @hidden\n */\nclass ScrollSyncService {\n constructor(dom, zone) {\n this.dom = dom;\n this.zone = zone;\n }\n configure(activeView) {\n const magnitude = Math.max(this.dom.viewHeight(activeView) / this.dom.navigationItemHeight, 1);\n this.divideByMagnitude = divideByMagnitude(magnitude);\n this.powerByMagnitude = powerByMagnitude(magnitude);\n }\n sync(navigator, view) {\n this.unsubscribe();\n if (!navigator || !view) {\n return;\n }\n this.navigator = navigator;\n this.view = view;\n this.zone.runOutsideAngular(() => {\n let navScrolled, monthScrolled;\n this.navSubscription = navigator.scroll$()\n .subscribe((e) => {\n if (monthScrolled) {\n monthScrolled = false;\n return;\n }\n navScrolled = true;\n this.scrollSiblingOf(e.target);\n });\n this.viewSubscription = view.scroll$()\n .subscribe((e) => {\n if (navScrolled) {\n navScrolled = false;\n return;\n }\n monthScrolled = true;\n this.scrollSiblingOf(e.target);\n });\n });\n }\n scrollSiblingOf(scrolledElement) {\n const component = this.siblingComponent(scrolledElement);\n const scrollTop = this.calculateScroll(component, scrolledElement.scrollTop);\n component.scrollTo(scrollTop);\n }\n siblingComponent(scrollableElement) {\n return this.navigator.container.nativeElement === scrollableElement ? this.view : this.navigator;\n }\n calculateScroll(component, scrollTop) {\n const modifier = component === this.navigator ? this.divideByMagnitude : this.powerByMagnitude;\n return modifier(scrollTop);\n }\n destroy() {\n this.unsubscribe();\n }\n unsubscribe() {\n if (this.navSubscription) {\n this.navSubscription.unsubscribe();\n }\n if (this.viewSubscription) {\n this.viewSubscription.unsubscribe();\n }\n }\n}\nScrollSyncService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nScrollSyncService.ctorParameters = () => [\n { type: CalendarDOMService },\n { type: NgZone }\n];\n\n/**\n * Used for rendering the cell content of the Calendar. To define the cell template, nest an `` tag\n * with the `kendoCalendarCellTemplate` directive inside the component tag. The template context is set to the\n * current component. To get a reference to the current date, use the `let-date` directive. To provide more details\n * about the current cell, get a reference to the current `cellContext` by using the `let-cellContext` directive.\n *\n * For more examples, refer to the article on [templates]({% slug templates_calendar %}).\n *\n * > `kendoCalendarCellTemplate` is equivalent to\n * > [`kendoCalendarMonthCellTemplate`]({% slug api_dateinputs_monthcelltemplatedirective %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * styles: ['.custom { color: red; }'],\n * template: `\n * \n * \n * {{date.getDate()}}\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\nclass CellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nCellTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCalendarCellTemplate]'\n },] },\n];\n/** @nocollapse */\nCellTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Used for rendering the month cell content of the Calendar. To define the month cell template, nest an `` tag\n * with the `kendoCalendarMonthCellTemplate` directive inside the component tag. The template context is set to the current\n * component. To get a reference to the current date, use the `let-date` directive. To provide more details about the current\n * month cell, get a reference to the current `cellContext` by using the `let-cellContext` directive.\n *\n * For more examples, refer to the article on [templates]({% slug templates_calendar %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * styles: ['.custom { color: red; }'],\n * template: `\n * \n * \n * {{context.formattedValue}}\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\nclass MonthCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nMonthCellTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCalendarMonthCellTemplate]'\n },] },\n];\n/** @nocollapse */\nMonthCellTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Used for rendering the year cell content of the Calendar. To define the year cell template, nest an\n * `` tag with the `kendoCalendarYearCellTemplate` directive inside the component tag.\n * The template context is set to the current component. To get a reference to the current date, use\n * the `let-date` directive. To provide more details about the current year cell, get a reference to the\n * current `cellContext` by using the `let-cellContext` directive.\n *\n * For more examples, refer to the article on [templates]({% slug templates_calendar %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * styles: ['.custom { color: red; }'],\n * template: `\n * \n * \n * {{context.formattedValue}}\n * \n * \n * `\n * })\n * class AppComponent {\n * public activeView: CalendarView = 'year';\n * }\n * ```\n */\nclass YearCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nYearCellTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCalendarYearCellTemplate]'\n },] },\n];\n/** @nocollapse */\nYearCellTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Used for rendering the decade cell content of the Calendar. To define the decade cell template, nest an ``\n * tag with the `kendoCalendarDecadeCellTemplate` directive inside the component tag. The template context is set to the\n * current component. To get a reference to the current date, use the `let-date` directive. To provide more details about\n * the current decade cell, get a reference to the current `cellContext` by using the `let-cellContext` directive.\n *\n * For more examples, refer to the article on [templates]({% slug templates_calendar %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * styles: ['.custom { color: red; }'],\n * template: `\n * \n * \n * {{context.formattedValue}}\n * \n * \n * `\n * })\n * class AppComponent {\n * public activeView: CalendarView = 'decade';\n * }\n * ```\n */\nclass DecadeCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nDecadeCellTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCalendarDecadeCellTemplate]'\n },] },\n];\n/** @nocollapse */\nDecadeCellTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Used for rendering the century cell content of the Calendar. To define the century cell template, nest an ``\n * tag with the `kendoCalendarCenturyCellTemplate` directive inside the component tag. The template context is set to the\n * current component. To get a reference to the current date, use the `let-date` directive. To provide more details about\n * the current century cell, get a reference to the current `cellContext` by using the `let-cellContext` directive.\n *\n * For more examples, refer to the article on [templates]({% slug templates_calendar %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * styles: ['.custom { color: red; }'],\n * template: `\n * \n * \n * {{context.formattedValue}}\n * \n * \n * `\n * })\n * class AppComponent {\n * public activeView: CalendarView = 'century';\n * }\n * ```\n */\nclass CenturyCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nCenturyCellTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCalendarCenturyCellTemplate]'\n },] },\n];\n/** @nocollapse */\nCenturyCellTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Used for rendering the week number cell content in the month view of the Calendar. To define the month week number cell template,\n * nest an `` tag with the `kendoCalendarWeekNumberCellTemplate` directive inside the component tag. The template\n * context is set to the current component. To get a reference to the current date, use the `let-date` directive. To provide more\n * details about the current week number cell, get a reference to the current `cellContext` by using the `let-cellContext` directive.\n *\n * For more examples, refer to the article on [templates]({% slug templates_calendar %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * styles: ['.custom { color: red; }'],\n * template: `\n * \n * \n * {{context.formattedValue}}\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\nclass WeekNumberCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nWeekNumberCellTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCalendarWeekNumberCellTemplate]'\n },] },\n];\n/** @nocollapse */\nWeekNumberCellTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Used for rendering the header title of the Calendar. To define the header title template, nest an `` tag\n * with the `kendoCalendarHeaderTitleTemplate` directive inside the component tag. The template context is set to the\n * current component. To get a reference to the current title, use the `let-title` directive. To provide more details about\n * the current title, get a reference to the current `date` by using the `let-date` directive or get a reference to the\n * current active view by using the `let-activeView` directive.\n *\n * For more examples, refer to the article on [templates]({% slug templates_calendar %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * styles: ['.custom { color: red; }'],\n * template: `\n * \n * \n * {{title}}\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\nclass HeaderTitleTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nHeaderTitleTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCalendarHeaderTitleTemplate]'\n },] },\n];\n/** @nocollapse */\nHeaderTitleTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Used for rendering the navigation item of the Calendar. To define the navigation item template, nest an ``\n * tag with the `kendoCalendarNavigationItemTemplate` directive inside the component tag. The template context is set to the\n * current component. To get a reference to the current item value, use the `let-title` directive. To provide more details\n * about the current title, get a reference to the current `date` by using the `let-date='date'` directive or get a reference\n * to the current active view by using the `let-activeView='activeView'` directive.\n *\n * For more examples, refer to the article on [templates]({% slug templates_calendar %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * styles: ['.custom { color: red; }'],\n * template: `\n * \n * \n * {{title}}\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\nclass NavigationItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNavigationItemTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCalendarNavigationItemTemplate]'\n },] },\n];\n/** @nocollapse */\nNavigationItemTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * @hidden\n */\nclass PickerService {\n constructor() {\n this.onFocus = new EventEmitter();\n this.onBlur = new EventEmitter();\n this.sameDateSelected = new EventEmitter();\n }\n}\n\n/**\n * @hidden\n */\nconst minValidator = (minValue) => {\n return (control) => {\n const err = {\n minError: {\n minValue: minValue,\n value: control.value\n }\n };\n if (!minValue || !control.value) {\n return null;\n }\n return control.value < minValue ? err : null;\n };\n};\n\n/**\n * @hidden\n */\nconst maxValidator = (maxValue) => {\n return (control) => {\n const err = {\n maxError: {\n maxValue: maxValue,\n value: control.value\n }\n };\n if (!maxValue || !control.value) {\n return null;\n }\n return control.value > maxValue ? err : null;\n };\n};\n\n/**\n * @hidden\n */\nconst requiresZoneOnBlur = (ngControl) => ngControl &&\n (!ngControl.touched || (ngControl.control && ngControl.control.updateOn === 'blur'));\n/**\n * @hidden\n */\nconst preventDefault = (args) => args.preventDefault();\n/**\n * @hidden\n */\nconst currentFocusTarget = (blurArgs) => blurArgs.relatedTarget || document.activeElement;\n/**\n * @hidden\n */\nconst isPresent = (value) => value !== undefined && value !== null;\n/**\n * @hidden\n *\n * If the provided parameter is an array with at least one item\n * and all items in the array are numbers, returns `true.\n */\nconst isNumberArray = (value) => Array.isArray(value) && value.length > 0 && value.every(item => typeof item === 'number');\n/**\n * @hidden\n *\n * If the provided parameter is an array with at least one item\n * and all items in the array are dates, returns `true`.\n */\nconst isDateArray = (value) => Array.isArray(value) && value.length > 0 && value.every(item => item instanceof Date);\n\nconst noop$1 = () => false;\nconst DISABLED_DATES_DOC_LINK = 'https://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/disabled-dates/';\n/**\n * @hidden\n */\nclass DisabledDatesService {\n constructor() {\n /**\n * Emits every time the `isDateDisabled` method changes.\n */\n this.changes = new Subject();\n /**\n * Based on the user-defined `disabledDates` input evaluates if the date is disabled.\n * If not set, returns `false`.\n */\n this.isDateDisabled = noop$1;\n }\n /**\n * Configures the `isDateDisabled` function.\n *\n * * If a function is provided, uses it as-is and passes each date to it for evaluation.\n * The time part is set to `midnight`.\n * * If a `Date[]` is provided, creates a function that checks the targeted date against\n * the listed dates and, if the targeted date is listed, marks it as disabled.\n * * If a `Day[]` is provided, creates a function that evaluates the provided days of the\n * week as disabled.\n */\n initialize(disabledDates) {\n if (typeof disabledDates === 'function') {\n this.isDateDisabled = (date) => disabledDates(getDate(date));\n }\n else if (isNumberArray(disabledDates)) {\n const disabledWeekDays = new Set(disabledDates);\n this.isDateDisabled = (date) => disabledWeekDays.has(date.getDay());\n }\n else if (isDateArray(disabledDates)) {\n const normalizedDisabledDates = new Set(disabledDates.map(date => getDate(date).getTime()));\n this.isDateDisabled = (date) => normalizedDisabledDates.has(getDate(date).getTime());\n }\n else {\n this.isDateDisabled = noop$1;\n this.notifyInvalidInput(disabledDates);\n }\n this.notifyServiceChange();\n }\n notifyInvalidInput(disabledDates) {\n if (isPresent(disabledDates) && isDevMode()) {\n throw new Error(`The 'disabledDates' value should be a function, a Day array or a Date array. Check ${DISABLED_DATES_DOC_LINK} for more information.`);\n }\n }\n notifyServiceChange() {\n this.changes.next();\n }\n}\nDisabledDatesService.decorators = [\n { type: Injectable },\n];\n\n/* tslint:disable:no-forward-ref */\nconst BOTTOM_VIEW_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-bottomview';\nconst TOP_VIEW_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-topview';\nconst MIN_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-min';\nconst MAX_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-max';\nconst VALUE_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/#toc-using-with-json';\nconst virtualizationProp = x => x ? x.virtualization : null;\n/**\n * @hidden\n */\nconst CALENDAR_VALUE_ACCESSOR = {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CalendarComponent) //tslint:disable-line:no-use-before-declare\n};\n/**\n * @hidden\n */\nconst CALENDAR_RANGE_VALIDATORS = {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CalendarComponent) //tslint:disable-line:no-use-before-declare\n};\n/**\n * @hidden\n */\nconst KENDO_INPUT_PROVIDER = {\n provide: KendoInput,\n useExisting: forwardRef(() => CalendarComponent) //tslint:disable-line:no-use-before-declare\n};\n/**\n * Represents the [Kendo UI Calendar component for Angular]({% slug overview_calendar %}#toc-basic-usage).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\nclass CalendarComponent {\n constructor(bus, dom, element, navigator, renderer, cdr, ngZone, injector, scrollSyncService, disabledDatesService, pickerService) {\n this.bus = bus;\n this.dom = dom;\n this.element = element;\n this.navigator = navigator;\n this.renderer = renderer;\n this.cdr = cdr;\n this.ngZone = ngZone;\n this.injector = injector;\n this.scrollSyncService = scrollSyncService;\n this.disabledDatesService = disabledDatesService;\n this.pickerService = pickerService;\n /**\n * @hidden\n */\n this.id = guid();\n /**\n * Determines whether the built-in min or max validators are enforced when validating a form.\n */\n this.rangeValidation = false;\n /**\n * Sets or gets the `disabled` property of the Calendar and\n * determines whether the component is active\n * ([see example]({% slug disabled_calendar %})).\n */\n this.disabled = false;\n /**\n * Sets or gets the `tabindex` property of the Calendar. Based on the\n * [HTML `tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) behavior,\n * it determines whether the component is focusable.\n */\n this.tabindex = 0;\n /**\n * Sets or gets the `navigation` property of the Calendar\n * and determines whether the navigation side-bar will be displayed\n * ([see example]({% slug sidebar_calendar %})).\n */\n this.navigation = true;\n /**\n * Defines the active view that the Calendar initially renders\n * ([see example]({% slug activeview_calendar %})).\n * By default, the active view is `month`.\n *\n * > You have to set `activeView` within the `topView`-`bottomView` range.\n */\n this.activeView = CalendarViewEnum[CalendarViewEnum.month];\n /**\n * Defines the bottommost view to which the user can navigate\n * ([see example]({% slug dates_calendar %}#toc-partial-dates)).\n */\n this.bottomView = CalendarViewEnum[CalendarViewEnum.month];\n /**\n * Defines the topmost view to which the user can navigate\n * ([see example]({% slug sidebar_calendar %}#toc-partial-dates)).\n */\n this.topView = CalendarViewEnum[CalendarViewEnum.century];\n /**\n * Determines whether to display a week number column in the `month` view\n * ([see example]({% slug weeknumcolumn_calendar %})).\n */\n this.weekNumber = false;\n /**\n * Fires when the active view is changed\n * ([more information and example]({% slug overview_calendar %}#toc-events)).\n */\n this.activeViewChange = new EventEmitter();\n /**\n * Fires when the active view date is changed\n * ([more information and example]({% slug overview_calendar %}#toc-events)).\n */\n this.activeViewDateChange = new EventEmitter();\n /**\n * Fires when the value is changed\n * ([more information and example]({% slug overview_calendar %}#toc-events)).\n */\n this.valueChange = new EventEmitter();\n this.isActive = false;\n this.cellUID = guid();\n this._min = new Date(MIN_DATE);\n this._max = new Date(MAX_DATE);\n this._focusedDate = getToday();\n this.onControlChange = noop;\n this.onControlTouched = noop;\n this.onValidatorChange = noop;\n this.minValidateFn = noop;\n this.maxValidateFn = noop;\n this.syncNavigation = true;\n this.domEvents = [];\n this.resolvedPromise = Promise.resolve(null);\n this.destroyed = false;\n this.setClasses(element.nativeElement);\n if (this.pickerService) {\n this.pickerService.calendar = this;\n }\n }\n /**\n * Sets or gets the `focusedDate` property of the Calendar and\n * defines the focused date of the component\n * ([see example]({% slug dates_calendar %}#toc-focused-dates)).\n *\n * > If the Calendar is out of the min or max range, it normalizes the defined `focusedDate`.\n */\n set focusedDate(focusedDate) {\n this._focusedDate = focusedDate || getToday();\n this.setAriaActivedescendant();\n }\n get focusedDate() {\n return this._focusedDate;\n }\n /**\n * Sets or gets the `min` property of the Calendar and\n * defines the minimum allowed date value\n * ([see example]({% slug dateranges_calendar %})).\n * By default, the `min` value is `1900-1-1`.\n */\n set min(min) {\n this._min = min || new Date(MIN_DATE);\n }\n get min() {\n return this._min;\n }\n /**\n * Sets or gets the `max` property of the Calendar and\n * defines the maximum allowed date value\n * ([see example]({% slug dateranges_calendar %})).\n * By default, the `max` value is `2099-12-31`.\n */\n set max(max) {\n this._max = max || new Date(MAX_DATE);\n }\n get max() {\n return this._max;\n }\n /**\n * Sets or gets the `value` property of the Calendar and defines the selected value of the component.\n *\n * > The `value` has to be a valid\n * [JavaScript `Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.\n */\n get value() {\n return this._value;\n }\n set value(candidate) {\n this.verifyValue(candidate);\n this._value = cloneDate(candidate);\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n /**\n * Sets the dates of the Calendar that will be disabled\n * ([see example]({% slug disabled_dates_calendar %})).\n */\n set disabledDates(value) {\n this.disabledDatesService.initialize(value);\n }\n /**\n * @hidden\n */\n set cellTemplateRef(template) {\n this.cellTemplate = template;\n }\n /**\n * @hidden\n */\n set monthCellTemplateRef(template) {\n this.monthCellTemplate = template;\n }\n /**\n * @hidden\n */\n set yearCellTemplateRef(template) {\n this.yearCellTemplate = template;\n }\n /**\n * @hidden\n */\n set decadeCellTemplateRef(template) {\n this.decadeCellTemplate = template;\n }\n /**\n * @hidden\n */\n set centuryCellTemplateRef(template) {\n this.centuryCellTemplate = template;\n }\n /**\n * @hidden\n */\n set weekNumberTemplateRef(template) {\n this.weekNumberTemplate = template;\n }\n /**\n * @hidden\n */\n set headerTitleTemplateRef(template) {\n this.headerTitleTemplate = template;\n }\n /**\n * @hidden\n */\n set navigationItemTemplateRef(template) {\n this.navigationItemTemplate = template;\n }\n get activeViewEnum() {\n const activeView = CalendarViewEnum[this.activeView];\n return activeView < this.bottomViewEnum ? this.bottomViewEnum : activeView;\n }\n get bottomViewEnum() {\n return CalendarViewEnum[this.bottomView];\n }\n get topViewEnum() {\n return CalendarViewEnum[this.topView];\n }\n get widgetId() {\n return this.id;\n }\n get widgetRole() {\n return 'grid';\n }\n get calendarTabIndex() {\n return this.disabled ? undefined : this.tabIndex;\n }\n get ariaDisabled() {\n return this.disabled;\n }\n ngOnInit() {\n this.dom.calculateHeights(this.element.nativeElement);\n this.scrollSyncService.configure(this.activeViewEnum);\n this.viewChangeSubscription = this.bus.viewChanged.subscribe(({ view }) => {\n this.activeView = CalendarViewEnum[view];\n this.emitEvent(this.activeViewChange, this.activeView);\n this.scrollSyncService.configure(view);\n this.detectChanges(); // requires zone if templates\n });\n this.control = this.injector.get(NgControl, null);\n if (this.element) {\n this.ngZone.runOutsideAngular(() => {\n this.bindEvents();\n });\n }\n }\n ngOnChanges(changes) {\n this.verifyChanges();\n this.bus.configure(this.bottomViewEnum, this.topViewEnum);\n this.scrollSyncService.configure(this.activeViewEnum);\n const useValue = hasExistingValue(changes, 'value') && !hasExistingValue(changes, 'focusedDate');\n const focusedDate = dateInRange(cloneDate(useValue ? this.value : this.focusedDate), this.min, this.max);\n this.focusedDate = !isEqual(this.focusedDate, focusedDate) ? focusedDate : this.focusedDate;\n if (changes.navigation) {\n this.syncNavigation = true;\n }\n if (changes.min || changes.max || changes.rangeValidation) {\n this.minValidateFn = this.rangeValidation ? minValidator(this.min) : noop;\n this.maxValidateFn = this.rangeValidation ? maxValidator(this.max) : noop;\n this.onValidatorChange();\n }\n }\n ngAfterViewInit() {\n this.setAriaActivedescendant();\n }\n ngAfterViewChecked() {\n if (!this.syncNavigation) {\n return;\n }\n this.syncNavigation = false;\n this.scrollSyncService.sync(virtualizationProp(this.navigationView), virtualizationProp(this.monthView));\n }\n ngOnDestroy() {\n this.scrollSyncService.destroy();\n this.viewChangeSubscription.unsubscribe();\n this.domEvents.forEach(unbindCallback => unbindCallback());\n if (this.pickerService) {\n this.pickerService.calendar = null;\n }\n if (this.pageChangeSubscription) {\n this.pageChangeSubscription.unsubscribe();\n }\n this.destroyed = true;\n }\n /**\n * Focuses the host element of the Calendar.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n if (!this.element) {\n return;\n }\n this.element.nativeElement.focus();\n }\n /**\n * Blurs the Calendar component.\n */\n blur() {\n if (!this.element) {\n return;\n }\n this.element.nativeElement.blur();\n }\n /**\n * @hidden\n */\n containsElement(element) {\n return Boolean(closest(element, node => node === this.element.nativeElement));\n }\n /**\n * @hidden\n */\n handleNavigation(candidate) {\n if (this.disabled) {\n return;\n }\n this.focusedDate = dateInRange(cloneDate(candidate) || this.focusedDate, this.min, this.max);\n this.detectChanges();\n }\n /**\n * @hidden\n */\n onPageChange() {\n if (!NgZone.isInAngularZone()) {\n if (this.pageChangeSubscription) {\n this.pageChangeSubscription.unsubscribe();\n }\n this.pageChangeSubscription = from(this.resolvedPromise)\n .subscribe(() => {\n this.detectChanges(); // requires zone if templates\n });\n }\n }\n /**\n * @hidden\n */\n handleDateChange(candidate) {\n const canNavigateDown = this.bus.canMoveDown(this.activeViewEnum);\n const isSameDate = !canNavigateDown && isEqual(candidate, this.value);\n this.focusedDate = cloneDate(candidate) || this.focusedDate;\n if (this.disabled) {\n return;\n }\n if (isSameDate) {\n this.emitSameDate();\n return;\n }\n if (canNavigateDown) {\n this.bus.moveDown(this.activeViewEnum);\n return;\n }\n if (!this.disabledDatesService.isDateDisabled(candidate)) {\n this.ngZone.run(() => {\n this.value = cloneDate(candidate);\n this.onControlChange(cloneDate(candidate));\n this.valueChange.emit(cloneDate(candidate));\n this.cdr.markForCheck();\n });\n }\n }\n /**\n * @hidden\n */\n writeValue(candidate) {\n this.verifyValue(candidate);\n this.focusedDate = dateInRange(cloneDate(candidate) || this.focusedDate, this.min, this.max);\n this.value = cloneDate(candidate);\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onControlChange = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onControlTouched = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n validate(control) {\n return this.minValidateFn(control) || this.maxValidateFn(control);\n }\n /**\n * @hidden\n */\n registerOnValidatorChange(fn) {\n this.onValidatorChange = fn;\n }\n /**\n * @hidden\n */\n activeCellTemplate() {\n switch (this.activeViewEnum) {\n case CalendarViewEnum.month:\n return this.monthCellTemplate || this.cellTemplate;\n case CalendarViewEnum.year:\n return this.yearCellTemplate;\n case CalendarViewEnum.decade:\n return this.decadeCellTemplate;\n case CalendarViewEnum.century:\n return this.centuryCellTemplate;\n default:\n return null;\n }\n }\n /**\n * @hidden\n */\n emitEvent(emitter, args) {\n if (hasObservers(emitter)) {\n this.ngZone.run(() => {\n emitter.emit(args);\n });\n }\n }\n setClasses(element) {\n this.renderer.addClass(element, 'k-widget');\n this.renderer.addClass(element, 'k-calendar');\n this.renderer.addClass(element, 'k-calendar-infinite');\n }\n verifyChanges() {\n if (!isDevMode()) {\n return;\n }\n if (this.min > this.max) {\n throw new Error(`The max value should be bigger than the min. See ${MIN_DOC_LINK} and ${MAX_DOC_LINK}.`);\n }\n if (this.bottomViewEnum > this.topViewEnum) {\n throw new Error(`The topView should be greater than bottomView. See ${BOTTOM_VIEW_DOC_LINK} and ${TOP_VIEW_DOC_LINK}.`);\n }\n }\n verifyValue(candidate) {\n if (!isDevMode()) {\n return;\n }\n if (candidate && !(candidate instanceof Date)) {\n throw new Error(`The 'value' should be a valid JavaScript Date instance. Check ${VALUE_DOC_LINK} for possible resolution.`);\n }\n }\n bindEvents() {\n const element = this.element.nativeElement;\n this.domEvents.push(this.renderer.listen(element, 'blur', this.handleBlur.bind(this)), this.renderer.listen(element, 'focus', this.handleFocus.bind(this)), this.renderer.listen(element, 'mousedown', preventDefault), this.renderer.listen(element, 'click', this.handleClick.bind(this)), this.renderer.listen(element, 'keydown', this.handleKeydown.bind(this)));\n }\n emitBlur(args) {\n if (this.pickerService) {\n this.pickerService.onBlur.emit(args);\n }\n }\n emitFocus() {\n if (this.pickerService) {\n this.pickerService.onFocus.emit();\n }\n }\n handleBlur(args) {\n this.isActive = false;\n // the injector can get the NgControl instance of the parent component (for example, the DateTimePicker)\n // and enters the zone for no reason because the parent component is still untouched\n if (!this.pickerService && requiresZoneOnBlur(this.control)) {\n this.ngZone.run(() => {\n this.onControlTouched();\n this.emitBlur(args);\n this.cdr.markForCheck();\n });\n }\n else {\n this.emitBlur(args);\n this.detectChanges();\n }\n }\n handleFocus() {\n this.isActive = true;\n if (!NgZone.isInAngularZone()) {\n this.detectChanges();\n }\n this.emitFocus();\n }\n handleClick() {\n if (!this.isActive) {\n if (this.monthView.isScrolled()) {\n this.focusedDate = cloneDate(this.focusedDate); //XXX: forces change detect\n this.detectChanges();\n }\n this.focus();\n }\n }\n handleKeydown(args) {\n // reserve the alt + arrow key commands for the picker\n const arrowKeyPressed = [Keys.ArrowUp, Keys.ArrowRight, Keys.ArrowDown, Keys.ArrowLeft].indexOf(args.keyCode) !== -1;\n if (isPresent(this.pickerService) && arrowKeyPressed && args.altKey) {\n return;\n }\n const candidate = dateInRange(this.navigator.move(this.focusedDate, this.navigator.action(args), this.activeViewEnum), this.min, this.max);\n if (!isEqual(this.focusedDate, candidate)) {\n this.focusedDate = candidate;\n this.detectChanges();\n args.preventDefault();\n }\n if (args.keyCode === Keys.Enter) {\n this.handleDateChange(this.focusedDate);\n }\n }\n detectChanges() {\n if (!this.destroyed) {\n this.cdr.detectChanges();\n }\n }\n emitSameDate() {\n if (this.pickerService) {\n this.pickerService.sameDateSelected.emit();\n }\n }\n setAriaActivedescendant() {\n if (!isPresent(this.element)) {\n return;\n }\n const focusedCellId = this.cellUID + this.focusedDate.getTime();\n this.renderer.setAttribute(this.element.nativeElement, 'aria-activedescendant', focusedCellId);\n }\n}\nCalendarComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendo-calendar',\n providers: [\n BusViewService,\n CALENDAR_VALUE_ACCESSOR,\n CALENDAR_RANGE_VALIDATORS,\n KENDO_INPUT_PROVIDER,\n LocalizationService,\n DisabledDatesService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.calendar'\n },\n NavigationService,\n ScrollSyncService\n ],\n selector: 'kendo-calendar',\n template: `\n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nCalendarComponent.ctorParameters = () => [\n { type: BusViewService },\n { type: CalendarDOMService },\n { type: ElementRef },\n { type: NavigationService },\n { type: Renderer2 },\n { type: ChangeDetectorRef },\n { type: NgZone },\n { type: Injector },\n { type: ScrollSyncService },\n { type: DisabledDatesService },\n { type: PickerService, decorators: [{ type: Optional }] }\n];\nCalendarComponent.propDecorators = {\n id: [{ type: Input }],\n focusedDate: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n rangeValidation: [{ type: Input }],\n value: [{ type: Input }],\n disabled: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input }],\n disabledDates: [{ type: Input }],\n navigation: [{ type: Input }],\n activeView: [{ type: Input }],\n bottomView: [{ type: Input }],\n topView: [{ type: Input }],\n weekNumber: [{ type: Input }, { type: HostBinding, args: ['class.k-week-number',] }],\n activeViewChange: [{ type: Output }],\n activeViewDateChange: [{ type: Output }],\n valueChange: [{ type: Output }],\n cellTemplate: [{ type: ContentChild, args: [CellTemplateDirective, { static: true },] }],\n cellTemplateRef: [{ type: Input, args: ['cellTemplate',] }],\n monthCellTemplate: [{ type: ContentChild, args: [MonthCellTemplateDirective, { static: true },] }],\n monthCellTemplateRef: [{ type: Input, args: ['monthCellTemplate',] }],\n yearCellTemplate: [{ type: ContentChild, args: [YearCellTemplateDirective, { static: true },] }],\n yearCellTemplateRef: [{ type: Input, args: ['yearCellTemplate',] }],\n decadeCellTemplate: [{ type: ContentChild, args: [DecadeCellTemplateDirective, { static: true },] }],\n decadeCellTemplateRef: [{ type: Input, args: ['decadeCellTemplate',] }],\n centuryCellTemplate: [{ type: ContentChild, args: [CenturyCellTemplateDirective, { static: true },] }],\n centuryCellTemplateRef: [{ type: Input, args: ['centuryCellTemplate',] }],\n weekNumberTemplate: [{ type: ContentChild, args: [WeekNumberCellTemplateDirective, { static: true },] }],\n weekNumberTemplateRef: [{ type: Input, args: ['weekNumberTemplate',] }],\n headerTitleTemplate: [{ type: ContentChild, args: [HeaderTitleTemplateDirective, { static: true },] }],\n headerTitleTemplateRef: [{ type: Input, args: ['headerTitleTemplate',] }],\n navigationItemTemplate: [{ type: ContentChild, args: [NavigationItemTemplateDirective, { static: true },] }],\n navigationItemTemplateRef: [{ type: Input, args: ['navigationItemTemplate',] }],\n navigationView: [{ type: ViewChild, args: [NavigationComponent,] }],\n monthView: [{ type: ViewChild, args: [ViewListComponent,] }],\n widgetId: [{ type: HostBinding, args: ['attr.id',] }],\n widgetRole: [{ type: HostBinding, args: ['attr.role',] }],\n calendarTabIndex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n ariaDisabled: [{ type: HostBinding, args: ['attr.aria-disabled',] }, { type: HostBinding, args: ['class.k-state-disabled',] }]\n};\n\n/**\n * @hidden\n */\nvar Arrow;\n(function (Arrow) {\n Arrow[Arrow[\"Up\"] = 0] = \"Up\";\n Arrow[Arrow[\"Down\"] = 1] = \"Down\";\n Arrow[Arrow[\"None\"] = 2] = \"None\";\n})(Arrow || (Arrow = {}));\n\n/* tslint:disable:max-line-length */\nconst MIN_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/DateInputComponent/#toc-min';\nconst MAX_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/DateInputComponent/#toc-max';\nconst VALUE_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/dateinput/#toc-using-with-json';\nconst DATE_PART_REGEXP = /year|month|/;\nconst TIME_PART_REGEXP = /hour|minute|second|millisecond/;\nconst SHORT_PATTERN_LENGTH_REGEXP = /d|M|H|h|m|s/;\nconst padZero = (length) => new Array(Math.max(length, 0)).fill('0').join('');\nconst unpadZero = (value) => value.replace(/^0*/, '');\nclass Mask {\n constructor() {\n this.symbols = \"\";\n }\n}\nclass KendoDate {\n constructor(intl, formatPlaceholder, format, value) {\n this.intl = intl;\n this.formatPlaceholder = formatPlaceholder;\n this.format = format;\n this.year = true;\n this.month = true;\n this.date = true;\n this.hours = true;\n this.minutes = true;\n this.seconds = true;\n this.milliseconds = true;\n this.leadingZero = null;\n this.monthNames = null;\n this.typedMonthPart = \"\";\n this.value = getDate(new Date());\n this.knownParts = \"adHhmMsEy\";\n this.symbols = {\n \"E\": \"E\",\n \"H\": \"H\",\n \"M\": \"M\",\n \"a\": \"a\",\n \"d\": \"d\",\n \"h\": \"h\",\n \"m\": \"m\",\n \"s\": \"s\",\n \"y\": \"y\"\n };\n this.monthNames = this.allFormatedMonths();\n this.dayPeriods = this.allDayPeriods();\n if (!value) {\n this.value = getDate(new Date());\n const sampleFormat = this.dateFormatString(this.value, this.format).symbols;\n for (let i = 0; i < sampleFormat.length; i++) {\n this.setExisting(sampleFormat[i], false);\n }\n }\n else {\n this.value = cloneDate(value);\n }\n }\n hasValue() {\n const pred = (a, p) => a || p.type !== 'literal' && p.type !== 'dayperiod' && this.getExisting(p.pattern[0]);\n return this.intl.splitDateFormat(this.format).reduce(pred, false);\n }\n getDateObject() {\n for (let i = 0; i < this.knownParts.length; i++) {\n if (!this.getExisting(this.knownParts[i])) {\n return null;\n }\n }\n return cloneDate(this.value);\n }\n getTextAndFormat() {\n return this.merge(this.intl.formatDate(this.value, this.format), this.dateFormatString(this.value, this.format));\n }\n getExisting(symbol) {\n switch (symbol) {\n case \"y\": return this.year;\n case \"M\":\n case \"L\": return this.month;\n case \"d\": return this.date;\n case \"E\": return this.date && this.month && this.year;\n case \"h\":\n case \"H\": return this.hours;\n case \"m\": return this.minutes;\n case \"s\": return this.seconds;\n default: return true;\n }\n }\n setExisting(symbol, value) {\n switch (symbol) {\n case \"y\":\n this.year = value;\n if (value === false) {\n this.value.setFullYear(2000);\n }\n break; //allow 2/29 dates\n case \"M\":\n this.month = value;\n if (value === false) {\n this.value.setMonth(0);\n }\n break; //make sure you can type 31 at day part\n case \"d\":\n this.date = value;\n break;\n case \"h\":\n case \"H\":\n this.hours = value;\n break;\n case \"m\":\n this.minutes = value;\n break;\n case \"s\":\n this.seconds = value;\n break;\n default: return;\n }\n }\n modifyPart(symbol, offset) {\n let newValue = cloneDate(this.value);\n switch (symbol) {\n case \"y\":\n newValue.setFullYear(newValue.getFullYear() + offset);\n break;\n case \"M\":\n newValue = addMonths(this.value, offset);\n break;\n case \"d\":\n case \"E\":\n newValue.setDate(newValue.getDate() + offset);\n break;\n case \"h\":\n case \"H\":\n newValue.setHours(newValue.getHours() + offset);\n break;\n case \"m\":\n newValue.setMinutes(newValue.getMinutes() + offset);\n break;\n case \"s\":\n newValue.setSeconds(newValue.getSeconds() + offset);\n break;\n case \"a\":\n newValue.setHours(newValue.getHours() + (12 * offset));\n break;\n default: break;\n }\n if (newValue.getFullYear() > 0) {\n this.setExisting(symbol, true);\n this.value = newValue;\n }\n }\n parsePart(symbol, currentChar, resetSegmentValue) {\n if (!currentChar) {\n this.resetLeadingZero();\n this.setExisting(symbol, false);\n return { value: null, switchToNext: false };\n }\n let baseDate = this.intl.formatDate(this.value, this.format);\n let dateParts = this.dateFormatString(this.value, this.format);\n let baseFormat = dateParts.symbols;\n let replaced = false;\n let prefix = \"\";\n let current = \"\";\n let suffix = \"\";\n for (let i = 0; i < baseDate.length; i++) {\n if (baseFormat[i] === symbol) {\n current += this.getExisting(symbol) ? baseDate[i] : \"0\";\n replaced = true;\n }\n else if (!replaced) {\n prefix += baseDate[i];\n }\n else {\n suffix += baseDate[i];\n }\n }\n let currentMaxLength = current.length - 3;\n let parsedDate = null;\n const month = this.matchMonth(currentChar);\n const dayPeriod = this.matchDayPeriod(currentChar, symbol);\n const isZeroCurrentChar = currentChar === '0';\n const leadingZero = (this.leadingZero || {})[symbol] || 0;\n if (isZeroCurrentChar) {\n let valueNumber = parseInt(resetSegmentValue ? currentChar : current + currentChar, 10);\n if (valueNumber === 0 && !this.isAbbrMonth(dateParts.partMap, symbol)) {\n this.incrementLeadingZero(symbol);\n }\n }\n else {\n this.resetLeadingZero();\n }\n for (let i = Math.max(0, currentMaxLength); i <= current.length; i++) {\n let middle = resetSegmentValue ? currentChar : (current.substring(i) + currentChar);\n let middleNumber = parseInt(middle, 10);\n parsedDate = this.intl.parseDate(prefix + middle + suffix, this.format);\n if (!parsedDate && !isNaN(middleNumber) && !isNaN(parseInt(currentChar, 10))) {\n if (symbol === 'M' && !month) {\n const monthNumber = middleNumber - 1;\n if (monthNumber > -1 && monthNumber < 12) {\n parsedDate = cloneDate(this.value);\n parsedDate.setMonth(monthNumber);\n if (parsedDate.getMonth() !== monthNumber) {\n parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));\n }\n }\n }\n if (symbol === 'y') {\n parsedDate = createDate(parseInt(middle, 10), this.month ? this.value.getMonth() : 0, this.date ? this.value.getDate() : 1, this.hours ? this.value.getHours() : 0, this.minutes ? this.value.getMinutes() : 0, this.seconds ? this.value.getSeconds() : 0, this.milliseconds ? this.value.getMilliseconds() : 0);\n if (this.date && parsedDate.getDate() !== this.value.getDate()) {\n parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));\n }\n }\n }\n if (parsedDate) {\n //move to next segment if the part will overflow with next char\n //when start from empty date (01, then 010), padded zeros should be trimmed\n const patternValue = this.partPattern(dateParts.partMap, symbol).pattern;\n const peekDate = this.intl.parseDate(`${prefix}${this.peek(middle, patternValue)}${suffix}`, this.format);\n const patternLength = this.patternLength(patternValue) || patternValue.length;\n const patternSatisfied = (leadingZero + (unpadZero(middle) || currentChar).length) >= patternLength;\n const switchToNext = peekDate === null || patternSatisfied;\n this.value = parsedDate;\n this.setExisting(symbol, true);\n return { value: this.value, switchToNext: switchToNext };\n }\n }\n if (month) {\n parsedDate = this.intl.parseDate(prefix + month + suffix, this.format);\n if (parsedDate) {\n this.value = parsedDate;\n this.setExisting(symbol, true);\n return { value: this.value, switchToNext: false };\n }\n }\n if (dayPeriod) {\n parsedDate = this.intl.parseDate(prefix + dayPeriod + suffix, this.format);\n if (parsedDate) {\n this.value = parsedDate;\n return { value: this.value, switchToNext: true };\n }\n }\n if (isZeroCurrentChar) {\n this.setExisting(symbol, false);\n }\n return { value: null, switchToNext: false };\n }\n resetLeadingZero() {\n const hasLeadingZero = this.leadingZero !== null;\n this.setLeadingZero(null);\n return hasLeadingZero;\n }\n setLeadingZero(leadingZero) {\n this.leadingZero = leadingZero;\n }\n incrementLeadingZero(symbol) {\n const leadingZero = this.leadingZero || {};\n leadingZero[symbol] = (leadingZero[symbol] || 0) + 1;\n this.leadingZero = leadingZero;\n }\n isAbbrMonth(parts, symbol) {\n const pattern = this.partPattern(parts, symbol);\n return pattern.type === 'month' && pattern.names;\n }\n partPattern(parts, symbol) {\n return parts.filter((part) => part.pattern.indexOf(symbol) !== -1)[0];\n }\n peek(value, pattern) {\n const peekValue = unpadZero(value) + '0';\n return padZero(pattern.length - peekValue.length) + peekValue;\n }\n matchMonth(typedChar) {\n this.typedMonthPart += typedChar.toLowerCase();\n if (!this.monthNames) {\n return \"\";\n }\n while (this.typedMonthPart.length > 0) {\n for (let i = 0; i < this.monthNames.length; i++) {\n if (this.monthNames[i].toLowerCase().indexOf(this.typedMonthPart) === 0) {\n return this.monthNames[i];\n }\n }\n const monthAsNum = parseInt(this.typedMonthPart, 10);\n if (monthAsNum >= 1 && monthAsNum <= 12 && monthAsNum.toString() === this.typedMonthPart /*ensure they exact match*/) {\n return this.monthNames[monthAsNum - 1];\n }\n this.typedMonthPart = this.typedMonthPart.substring(1, this.typedMonthPart.length);\n }\n return \"\";\n }\n matchDayPeriod(typedChar, symbol) {\n const lowerChart = String(typedChar).toLowerCase();\n if (symbol === 'a' && this.dayPeriods) {\n if (this.dayPeriods.am.toLowerCase().startsWith(lowerChart)) {\n return this.dayPeriods.am;\n }\n else if (this.dayPeriods.pm.toLowerCase().startsWith(lowerChart)) {\n return this.dayPeriods.pm;\n }\n }\n return '';\n }\n allFormatedMonths() {\n const dateFormatParts = this.intl.splitDateFormat(this.format);\n for (let i = 0; i < dateFormatParts.length; i++) {\n if (dateFormatParts[i].type === \"month\" && dateFormatParts[i].names) {\n return this.intl.dateFormatNames(dateFormatParts[i].names);\n }\n }\n return null;\n }\n allDayPeriods() {\n const dateFormatParts = this.intl.splitDateFormat(this.format);\n for (let i = 0; i < dateFormatParts.length; i++) {\n if (dateFormatParts[i].type === \"dayperiod\" && dateFormatParts[i].names) {\n return this.intl.dateFormatNames(dateFormatParts[i].names);\n }\n }\n return null;\n }\n patternLength(pattern) {\n if (pattern[0] === 'y') {\n return 4;\n }\n if (SHORT_PATTERN_LENGTH_REGEXP.test(pattern)) {\n return 2;\n }\n return 0;\n }\n //TODO: REMOVE!\n dateFormatString(date, format) {\n const dateFormatParts = this.intl.splitDateFormat(format);\n const parts = [];\n const partMap = [];\n for (let i = 0; i < dateFormatParts.length; i++) {\n let partLength = this.intl.formatDate(date, { pattern: dateFormatParts[i].pattern }).length;\n while (partLength > 0) {\n parts.push(this.symbols[dateFormatParts[i].pattern[0]] || \"_\");\n partMap.push(dateFormatParts[i]);\n partLength--;\n }\n }\n const returnValue = new Mask();\n returnValue.symbols = parts.join(\"\");\n returnValue.partMap = partMap;\n return returnValue;\n }\n merge(text, mask) {\n // Important: right to left.\n let resultText = \"\";\n let resultFormat = \"\";\n let format = mask.symbols;\n for (let r = format.length - 1; r >= 0; r--) {\n if (this.knownParts.indexOf(format[r]) === -1 || this.getExisting(format[r])) {\n resultText = text[r] + resultText;\n resultFormat = format[r] + resultFormat;\n }\n else {\n const currentSymbol = format[r];\n while (r >= 0 && currentSymbol === format[r]) {\n r--;\n }\n r++;\n if (this.leadingZero && this.leadingZero[currentSymbol]) {\n resultText = '0' + resultText;\n }\n else {\n resultText = this.dateFieldName(mask.partMap[r]) + resultText;\n }\n while (resultFormat.length < resultText.length) {\n resultFormat = format[r] + resultFormat;\n }\n }\n }\n return [resultText, resultFormat];\n }\n dateFieldName(part) {\n const formatPlaceholder = this.formatPlaceholder || 'wide';\n if (formatPlaceholder[part.type]) {\n return formatPlaceholder[part.type];\n }\n if (formatPlaceholder === 'formatPattern') {\n return part.pattern;\n }\n return this.intl.dateFieldName(Object.assign(part, { nameType: formatPlaceholder }));\n }\n}\n/**\n * Represents the [Kendo UI DateInput component for Angular]({% slug overview_dateinput %}#toc-basic-usage).\n */\nclass DateInputComponent {\n constructor(cdr, intl, renderer, element, ngZone, injector, localization, pickerService) {\n this.cdr = cdr;\n this.intl = intl;\n this.renderer = renderer;\n this.element = element;\n this.ngZone = ngZone;\n this.injector = injector;\n this.localization = localization;\n this.pickerService = pickerService;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Sets or gets the `disabled` property of the DateInput and\n * determines whether the component is active\n * ([see example]({% slug disabled_dateinput %})).\n */\n this.disabled = false;\n /**\n * Sets or gets the read-only state of the DateInput\n * ([see example]({% slug readonly_dateinput %})).\n */\n this.readonly = false;\n /**\n * Sets the title of the input element of the DateInput.\n */\n this.title = \"\";\n /**\n * Sets or gets the `tabIndex` property of the DateInput.\n * .\n */\n this.tabindex = 0;\n /**\n * @hidden\n */\n this.role = 'spinbutton';\n /**\n * @hidden\n */\n this.ariaReadOnly = false;\n /**\n * Specifies the date format that is used to display the input value\n * ([see example]({% slug formats_dateinput %})).\n */\n this.format = \"d\";\n /**\n * Specifies the hint the DateInput displays when its value is `null`.\n * For more information, refer to the article on\n * [placeholders]({% slug placeholders_dateinput %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n this.placeholder = null;\n /**\n * Determines whether the built-in min or max validators are to be enforced when a form is being validated.\n */\n this.rangeValidation = true;\n /**\n * @hidden\n * Based on the min and max values, specifies whether the value will be auto-corrected while typing.\n */\n this.autoCorrect = false;\n /**\n * Specifies whether the **Up** and **Down** spin buttons will be rendered.\n * For more information, refer to the article on\n * [spinner buttons]({% slug spinbuttons_dateinput %}).\n */\n this.spinners = false;\n /**\n * @hidden\n */\n this.isPopupOpen = false;\n /**\n * @hidden\n */\n this.hasPopup = false;\n /**\n * Fires each time the user selects a new value.\n * For more information, refer to the section on\n * [events]({% slug overview_dateinput %}#toc-events).\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time the user selects a new value.\n * For more information, refer to the section on\n * [events]({% slug overview_dateinput %}#toc-events).\n */\n this.valueUpdate = new EventEmitter();\n /**\n * Fires each time the user focuses the input element.\n * For more information, refer to the section on\n * [events]({% slug overview_dateinput %}#toc-events).\n *\n * > To wire the event programmatically, use the `onFocus` property.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public handleFocus(): void {\n * console.log(\"Component is focused\");\n * }\n * }\n * ```\n *\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the input element gets blurred.\n * For more information, refer to the section on\n * [events]({% slug overview_dateinput %}#toc-events).\n *\n * > To wire the event programmatically, use the `onBlur` property.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public handleBlur(): void {\n * console.log(\"Component is blurred\");\n * }\n * }\n * ```\n *\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n this.arrow = Arrow;\n this.arrowDirection = Arrow.None;\n this.formatSections = { date: false, time: false };\n this.hasMousedown = false;\n this.focusedPriorToMousedown = false;\n this.currentValue = \"\";\n this.currentFormat = \"\";\n this.backspace = false;\n this.resetSegmentValue = true;\n this.minValidateFn = noop;\n this.maxValidateFn = noop;\n this._value = null;\n this._active = false;\n this.kendoDate = null;\n this.paste = false;\n this.domEvents = [];\n this.onControlChange = noop;\n this.onControlTouched = noop;\n this.onValidatorChange = noop;\n this.symbolsMap = this.dateSymbolMap();\n this.updateFormatSections();\n if (this.pickerService) {\n this.pickerService.input = this;\n }\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n /**\n * Specifies the value of the DateInput component.\n *\n * > The `value` has to be a valid [JavaScript `Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.\n */\n set value(value) {\n this.verifyValue(value);\n if (this.autoCorrect && !isInRange(value, this.min, this.max)) {\n return;\n }\n this._value = cloneDate(value);\n this.valueUpdate.emit(cloneDate(value));\n }\n get value() {\n return this._value;\n }\n get wrapperClass() {\n return true;\n }\n get disabledClass() {\n return this.disabled;\n }\n get inputElement() {\n return this.dateInput ? this.dateInput.nativeElement : null;\n }\n get inputValue() {\n return (this.inputElement || {}).value || '';\n }\n get isActive() {\n return this._active;\n }\n set isActive(value) {\n this._active = value;\n if (!this.wrap) {\n return;\n }\n if (!isPresent(this.pickerService)) {\n const element = this.wrap.nativeElement;\n if (value) {\n this.renderer.addClass(element, 'k-state-focused');\n }\n else {\n this.renderer.removeClass(element, 'k-state-focused');\n }\n }\n }\n /**\n * @hidden\n * Used by the TextBoxContainer to determine if the component is empty\n */\n isEmpty() {\n return !this.currentValue || !String(this.currentValue).trim();\n }\n /**\n * @hidden\n */\n containsElement(element) {\n return Boolean(closest(element, node => node === this.element.nativeElement));\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n this.verifyRange();\n if (changes.min || changes.max || changes.rangeValidation) {\n this.minValidateFn = this.rangeValidation ? minValidator(this.min) : noop;\n this.maxValidateFn = this.rangeValidation ? maxValidator(this.max) : noop;\n this.onValidatorChange();\n }\n if (changes.format) {\n this.symbolsMap = this.dateSymbolMap();\n this.updateFormatSections();\n }\n const isEqualToKendoDate = this.kendoDate && isEqual(this.value, this.kendoDate.getDateObject());\n if (changes.format || !isEqualToKendoDate || changes.placeholder) {\n this.kendoDate = this.getKendoDate(this.value);\n this.updateElementValue(this.isActive);\n }\n }\n ngOnDestroy() {\n if (this.intlSubscription) {\n this.intlSubscription.unsubscribe();\n }\n if (this.pickerService) {\n this.pickerService.input = null;\n }\n this.domEvents.forEach(unbindCallback => unbindCallback());\n }\n /**\n * @hidden\n */\n validate(control) {\n return this.minValidateFn(control) || this.maxValidateFn(control);\n }\n /**\n * @hidden\n */\n registerOnValidatorChange(fn) {\n this.onValidatorChange = fn;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.kendoDate = this.getKendoDate(this.value);\n this.updateElementValue();\n this.intlSubscription = this.intl.changes.subscribe(this.intlChange.bind(this));\n this.control = this.injector.get(NgControl, null);\n if (this.element) {\n this.renderer.removeAttribute(this.element.nativeElement, 'tabindex');\n this.ngZone.runOutsideAngular(() => {\n this.bindEvents();\n });\n }\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n //ngModel binding\n /**\n * @hidden\n */\n writeValue(value) {\n this.verifyValue(value);\n this.kendoDate = this.getKendoDate(value);\n this.value = cloneDate(value);\n this.updateElementValue(this.isActive);\n }\n /**\n * @hidden\n */\n triggerChange() {\n const value = this.kendoDate.getDateObject();\n if (+value !== +this.value) {\n this.value = cloneDate(value);\n this.notify();\n }\n }\n /**\n * @hidden\n */\n notify() {\n this.ngZone.run(() => {\n this.onControlChange(cloneDate(this.value));\n this.valueChange.emit(cloneDate(this.value));\n });\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onControlChange = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onControlTouched = fn;\n }\n /**\n * Focuses the DateInput component.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n const input = this.inputElement;\n if (input) {\n input.focus();\n this.selectDateSegment(this.currentFormat[0]);\n }\n }\n /**\n * Blurs the DateInput component.\n */\n blur() {\n const input = this.inputElement;\n if (input) {\n input.blur();\n }\n }\n /**\n * @hidden\n */\n handleButtonClick(offset) {\n this.arrowDirection = Arrow.None;\n this.modifyDateSegmentValue(offset);\n }\n /**\n * @hidden\n */\n modifyDateSegmentValue(offset) {\n const caret = this.caret();\n const symbol = this.currentFormat[caret[0]];\n const step = (this.steps || {})[this.symbolsMap[symbol]] || 1;\n this.kendoDate.modifyPart(symbol, offset * step);\n this.putDateInRange();\n this.updateElementValue(this.isActive);\n this.triggerChange();\n this.selectDateSegment(symbol);\n }\n /**\n * @hidden\n */\n switchDateSegment(offset) {\n const caret = this.caret();\n if (this.kendoDate.resetLeadingZero()) {\n this.updateElementValue(this.isActive);\n }\n if (caret[0] < caret[1] && this.currentFormat[caret[0]] !== this.currentFormat[caret[1] - 1]) {\n this.selectNearestSegment(offset > 0 ? caret[0] : caret[1] - 1);\n this.resetSegmentValue = true;\n return true;\n }\n const previousFormatSymbol = this.currentFormat[caret[0]];\n let a = caret[0] + offset;\n while (a > 0 && a < this.currentFormat.length) {\n if (this.currentFormat[a] !== previousFormatSymbol &&\n this.currentFormat[a] !== \"_\") {\n break;\n }\n a += offset;\n }\n if (this.currentFormat[a] === \"_\") {\n //there is not known symbol found\n return false;\n }\n let b = a;\n while (b >= 0 && b < this.currentFormat.length) {\n if (this.currentFormat[b] !== this.currentFormat[a]) {\n break;\n }\n b += offset;\n }\n if (a > b && (b + 1 !== caret[0] || a + 1 !== caret[1])) {\n this.caret(b + 1, a + 1);\n this.resetSegmentValue = true;\n return true;\n }\n else if (a < b && (a !== caret[0] || b !== caret[1])) {\n this.caret(a, b);\n this.resetSegmentValue = true;\n return true;\n }\n return false;\n }\n /**\n * @hidden\n */\n selectDateSegment(symbol) {\n let begin = -1;\n let end = 0;\n for (let i = 0; i < this.currentFormat.length; i++) {\n if (this.currentFormat[i] === symbol) {\n end = i + 1;\n if (begin === -1) {\n begin = i;\n }\n }\n }\n if (begin < 0) {\n begin = 0;\n }\n this.caret(0, 0);\n this.caret(begin, end);\n }\n /**\n * @hidden\n */\n handleClick() {\n this.hasMousedown = false;\n if (this.isActive) {\n const selectionPresent = this.inputElement.selectionStart !== this.inputElement.selectionEnd;\n const placeholderToggled = isPresent(this.placeholder) && !this.kendoDate.hasValue() && !this.focusedPriorToMousedown;\n // focus first segment if the user hasn't selected something during mousedown and if the placeholder was just toggled\n const selectFirstSegment = !selectionPresent && placeholderToggled;\n const index = selectFirstSegment ? 0 : this.caret()[0];\n this.selectNearestSegment(index);\n }\n }\n /**\n * @hidden\n */\n handleDragAndDrop(args) {\n args.preventDefault();\n }\n /**\n * @hidden\n */\n handleMousedown() {\n this.hasMousedown = true;\n this.focusedPriorToMousedown = this.isActive;\n }\n /**\n * @hidden\n */\n handleFocus(args) {\n this.isActive = true;\n this.updateElementValue();\n if (!this.hasMousedown) {\n this.caret(0, this.inputValue.length);\n }\n this.hasMousedown = false;\n if (hasObservers(this.onFocus)) {\n this.ngZone.run(() => {\n this.emitFocus(args);\n });\n }\n else {\n this.emitFocus(args);\n }\n }\n /**\n * @hidden\n */\n handleBlur(args) {\n this.isActive = false;\n this.resetSegmentValue = true;\n this.kendoDate.resetLeadingZero();\n this.updateElementValue();\n if (hasObservers(this.onBlur) || requiresZoneOnBlur(this.control)) {\n this.ngZone.run(() => {\n this.onControlTouched();\n this.emitBlur(args);\n this.cdr.markForCheck();\n });\n }\n else {\n this.emitBlur(args);\n }\n }\n getKendoDate(value) {\n const { leadingZero } = (this.kendoDate || {}) || null;\n const kendoDate = new KendoDate(this.intl, this.formatPlaceholder, this.format, value);\n kendoDate.setLeadingZero(this.isActive ? leadingZero : null);\n return kendoDate;\n }\n dateSymbolMap() {\n const reducer = (map$$1, part) => {\n map$$1[part.pattern[0]] = part.type;\n return map$$1;\n };\n return this.intl.splitDateFormat(this.format).reduce(reducer, {});\n }\n updateElementValue(isActive) {\n const start = this.caret()[0]; //XXX: get caret position before input is updated\n const texts = this.kendoDate.getTextAndFormat();\n const showPlaceholder = !this.isActive && isPresent(this.placeholder) && !this.kendoDate.hasValue();\n const input = this.inputElement;\n this.currentFormat = texts[1];\n this.currentValue = !showPlaceholder ? texts[0] : '';\n this.renderer.setProperty(input, \"value\", this.currentValue);\n if (input.placeholder !== this.placeholder) {\n this.renderer.setProperty(input, \"placeholder\", this.placeholder);\n }\n if (isActive) {\n this.selectNearestSegment(start);\n }\n }\n caret(start, end = start) {\n const isPosition = start !== undefined;\n let returnValue = [start, start];\n const element = this.inputElement;\n if (isPosition && (this.disabled || this.readonly)) {\n return undefined;\n }\n try {\n if (element.selectionStart !== undefined) {\n if (isPosition) {\n if (isDocumentAvailable() && document.activeElement !== element) {\n element.focus();\n }\n element.setSelectionRange(start, end);\n }\n returnValue = [element.selectionStart, element.selectionEnd];\n }\n }\n catch (e) {\n returnValue = [];\n }\n return returnValue;\n }\n selectNearestSegment(index) {\n // Finds the nearest (in both directions) known part.\n for (let i = index, j = index - 1; i < this.currentFormat.length || j >= 0; i++, j--) {\n if (i < this.currentFormat.length && this.currentFormat[i] !== \"_\") {\n this.selectDateSegment(this.currentFormat[i]);\n return;\n }\n if (j >= 0 && this.currentFormat[j] !== \"_\") {\n this.selectDateSegment(this.currentFormat[j]);\n return;\n }\n }\n }\n verifyRange() {\n if (!isDevMode()) {\n return;\n }\n if (!isValidRange(this.min, this.max)) {\n throw new Error(`The max value should be bigger than the min. See ${MIN_DOC_LINK$1} and ${MAX_DOC_LINK$1}.`);\n }\n }\n verifyValue(value) {\n if (!isDevMode()) {\n return;\n }\n if (value && !(value instanceof Date)) {\n throw new Error(`The 'value' should be a valid JavaScript Date instance. Check ${VALUE_DOC_LINK$1} for possible resolution.`);\n }\n }\n putDateInRange() {\n const currentDate = this.kendoDate.getDateObject();\n const candidate = dateInRange(currentDate, this.min, this.max);\n if (this.autoCorrect && !isEqual(currentDate, candidate)) {\n this.kendoDate = this.getKendoDate(candidate);\n }\n }\n updateFormatSections() {\n this.formatSections = this.intl.splitDateFormat(this.format)\n .reduce(({ date, time }, p) => {\n return {\n date: date || DATE_PART_REGEXP.test(p.type),\n time: time || TIME_PART_REGEXP.test(p.type)\n };\n }, { date: false, time: false });\n }\n intlChange() {\n this.updateFormatSections();\n this.kendoDate = this.getKendoDate(this.value);\n this.updateElementValue(this.isActive);\n }\n updateOnPaste() {\n const value = this.intl.parseDate(this.inputValue, this.format) || this.value;\n const notify = +value !== +this.value;\n this.writeValue(value);\n if (notify) {\n this.notify();\n }\n }\n bindEvents() {\n const element = this.element.nativeElement;\n const mousewheelHandler = this.handleMouseWheel.bind(this);\n this.domEvents.push(this.renderer.listen(element, 'DOMMouseScroll', mousewheelHandler), this.renderer.listen(element, 'mousewheel', mousewheelHandler), this.renderer.listen(element, 'keydown', this.handleKeydown.bind(this)), this.renderer.listen(element, 'paste', this.handlePaste.bind(this)), this.renderer.listen(element, 'input', this.handleInput.bind(this)));\n }\n handleMouseWheel(event) {\n if (this.disabled || this.readonly || !this.isActive) {\n return;\n }\n event = window.event || event;\n if (event.shiftKey) {\n this.switchDateSegment((event.wheelDelta || -event.detail) > 0 ? -1 : 1);\n }\n else {\n this.modifyDateSegmentValue((event.wheelDelta || -event.detail) > 0 ? 1 : -1);\n }\n event.returnValue = false;\n if (event.preventDefault) {\n event.preventDefault();\n }\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n }\n handlePaste() {\n this.paste = true;\n }\n handleKeydown(event) {\n if (this.disabled || this.readonly || event.altKey || event.ctrlKey || event.metaKey) {\n return;\n }\n if (event.keyCode === Keys.Tab) {\n const moved = this.switchDateSegment(event.shiftKey ? -1 : 1);\n if (moved) {\n event.preventDefault();\n }\n return;\n }\n if (event.keyCode === Keys.Backspace) {\n this.backspace = true;\n return;\n }\n switch (event.keyCode) {\n case Keys.ArrowDown:\n this.modifyDateSegmentValue(-1);\n break;\n case Keys.ArrowUp:\n this.modifyDateSegmentValue(1);\n break;\n case Keys.ArrowRight:\n this.switchDateSegment(1);\n break;\n case Keys.ArrowLeft:\n this.switchDateSegment(-1);\n break;\n case Keys.Home:\n this.selectNearestSegment(0);\n break;\n case Keys.End:\n this.selectNearestSegment(this.inputValue.length);\n break;\n default:\n return; //skip the preventDefault if we didn't handled the keyCode\n }\n event.preventDefault();\n }\n handleInput() {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.paste) {\n this.updateOnPaste();\n this.paste = false;\n return;\n }\n const diff = approximateStringMatching(this.currentValue, this.currentFormat, this.inputValue, this.caret()[0]);\n const navigationOnly = (diff.length === 1 && diff[0][1] === \"_\");\n let switchPart = false;\n if (!navigationOnly) {\n let parsedPart;\n for (let i = 0; i < diff.length; i++) {\n parsedPart = this.kendoDate.parsePart(diff[i][0], diff[i][1], this.resetSegmentValue);\n switchPart = parsedPart.switchToNext;\n }\n const candidate = this.kendoDate.getDateObject();\n if (this.value && candidate && !this.formatSections.date) {\n this.kendoDate = this.getKendoDate(setTime(this.value, candidate));\n }\n }\n this.resetSegmentValue = false;\n this.putDateInRange();\n this.updateElementValue(this.isActive);\n this.triggerChange();\n if (diff.length && diff[0][0] !== \"_\") {\n this.selectDateSegment(diff[0][0]);\n }\n if (switchPart || navigationOnly) {\n this.switchDateSegment(1);\n }\n if (this.backspace) {\n this.switchDateSegment(-1);\n }\n this.backspace = false;\n }\n emitFocus(args) {\n this.onFocus.emit();\n if (this.pickerService) {\n this.pickerService.onFocus.emit(args);\n }\n }\n emitBlur(args) {\n this.onBlur.emit();\n if (this.pickerService) {\n this.pickerService.onBlur.emit(args);\n }\n }\n}\nDateInputComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendo-dateinput',\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true },\n { provide: L10N_PREFIX, useValue: 'kendo.dateinput' },\n { provide: KendoInput, useExisting: forwardRef(() => DateInputComponent) },\n LocalizationService\n ],\n selector: 'kendo-dateinput',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nDateInputComponent.ctorParameters = () => [\n { type: ChangeDetectorRef },\n { type: IntlService },\n { type: Renderer2 },\n { type: ElementRef },\n { type: NgZone },\n { type: Injector },\n { type: LocalizationService },\n { type: PickerService, decorators: [{ type: Optional }] }\n];\nDateInputComponent.propDecorators = {\n focusableId: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n title: [{ type: Input }],\n tabindex: [{ type: Input }],\n role: [{ type: Input }],\n ariaReadOnly: [{ type: Input }],\n tabIndex: [{ type: Input }],\n format: [{ type: Input }],\n formatPlaceholder: [{ type: Input }],\n placeholder: [{ type: Input }],\n steps: [{ type: Input }],\n max: [{ type: Input }],\n min: [{ type: Input }],\n rangeValidation: [{ type: Input }],\n autoCorrect: [{ type: Input }],\n value: [{ type: Input }],\n spinners: [{ type: Input }],\n isPopupOpen: [{ type: Input }],\n hasPopup: [{ type: Input }],\n valueChange: [{ type: Output }],\n valueUpdate: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n dateInput: [{ type: ViewChild, args: ['dateInput', { static: true },] }],\n wrap: [{ type: ViewChild, args: ['wrap',] }],\n wrapperClass: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-dateinput',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }]\n};\n\n/**\n * A preventable event instance which is triggered by the `open` and `close` events.\n */\nclass PreventableEvent {\n constructor() {\n this.prevented = false;\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * If the event is prevented by any of its subscribers, returns `true`.\n *\n * @returns `true` if the default action was prevented. Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * @hidden\n */\nconst TOUCH_ENABLED = new InjectionToken('dateinputs-touch-enabled');\n\n/**\n * @hidden\n */\nconst disabledDatesValidator = (isDateDisabled) => {\n return (control) => {\n if (!isDateDisabled || !control.value) {\n return null;\n }\n const error = {\n disabledDate: true\n };\n return isDateDisabled(control.value) ? error : null;\n };\n};\n\n/* tslint:disable:max-line-length */\nconst MIN_DOC_LINK$2 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/DatePickerComponent/#toc-min';\nconst MAX_DOC_LINK$2 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/DatePickerComponent/#toc-max';\nconst VALUE_DOC_LINK$2 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/#toc-using-with-json';\n/**\n * Represents the [Kendo UI DatePicker component for Angular]({% slug overview_datepicker %}#toc-basic-usage).\n */\nclass DatePickerComponent {\n constructor(zone, localization, cdr, popupService, element, renderer, injector, pickerService, disabledDatesService, touchEnabled$$1) {\n this.zone = zone;\n this.localization = localization;\n this.cdr = cdr;\n this.popupService = popupService;\n this.element = element;\n this.renderer = renderer;\n this.injector = injector;\n this.pickerService = pickerService;\n this.disabledDatesService = disabledDatesService;\n this.touchEnabled = touchEnabled$$1;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Defines the active view that the Calendar initially renders\n * ([see example]({% slug activeview_datepicker %})).\n * By default, the active view is `month`.\n *\n * > You have to set `activeView` within the `topView`-`bottomView` range.\n */\n this.activeView = CalendarViewEnum[CalendarViewEnum.month];\n /**\n * Defines the bottommost Calendar view to which the user can navigate\n * ([see example]({% slug dates_datepicker %}#toc-partial-dates)).\n */\n this.bottomView = CalendarViewEnum[CalendarViewEnum.month];\n /**\n * Defines the topmost Calendar view to which the user can navigate\n * ([see example]({% slug dates_datepicker %}#toc-partial-dates)).\n */\n this.topView = CalendarViewEnum[CalendarViewEnum.century];\n /**\n * Sets or gets the `disabled` property of the DatePicker and determines whether the component is active\n * ([see example]({% slug disabled_datepicker %})).\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the DatePicker\n * ([see example]({% slug readonly_datepicker %}#toc-read-only-datepicker)).\n */\n this.readonly = false;\n /**\n * Sets the read-only state of the DatePicker input field\n * ([see example]({% slug readonly_datepicker %}#toc-read-only-input)).\n *\n * > Note that if you set the [`readonly`]({% slug api_dateinputs_datepickercomponent %}#toc-readonly) property value to `true`,\n * the input will be rendered in a read-only state regardless of the `readOnlyInput` value.\n */\n this.readOnlyInput = false;\n /**\n * Sets or gets the `navigation` property of the Calendar\n * and determines whether the navigation side-bar is displayed.\n * ([see example]({% slug sidebar_datepicker %})).\n */\n this.navigation = true;\n /**\n * Specifies the smallest valid date\n * ([see example]({% slug dateranges_datepicker %})).\n */\n this.min = cloneDate(MIN_DATE);\n /**\n * Specifies the biggest valid date\n * ([see example]({% slug dateranges_datepicker %})).\n */\n this.max = cloneDate(MAX_DATE);\n /**\n * Specifies the focused date of the Calendar component\n * ([see example]({% slug dates_datepicker %})).\n */\n this.focusedDate = null;\n /**\n * Specifies the date format that is used to display the input value\n * ([see example]({% slug formats_datepicker %})).\n */\n this.format = \"d\";\n /**\n * Specifies the hint the DatePicker displays when its value is `null`.\n * ([more information and exaples]({% slug placeholders_datepicker %})).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n this.placeholder = null;\n /**\n * Sets or gets the `tabindex` property of the DatePicker.\n */\n this.tabindex = 0;\n /**\n * Sets the title of the input element of the DatePicker.\n */\n this.title = \"\";\n /**\n * Determines whether the built-in min or max validators are enforced when validating a form.\n */\n this.rangeValidation = true;\n /**\n * Determines whether the built-in validator for disabled\n * date ranges is enforced when validating a form\n * ([see example]({% slug disabled_dates_datepicker %}#toc-validation)).\n */\n this.disabledDatesValidation = true;\n /**\n * Determines whether to display a week number column in the `month` view of the Calendar\n * ([see example]({% slug weeknumcolumn_datepicker %})).\n */\n this.weekNumber = false;\n /**\n * Fires each time the user selects a new value\n * ([more information and example]({% slug overview_datepicker %}#toc-events)).\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time the user focuses the input element\n * ([more information and example]({% slug overview_datepicker %}#toc-events)).\n *\n * > To wire the event programmatically, use the `onFocus` property.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public handleFocus(): void {\n * console.log(\"Component is focused\");\n * }\n * }\n * ```\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the input element gets blurred\n * ([more information and example]({% slug overview_datepicker %}#toc-events)).\n *\n * > To wire the event programmatically, use the `onBlur` property.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public handleBlur(): void {\n * console.log(\"Component is blurred\");\n * }\n * }\n * ```\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the popup is about to open.\n * This event is preventable. If you cancel the event, the popup will remain closed\n * ([more information and example]({% slug overview_datepicker %}#toc-events)).\n */\n this.open = new EventEmitter();\n /**\n * Fires each time the popup is about to close.\n * This event is preventable. If you cancel the event, the popup will remain open\n * ([more information and example]({% slug overview_datepicker %}#toc-events)).\n */\n this.close = new EventEmitter();\n /**\n * @hidden\n */\n this.wrapperClasses = true;\n this.popupUID = guid();\n this._popupSettings = { animate: true };\n this._show = false;\n this._value = null;\n this._active = false;\n this.onControlChange = noop;\n this.onControlTouched = noop;\n this.onValidatorChange = noop;\n this.minValidateFn = noop;\n this.maxValidateFn = noop;\n this.disabledDatesValidateFn = noop;\n this.resolvedPromise = Promise.resolve(null);\n this.domEvents = [];\n this.pickerSubscriptions = this.pickerService.onFocus.subscribe(this.handleFocus.bind(this));\n this.pickerSubscriptions.add(this.pickerService.onBlur.subscribe(this.handleBlur.bind(this)));\n this.pickerSubscriptions.add(this.pickerService.sameDateSelected.subscribe(this.handleSameSelection.bind(this)));\n }\n /**\n * @hidden\n */\n set cellTemplateRef(template) {\n this.cellTemplate = template;\n }\n /**\n * @hidden\n */\n set monthCellTemplateRef(template) {\n this.monthCellTemplate = template;\n }\n /**\n * @hidden\n */\n set yearCellTemplateRef(template) {\n this.yearCellTemplate = template;\n }\n /**\n * @hidden\n */\n set decadeCellTemplateRef(template) {\n this.decadeCellTemplate = template;\n }\n /**\n * @hidden\n */\n set centuryCellTemplateRef(template) {\n this.centuryCellTemplate = template;\n }\n /**\n * @hidden\n */\n set weekNumberTemplateRef(template) {\n this.weekNumberTemplate = template;\n }\n /**\n * @hidden\n */\n set headerTitleTemplateRef(template) {\n this.headerTitleTemplate = template;\n }\n /**\n * @hidden\n */\n set navigationItemTemplateRef(template) {\n this.navigationItemTemplate = template;\n }\n /**\n * Configures the popup options of the DatePicker.\n *\n * The available options are:\n * - `animate: Boolean`—Controls the popup animation. By default, the open and close animations are enabled.\n * - `popupClass: String`—Specifies a list of CSS classes that are used to style the popup.\n */\n set popupSettings(settings) {\n this._popupSettings = Object.assign({}, { animate: true }, settings);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * Specifies the value of the DatePicker component.\n *\n * > The `value` has to be a valid\n * [JavaScript `Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.\n */\n set value(value) {\n this.verifyValue(value);\n this._value = cloneDate(value);\n }\n get value() {\n return this._value;\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n /**\n * Sets the dates of the DatePicker that will be disabled\n * ([see example]({% slug disabled_dates_datepicker %})).\n */\n set disabledDates(value) {\n this._disabledDates = value;\n this.disabledDatesService.initialize(value);\n }\n get disabledDates() {\n return this._disabledDates;\n }\n /**\n * @hidden\n */\n get disabledClass() {\n return this.disabled;\n }\n /**\n * @hidden\n */\n get inputRole() {\n return this.readOnlyInput ? 'listbox' : 'spinbutton';\n }\n get isActive() {\n return this._active;\n }\n set isActive(value) {\n this._active = value;\n if (!this.wrapper) {\n return;\n }\n const element = this.wrapper.nativeElement;\n if (value) {\n this.renderer.addClass(element, 'k-state-focused');\n }\n else {\n this.renderer.removeClass(element, 'k-state-focused');\n }\n }\n get show() {\n return this._show;\n }\n set show(show) {\n if (show && (this.disabled || this.readonly)) {\n return;\n }\n const skipZone = !show && (!this._show || !hasObservers(this.close));\n if (!skipZone) {\n this.zone.run(() => {\n this.togglePopup(show);\n });\n }\n else {\n this.togglePopup(show);\n }\n }\n /**\n * @hidden\n * Used by the TextBoxContainer to determine if the component is empty.\n */\n isEmpty() {\n return !this.value && this.input.isEmpty();\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.localizationChangeSubscription = this.localization\n .changes\n .subscribe(() => this.cdr.markForCheck());\n this.control = this.injector.get(NgControl, null);\n if (this.element) {\n this.renderer.removeAttribute(this.element.nativeElement, 'tabindex');\n this.zone.runOutsideAngular(() => {\n this.bindEvents();\n });\n }\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n this.verifySettings();\n if (changes.min || changes.max || changes.rangeValidation || changes.disabledDatesValidation || changes.disabledDates) {\n this.minValidateFn = this.rangeValidation ? minValidator(this.min) : noop;\n this.maxValidateFn = this.rangeValidation ? maxValidator(this.max) : noop;\n this.disabledDatesValidateFn = this.disabledDatesValidation ? disabledDatesValidator(this.disabledDatesService.isDateDisabled) : noop;\n this.onValidatorChange();\n }\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this.isActive = false;\n this.show = false;\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n if (this.windowBlurSubscription) {\n this.windowBlurSubscription.unsubscribe();\n }\n this.domEvents.forEach(unbindCallback => unbindCallback());\n this.pickerSubscriptions.unsubscribe();\n }\n /**\n * Returns the current open state of the popup.\n */\n get isOpen() {\n return this.show;\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.verifyValue(value);\n this.value = cloneDate(value);\n this.cdr.markForCheck();\n if (!value && this.input) {\n this.input.placeholder = this.placeholder;\n this.input.writeValue(value);\n }\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onControlChange = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onControlTouched = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n validate(control) {\n return this.minValidateFn(control) || this.maxValidateFn(control) || this.disabledDatesValidateFn(control);\n }\n /**\n * @hidden\n */\n registerOnValidatorChange(fn) {\n this.onValidatorChange = fn;\n }\n /**\n * Focuses the DatePicker component.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n this.input.focus();\n }\n /**\n * Blurs the DatePicker component.\n */\n blur() {\n (this.calendar || this.input)['blur'](); //tslint:disable-line:no-string-literal\n }\n /**\n * Toggles the visibility of the popup. If you use the `toggle` method to show or hide the popup,\n * the `open` and `close` events do not fire.\n *\n * @param show - The state of the popup.\n */\n toggle(show) {\n if (this.disabled || this.readonly) {\n return;\n }\n this.resolvedPromise.then(() => {\n this._toggle((show === undefined) ? !this.show : show);\n });\n }\n /**\n * @hidden\n */\n handleIconClick(event) {\n if (this.disabled || this.readonly) {\n return;\n }\n event.preventDefault();\n this.focusInput();\n //XXX: explicitly call the handleFocus handler here\n //due to async IE focus event\n this.handleFocus();\n this.show = !this.show;\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n handleMousedown(args) {\n args.preventDefault();\n }\n /**\n * @hidden\n */\n handleChange(value) {\n this.cdr.markForCheck();\n this.focusInput();\n this.value = value;\n this.show = false;\n this.onControlChange(cloneDate(value));\n this.valueChange.emit(cloneDate(value));\n }\n /**\n * @hidden\n */\n handleInputChange(value) {\n this.handleChange(this.input.formatSections.time ? value : this.mergeTime(value));\n }\n /**\n * @hidden\n */\n get popupClasses() {\n return [\n 'k-calendar-container',\n 'k-group',\n 'k-reset'\n ].concat(this.popupSettings.popupClass || []);\n }\n /**\n * @hidden\n */\n get appendTo() {\n const { appendTo } = this.popupSettings;\n if (!appendTo || appendTo === 'root') {\n return undefined;\n }\n return appendTo === 'component' ? this.container : appendTo;\n }\n get input() {\n return this.pickerService.input;\n }\n get calendar() {\n return this.pickerService.calendar;\n }\n /**\n * @hidden\n */\n mergeTime(value) {\n return this.value && value ? setTime(value, this.value) : value;\n }\n /**\n * @hidden\n */\n handleKeydown(e) {\n const { altKey, keyCode } = e;\n if (keyCode === Keys.Escape) {\n this.show = false;\n }\n if (altKey) {\n if (keyCode === Keys.ArrowDown && !this.show) {\n this.show = true;\n }\n if (keyCode === Keys.ArrowUp) {\n this.show = false;\n }\n }\n if (keyCode === Keys.Tab && this.show && this.calendar.isActive) {\n this.input.focus();\n this.show = false;\n }\n }\n togglePopup(show) {\n const event = new PreventableEvent();\n if (!this._show && show) {\n this.open.emit(event);\n }\n else if (this._show && !show) {\n this.close.emit(event);\n }\n if (event.isDefaultPrevented()) {\n return;\n }\n this._toggle(show);\n this.toggleFocus();\n }\n _toggle(show) {\n this._show = show;\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n this.subscription.unsubscribe();\n }\n if (this._show) {\n const direction = this.localization.rtl ? 'right' : 'left';\n this.popupRef = this.popupService.open({\n anchor: this.wrapper,\n anchorAlign: { vertical: 'bottom', horizontal: direction },\n animate: this.popupSettings.animate,\n appendTo: this.appendTo,\n content: this.popupTemplate,\n popupAlign: { vertical: 'top', horizontal: direction },\n popupClass: this.popupClasses,\n positionMode: 'absolute'\n });\n this.popupRef.popupElement.setAttribute('id', this.popupUID);\n this.subscription = this.popupRef.popupAnchorViewportLeave.subscribe(() => this.show = false);\n }\n }\n focusInput() {\n if (this.touchEnabled) {\n return;\n }\n this.input.focus();\n }\n toggleFocus() {\n if (!this.isActive) {\n return;\n }\n if (this.show) {\n if (!this.calendar) {\n this.cdr.detectChanges();\n }\n if (this.calendar) {\n this.calendar.focus();\n }\n }\n else if (!this.touchEnabled) {\n this.input.focus();\n }\n else if (!this.input.isActive) {\n this.handleBlur();\n }\n }\n verifySettings() {\n if (!isDevMode()) {\n return;\n }\n if (!isValidRange(this.min, this.max)) {\n throw new Error(`The max value should be bigger than the min. See ${MIN_DOC_LINK$2} and ${MAX_DOC_LINK$2}.`);\n }\n }\n verifyValue(value) {\n if (!isDevMode()) {\n return;\n }\n if (value && !(value instanceof Date)) {\n throw new Error(`The 'value' should be a valid JavaScript Date instance. Check ${VALUE_DOC_LINK$2} for possible resolution.`);\n }\n }\n bindEvents() {\n const element = this.element.nativeElement;\n this.domEvents.push(this.renderer.listen(element, 'keydown', this.handleKeydown.bind(this)));\n if (isWindowAvailable()) {\n this.windowBlurSubscription = fromEvent(window, 'blur').subscribe(this.handleWindowBlur.bind(this));\n }\n }\n handleFocus() {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n if (hasObservers(this.onFocus)) {\n this.zone.run(() => {\n this.onFocus.emit();\n });\n }\n }\n handleWindowBlur() {\n if (!this.isOpen) {\n return;\n }\n this.show = false;\n }\n handleBlur(args) {\n const currentTarget = args && currentFocusTarget(args);\n if (currentTarget && (this.input.containsElement(currentTarget) ||\n (this.calendar && this.calendar.containsElement(currentTarget)))) {\n return;\n }\n if (hasObservers(this.onBlur) || (this.show && hasObservers(this.close)) || requiresZoneOnBlur(this.control)) {\n this.zone.run(() => {\n this.blurComponent();\n this.cdr.markForCheck();\n });\n }\n else {\n this.blurComponent();\n }\n }\n blurComponent() {\n this.isActive = false; // order is important ¯\\_(ツ)_/¯\n this.show = false;\n this.cdr.detectChanges();\n this.onControlTouched();\n this.onBlur.emit();\n }\n handleSameSelection() {\n if (this.show) {\n this.focusInput();\n this.show = false;\n }\n }\n}\nDatePickerComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendo-datepicker',\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DatePickerComponent), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => DatePickerComponent), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => DatePickerComponent) },\n LocalizationService,\n PickerService,\n DisabledDatesService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.datepicker'\n }\n ],\n selector: 'kendo-datepicker',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nDatePickerComponent.ctorParameters = () => [\n { type: NgZone },\n { type: LocalizationService },\n { type: ChangeDetectorRef },\n { type: PopupService },\n { type: ElementRef },\n { type: Renderer2 },\n { type: Injector },\n { type: PickerService },\n { type: DisabledDatesService },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [TOUCH_ENABLED,] }] }\n];\nDatePickerComponent.propDecorators = {\n container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef },] }],\n popupTemplate: [{ type: ViewChild, args: ['popupTemplate',] }],\n wrapper: [{ type: ViewChild, args: ['wrapper',] }],\n cellTemplate: [{ type: ContentChild, args: [CellTemplateDirective,] }],\n cellTemplateRef: [{ type: Input, args: ['cellTemplate',] }],\n monthCellTemplate: [{ type: ContentChild, args: [MonthCellTemplateDirective,] }],\n monthCellTemplateRef: [{ type: Input, args: ['monthCellTemplate',] }],\n yearCellTemplate: [{ type: ContentChild, args: [YearCellTemplateDirective,] }],\n yearCellTemplateRef: [{ type: Input, args: ['yearCellTemplate',] }],\n decadeCellTemplate: [{ type: ContentChild, args: [DecadeCellTemplateDirective,] }],\n decadeCellTemplateRef: [{ type: Input, args: ['decadeCellTemplate',] }],\n centuryCellTemplate: [{ type: ContentChild, args: [CenturyCellTemplateDirective,] }],\n centuryCellTemplateRef: [{ type: Input, args: ['centuryCellTemplate',] }],\n weekNumberTemplate: [{ type: ContentChild, args: [WeekNumberCellTemplateDirective,] }],\n weekNumberTemplateRef: [{ type: Input, args: ['weekNumberTemplate',] }],\n headerTitleTemplate: [{ type: ContentChild, args: [HeaderTitleTemplateDirective,] }],\n headerTitleTemplateRef: [{ type: Input, args: ['headerTitleTemplate',] }],\n navigationItemTemplate: [{ type: ContentChild, args: [NavigationItemTemplateDirective,] }],\n navigationItemTemplateRef: [{ type: Input, args: ['navigationItemTemplate',] }],\n focusableId: [{ type: Input }],\n activeView: [{ type: Input }],\n bottomView: [{ type: Input }],\n topView: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n readOnlyInput: [{ type: Input }],\n popupSettings: [{ type: Input }],\n navigation: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n focusedDate: [{ type: Input }],\n value: [{ type: Input }],\n format: [{ type: Input }],\n formatPlaceholder: [{ type: Input }],\n placeholder: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input }],\n disabledDates: [{ type: Input }],\n title: [{ type: Input }],\n rangeValidation: [{ type: Input }],\n disabledDatesValidation: [{ type: Input }],\n weekNumber: [{ type: Input }],\n valueChange: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n open: [{ type: Output }],\n close: [{ type: Output }],\n wrapperClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-datepicker',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }]\n};\n\n/**\n * @hidden\n */\nconst TIME_PART = {\n dayperiod: 'dayperiod',\n hour: 'hour',\n millisecond: 'millisecond',\n minute: 'minute',\n second: 'second'\n};\n\n/**\n * @hidden\n */\nconst timeRangeValidator = (min, max) => {\n return (control) => {\n if (!min || !max || !control.value) {\n return null;\n }\n const err = {\n timeRangeError: {\n maxValue: max,\n minValue: min,\n value: control.value\n }\n };\n return isInTimeRange(control.value, min, max) ? null : err;\n };\n};\n\nconst VALUE_DOC_LINK$3 = 'https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/#toc-integration-with-json';\nconst INTL_DATE_FORMAT = 'https://github.com/telerik/kendo-intl/blob/master/docs/date-formatting/index.md';\nconst formatRegExp = new RegExp(`${TIME_PART.hour}|${TIME_PART.minute}|${TIME_PART.second}|${TIME_PART.dayperiod}|literal`);\n/**\n * Represents the [Kendo UI TimePicker component for Angular]({% slug overview_timepicker %}#toc-basic-usage).\n */\nclass TimePickerComponent {\n constructor(zone, localization, cdr, popupService, element, renderer, injector, pickerService, intl, touchEnabled$$1) {\n this.zone = zone;\n this.localization = localization;\n this.cdr = cdr;\n this.popupService = popupService;\n this.element = element;\n this.renderer = renderer;\n this.injector = injector;\n this.pickerService = pickerService;\n this.intl = intl;\n this.touchEnabled = touchEnabled$$1;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Sets or gets the `disabled` property of the TimePicker and\n * determines whether the component is active\n * ([see example]({% slug disabled_timepicker %})).\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the TimePicker\n * ([see example]({% slug readonly_timepicker %}#toc-read-only-timepicker)).\n */\n this.readonly = false;\n /**\n * Sets the read-only state of the TimePicker input field\n * ([see example]({% slug readonly_timepicker %}#toc-read-only-input)).\n *\n * > Note that if you set the [`readonly`]({% slug api_dateinputs_timepickercomponent %}#toc-readonly) property value to `true`,\n * the input will be rendered in a read-only state regardless of the `readOnlyInput` value.\n */\n this.readOnlyInput = false;\n /**\n * Specifies the time format that is used to display the input value\n * ([see example]({% slug formats_timepicker %})).\n */\n this.format = 't';\n /**\n * Specifies the hint the TimePicker displays when its value is `null`.\n * For more information, refer to the article on\n * [placeholders]({% slug placeholders_timepicker %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n this.placeholder = null;\n /**\n * Determines whether to display the **Cancel** button in the popup.\n */\n this.cancelButton = true;\n /**\n * Determines whether to display the **Now** button in the popup.\n *\n * > If the current time is out of range or the incremental step is greater than `1`, the **Now** button will be hidden.\n */\n this.nowButton = true;\n /**\n * Sets or gets the `tabindex` property of the TimePicker.\n */\n this.tabindex = 0;\n /**\n * Sets the title of the input element of the TimePicker.\n */\n this.title = \"\";\n /**\n * Determines whether the built-in min or max validators are enforced when a form is being validated.\n */\n this.rangeValidation = true;\n /**\n * Fires each time the user selects a new value.\n * For more information, refer to the section on\n * [events]({% slug overview_timepicker %}#toc-events).\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time the user focuses the input element.\n * For more information, refer to the section on\n * [events]({% slug overview_timepicker %}#toc-events).\n *\n * > To wire the event programmatically, use the `onFocus` property.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public handleFocus(): void {\n * console.log(\"Component is focused\");\n * }\n * }\n * ```\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the input element gets blurred.\n * For more information, refer to the section on\n * [events]({% slug overview_timepicker %}#toc-events).\n *\n * > To wire the event programmatically, use the `onBlur` property.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public handleBlur(): void {\n * console.log(\"Component is blurred\");\n * }\n * }\n * ```\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the popup is about to open.\n * This event is preventable. If you cancel the event, the popup will remain closed.\n * For more information, refer to the section on\n * [events]({% slug overview_timepicker %}#toc-events).\n */\n this.open = new EventEmitter();\n /**\n * Fires each time the popup is about to close.\n * This event is preventable. If you cancel the event, the popup will remain open.\n * For more information, refer to the section on\n * [events]({% slug overview_timepicker %}#toc-events).\n */\n this.close = new EventEmitter();\n /**\n * @hidden\n */\n this.wrapperClasses = true;\n this.popupUID = guid();\n this.onControlChange = noop;\n this.onControlTouched = noop;\n this.onValidatorChange = noop;\n this.resolvedPromise = Promise.resolve(null);\n this.timeRangeValidateFn = noop;\n this._min = cloneDate(MIN_TIME);\n this._max = cloneDate(MAX_TIME);\n this._popupSettings = { animate: true };\n this._show = false;\n this._steps = {};\n this._value = null;\n this._active = false;\n this.domEvents = [];\n this.pickerSubscriptions = this.pickerService.onFocus.subscribe(this.handleFocus.bind(this));\n this.pickerSubscriptions.add(this.pickerService.onBlur.subscribe(this.handleBlur.bind(this)));\n }\n /**\n * Specifies the smallest valid time value\n * ([see example]({% slug timeranges_timepicker %})).\n */\n set min(min) {\n this._min = cloneDate(min || MIN_TIME);\n }\n get min() {\n return this._min;\n }\n /**\n * Specifies the biggest valid time value\n * ([see example]({% slug timeranges_timepicker %})).\n */\n set max(max) {\n this._max = cloneDate(max || MAX_TIME);\n }\n get max() {\n return this._max;\n }\n /**\n * Configures the incremental steps of the TimePicker.\n * For more information, refer to the article on\n * [incremental steps]({% slug incrementalsteps_timepicker %}).\n *\n * > If the incremental step is greater than `1`, the **Now** button will be hidden.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public steps = { hour: 2, minute: 15, second: 15 };\n * }\n * ```\n *\n */\n set steps(steps) {\n this._steps = steps || {};\n }\n get steps() {\n return this._steps;\n }\n /**\n * Configures the popup of the TimePicker.\n *\n * The available options are:\n * - `animate: Boolean`—Controls the popup animation. By default, the open and close animations are enabled.\n * - `popupClass: String`—Specifies a list of CSS classes that are used to style the popup.\n */\n set popupSettings(settings) {\n this._popupSettings = Object.assign({}, { animate: true }, settings);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n /**\n * Specifies the value of the TimePicker component.\n */\n set value(value) {\n this.verifyValue(value);\n this._value = cloneDate(value);\n }\n get value() {\n return this._value;\n }\n /**\n * @hidden\n */\n get disabledClass() {\n return this.disabled;\n }\n /**\n * @hidden\n */\n get inputRole() {\n return this.readOnlyInput ? 'listbox' : 'spinbutton';\n }\n get isActive() {\n return this._active;\n }\n set isActive(value) {\n this._active = value;\n if (!this.wrapper) {\n return;\n }\n const element = this.wrapper.nativeElement;\n if (value) {\n this.renderer.addClass(element, 'k-state-focused');\n }\n else {\n this.renderer.removeClass(element, 'k-state-focused');\n }\n }\n get show() {\n return this._show;\n }\n set show(show) {\n if (show && (this.disabled || this.readonly)) {\n return;\n }\n const skipZone = !show && (!this._show || !hasObservers(this.close));\n if (!skipZone) {\n this.zone.run(() => {\n this.togglePopup(show);\n });\n }\n else {\n this.togglePopup(show);\n }\n }\n get input() {\n return this.pickerService.input;\n }\n get timeSelector() {\n return this.pickerService.timeSelector;\n }\n /**\n * @hidden\n * Used by the TextBoxContainer to determine if the component is empty\n */\n isEmpty() {\n return !this.value && this.input.isEmpty();\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.localizationChangeSubscription = this.localization\n .changes.subscribe(() => this.cdr.markForCheck());\n this.control = this.injector.get(NgControl, null);\n if (this.element) {\n this.renderer.removeAttribute(this.element.nativeElement, 'tabindex');\n this.zone.runOutsideAngular(() => {\n this.bindEvents();\n });\n }\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (changes.min || changes.max || changes.rangeValidation) {\n this.timeRangeValidateFn = this.rangeValidation ? timeRangeValidator(this.min, this.max) : noop;\n this.onValidatorChange();\n }\n if (changes.format) {\n this.verifyFormat();\n }\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this.isActive = false;\n this.show = false;\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n if (this.windowBlurSubscription) {\n this.windowBlurSubscription.unsubscribe();\n }\n this.domEvents.forEach(unbindCallback => unbindCallback());\n this.pickerSubscriptions.unsubscribe();\n }\n /**\n * @hidden\n */\n handleKeydown(event) {\n const { altKey, keyCode } = event;\n if (keyCode === Keys.Escape) {\n this.show = false;\n return;\n }\n if (altKey) {\n if (keyCode === Keys.ArrowUp) {\n this.show = false;\n }\n if (keyCode === Keys.ArrowDown && !this.show) {\n this.show = true;\n }\n }\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.verifyValue(value);\n this.value = cloneDate(value);\n this.cdr.markForCheck();\n if (!value && this.input) {\n this.input.placeholder = this.placeholder;\n this.input.writeValue(value);\n }\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onControlChange = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onControlTouched = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n validate(control) {\n return this.timeRangeValidateFn(control);\n }\n /**\n * @hidden\n */\n registerOnValidatorChange(fn) {\n this.onValidatorChange = fn;\n }\n /**\n * Focuses the TimePicker component.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n this.input.focus();\n }\n /**\n * Blurs the TimePicker component.\n */\n blur() {\n (this.timeSelector || this.input)['blur'](); //tslint:disable-line:no-string-literal\n }\n /**\n * Toggles the visibility of the popup. If you use the `toggle` method to show or hide the popup,\n * the `open` and `close` events do not fire.\n *\n * @param show - The state of the popup.\n */\n toggle(show) {\n if (this.disabled || this.readonly) {\n return;\n }\n this.resolvedPromise.then(() => {\n this._toggle((show === undefined) ? !this.show : show);\n });\n }\n /**\n * Returns the current open state of the popup.\n */\n get isOpen() {\n return this.show;\n }\n /**\n * @hidden\n */\n get appendTo() {\n const { appendTo } = this.popupSettings;\n if (!appendTo || appendTo === 'root') {\n return undefined;\n }\n return appendTo === 'component' ? this.container : appendTo;\n }\n /**\n * @hidden\n */\n handleChange(value) {\n if (isEqual(this.value, value)) {\n this.focusInput();\n this.show = false;\n return;\n }\n this.value = cloneDate(value);\n this.zone.run(() => {\n this.focusInput();\n this.show = false;\n this.onControlChange(cloneDate(value));\n this.valueChange.emit(cloneDate(value));\n });\n }\n /**\n * @hidden\n */\n handleReject() {\n this.show = false;\n }\n /**\n * @hidden\n */\n handleInputChange(value) {\n const val = this.input.formatSections.date ? value : this.mergeTime(value);\n this.handleChange(val);\n }\n /**\n * @hidden\n */\n handleMousedown(args) {\n args.preventDefault();\n }\n /**\n * @hidden\n */\n handleIconClick(event) {\n if (this.disabled || this.readonly) {\n return;\n }\n event.preventDefault();\n this.focusInput();\n //XXX: explicit call handleFocus handler here\n //due to async IE focus event\n this.handleFocus();\n this.show = !this.show;\n }\n /**\n * @hidden\n */\n get popupClasses() {\n return [\n 'k-group',\n 'k-reset'\n ].concat(this.popupSettings.popupClass || []);\n }\n /**\n * @hidden\n */\n normalizeTime(date) {\n return setTime(MIDNIGHT_DATE, date);\n }\n /**\n * @hidden\n */\n mergeTime(value) {\n return this.value && value ? setTime(this.value, value) : value;\n }\n togglePopup(show) {\n const event = new PreventableEvent();\n if (!this._show && show) {\n this.open.emit(event);\n }\n else if (this._show && !show) {\n this.close.emit(event);\n }\n if (event.isDefaultPrevented()) {\n return;\n }\n this._toggle(show);\n this.toggleFocus();\n }\n _toggle(show) {\n this._show = show;\n this.cdr.markForCheck();\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n }\n if (this._show) {\n const direction = this.localization.rtl ? 'right' : 'left';\n this.popupRef = this.popupService.open({\n anchor: this.wrapper,\n anchorAlign: { vertical: 'bottom', horizontal: direction },\n animate: this.popupSettings.animate,\n appendTo: this.appendTo,\n content: this.popupTemplate,\n popupAlign: { vertical: 'top', horizontal: direction },\n popupClass: this.popupClasses,\n positionMode: 'absolute'\n });\n this.popupRef.popupElement.setAttribute('id', this.popupUID);\n this.popupRef.popupAnchorViewportLeave.subscribe(() => this.show = false);\n }\n }\n focusInput() {\n if (this.touchEnabled) {\n return;\n }\n this.input.focus();\n }\n toggleFocus() {\n if (!this.isActive) {\n return;\n }\n if (this.show) {\n if (!this.timeSelector) {\n this.cdr.detectChanges();\n }\n if (this.isActive) {\n this.timeSelector.focus();\n }\n }\n else if (!this.touchEnabled) {\n this.input.focus();\n }\n else if (!this.input.isActive) {\n this.handleBlur();\n }\n }\n verifyValue(value) {\n if (!isDevMode()) {\n return;\n }\n if (value && !(value instanceof Date)) {\n throw new Error(`The 'value' should be a valid JavaScript Date instance. Check ${VALUE_DOC_LINK$3} for possible resolution.`);\n }\n }\n verifyFormat() {\n if (!isDevMode()) {\n return;\n }\n const formatContainsDateParts = this.intl.splitDateFormat(this.format).some(part => !formatRegExp.test(part.type));\n if (formatContainsDateParts) {\n throw new Error(`Provided format is not supported. Supported specifiers are T|t|H|h|m|s|a. See ${INTL_DATE_FORMAT}`);\n }\n }\n bindEvents() {\n const element = this.element.nativeElement;\n this.domEvents.push(this.renderer.listen(element, 'keydown', this.handleKeydown.bind(this)));\n if (isWindowAvailable()) {\n this.windowBlurSubscription = fromEvent(window, 'blur').subscribe(this.handleWindowBlur.bind(this));\n }\n }\n handleWindowBlur() {\n if (!this.isOpen) {\n return;\n }\n this.show = false;\n }\n handleFocus() {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n if (hasObservers(this.onFocus)) {\n this.zone.run(() => {\n this.onFocus.emit();\n });\n }\n }\n handleBlur(args) {\n const currentTarget = args && currentFocusTarget(args);\n if (currentTarget && (this.input.containsElement(currentTarget) ||\n (this.timeSelector && this.timeSelector.containsElement(currentTarget)))) {\n return;\n }\n if (hasObservers(this.onBlur) || (this.show && hasObservers(this.close)) || requiresZoneOnBlur(this.control)) {\n this.zone.run(() => {\n this.blurComponent();\n this.cdr.markForCheck();\n });\n }\n else {\n this.blurComponent();\n }\n }\n blurComponent() {\n this.isActive = false; // order is important ¯\\_(ツ)_/¯\n this.show = false;\n this.onControlTouched();\n this.onBlur.emit();\n }\n}\nTimePickerComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendo-timepicker',\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TimePickerComponent), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => TimePickerComponent), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => TimePickerComponent) },\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.timepicker'\n },\n PickerService\n ],\n selector: 'kendo-timepicker',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nTimePickerComponent.ctorParameters = () => [\n { type: NgZone },\n { type: LocalizationService },\n { type: ChangeDetectorRef },\n { type: PopupService },\n { type: ElementRef },\n { type: Renderer2 },\n { type: Injector },\n { type: PickerService },\n { type: IntlService },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [TOUCH_ENABLED,] }] }\n];\nTimePickerComponent.propDecorators = {\n container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef },] }],\n popupTemplate: [{ type: ViewChild, args: ['popupTemplate',] }],\n wrapper: [{ type: ViewChild, args: ['wrapper',] }],\n focusableId: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n readOnlyInput: [{ type: Input }],\n format: [{ type: Input }],\n formatPlaceholder: [{ type: Input }],\n placeholder: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n cancelButton: [{ type: Input }],\n nowButton: [{ type: Input }],\n steps: [{ type: Input }],\n popupSettings: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input }],\n title: [{ type: Input }],\n rangeValidation: [{ type: Input }],\n value: [{ type: Input }],\n valueChange: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n open: [{ type: Output }],\n close: [{ type: Output }],\n wrapperClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-timepicker',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }]\n};\n\nconst timeFormatRegExp = new RegExp(`${TIME_PART.hour}|${TIME_PART.minute}|${TIME_PART.second}|${TIME_PART.dayperiod}|literal`);\nconst VALUE_DOC_LINK$4 = 'https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/integration-with-json/';\nconst MIN_MAX_DOC_LINK = 'https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/date-time-limits/';\nconst DEFAULT_ACTIVE_TAB = 'date';\nconst DEFAULT_DATEINPUT_FORMAT = 'g';\nconst DEFAULT_TIMESELECTOR_FORMAT = 't';\n/**\n * Represents the [Kendo UI DateTimePicker component for Angular]({% slug overview_datetimepicker %}).\n */\nclass DateTimePickerComponent {\n constructor(popupService, intl, cdr, pickerService, ngZone, host, touchEnabled$$1, localization, disabledDatesService) {\n this.popupService = popupService;\n this.intl = intl;\n this.cdr = cdr;\n this.pickerService = pickerService;\n this.ngZone = ngZone;\n this.host = host;\n this.touchEnabled = touchEnabled$$1;\n this.localization = localization;\n this.disabledDatesService = disabledDatesService;\n /**\n * @hidden\n */\n this.hostClasses = true;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Sets the title of the input element of the DateTimePicker.\n */\n this.title = '';\n /**\n * Sets or gets the `disabled` property of the DateTimePicker and determines whether the component is active\n * ([see example]({% slug disabled_datetimepicker %})).\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the DateTimePicker\n * ([see example]({% slug readonly_datetimepicker %}#toc-read-only-datetimepicker)).\n */\n this.readonly = false;\n /**\n * Sets the read-only state of the DateTimePicker input field\n * ([see example]({% slug readonly_datetimepicker %}#toc-read-only-input)).\n *\n * > Note that if you set the [`readonly`]({% slug api_dateinputs_datetimepickercomponent %}#toc-readonly) property value to `true`,\n * the input will be rendered in a read-only state regardless of the `readOnlyInput` value.\n */\n this.readOnlyInput = false;\n /**\n * Determines whether to display the **Cancel** button in the popup\n * ([see example]({% slug datetimepicker_popup_options %}#toc-toggling-the-cancel-button)).\n */\n this.cancelButton = true;\n /**\n * Determines whether to display a week number column in the `month` view of the popup Calendar\n * ([see example]({% slug datetimepicker_calendar_options %}#toc-week-number-column)).\n */\n this.weekNumber = false;\n /**\n * Determines whether the built-in min or max validators are enforced when validating a form\n * ([see example]({% slug dateranges_datetimepicker %}#toc-prevent-invalid-input)).\n */\n this.rangeValidation = true;\n /**\n * Determines whether the built-in validator for disabled\n * date ranges is enforced when validating a form\n * ([see example]({% slug disabled_dates_datetimepicker %}#toc-validation)).\n */\n this.disabledDatesValidation = true;\n /**\n * Fires each time the user selects a new value.\n * ([more information and example]({% slug overview_datetimepicker %}#toc-methods-and-events)).\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time the popup is about to open.\n * This event is preventable. If you cancel the event by setting `event.preventDefault()`, the popup will remain closed.\n * ([more information and example]({% slug overview_datetimepicker %}#toc-methods-and-events)).\n */\n this.open = new EventEmitter();\n /**\n * Fires each time the popup is about to close.\n * This event is preventable. If you cancel the event by setting `event.preventDefault()`, the popup will remain open.\n * ([more information and example]({% slug overview_datetimepicker %}#toc-methods-and-events)).\n */\n this.close = new EventEmitter();\n /**\n * Fires each time the user focuses the component.\n * ([more information and example]({% slug overview_datetimepicker %}#toc-methods-and-events)).\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires each time the user blurs the component.\n * ([more information and example]({% slug overview_datetimepicker %}#toc-methods-and-events)).\n */\n this.onBlur = new EventEmitter();\n /**\n * Indicates whether the component or its popup content is focused.\n */\n this.isActive = false;\n /**\n * @hidden\n *\n * Controls whether the Calendar or the TimeSelector will be displayed.\n */\n this.activeTab = DEFAULT_ACTIVE_TAB;\n /**\n * @hidden\n *\n * Specifies the stripped time-related format that is used in the TimeSelector.\n * Updates each time the `format` property value changes.\n */\n this.timeSelectorFormat = DEFAULT_TIMESELECTOR_FORMAT;\n /**\n * @hidden\n */\n this.timeSelectorMin = cloneDate(MIN_TIME);\n /**\n * @hidden\n */\n this.timeSelectorMax = cloneDate(MAX_TIME);\n /**\n * @hidden\n */\n this.calendarValue = null;\n /**\n * @hidden\n */\n this.calendarMin = cloneDate(MIN_DATE);\n /**\n * @hidden\n */\n this.calendarMax = lastMillisecondOfDate(MAX_DATE);\n this._popupSettings = { animate: true };\n this._value = null;\n this._format = DEFAULT_DATEINPUT_FORMAT;\n this._tabindex = 0;\n this._defaultTab = DEFAULT_ACTIVE_TAB;\n this._min = mergeDateAndTime(MIN_DATE, MIN_TIME);\n this._max = mergeDateAndTime(MAX_DATE, MAX_TIME);\n this.onControlTouched = noop;\n this.onControlChange = noop;\n this.onValidatorChange = noop;\n this.minValidateFn = noop;\n this.maxValidateFn = noop;\n this.disabledDatesValidateFn = noop;\n this.subscriptions = new Subscription();\n }\n /**\n * @hidden\n */\n get input() {\n return this.pickerService.input;\n }\n /**\n * @hidden\n */\n get calendar() {\n return this.pickerService.calendar;\n }\n /**\n * @hidden\n */\n get timeSelector() {\n return this.pickerService.timeSelector;\n }\n /**\n * Specifies the value of the DateTimePicker component.\n *\n * > The `value` has to be a valid [JavaScript `Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.\n */\n set value(value) {\n this.verifyValue(value);\n this._value = cloneDate(value);\n this.setCalendarValue(value);\n this.cdr.markForCheck();\n }\n get value() {\n return this._value;\n }\n /**\n * Specifies the date format for displaying the input value\n * ([see example]({% slug formats_datetimepicker %})).\n */\n set format(value) {\n this._format = value;\n this.timeSelectorFormat = this.getTimeSelectorFormat(value);\n }\n get format() {\n return this._format;\n }\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the DateTimePicker.\n */\n set tabindex(value) {\n const tabindex = Number(value);\n const defaultValue = 0;\n this._tabindex = !isNaN(tabindex) ? tabindex : defaultValue;\n }\n get tabindex() {\n return this.disabled ? -1 : this._tabindex;\n }\n /**\n * Sets the dates of the DateTimePicker that will be disabled\n * ([see example]({% slug disabled_dates_datetimepicker %})).\n */\n set disabledDates(value) {\n this._disabledDates = value;\n this.disabledDatesService.initialize(value);\n }\n get disabledDates() {\n return this._disabledDates;\n }\n /**\n * Configures the popup settings of the DateTimePicker\n * ([see example]({% slug datetimepicker_popup_options %}#toc-customizing-the-popup)).\n *\n * The available options are:\n * - `animate: Boolean`—Controls the popup animation. By default, the open and close animations are enabled.\n * - `appendTo: 'root' | 'component' | ViewContainerRef`—Controls the popup container. By default, the popup will be appended to the root component.\n * - `popupClass: String`—Specifies a list of CSS classes that are used to style the popup.\n */\n set popupSettings(settings) {\n this._popupSettings = Object.assign({}, { animate: true }, settings);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * Specifies the smallest valid date.\n * The Calendar will not display dates before this value.\n * If the `min` value of the Calendar is selected, the TimePicker will not display\n * time entries before the specified time portion of this value\n * ([see example]({% slug dateranges_datetimepicker %})).\n */\n set min(value) {\n if (!isPresent(value)) {\n return;\n }\n this._min = cloneDate(value);\n this.calendarMin = getDate(value);\n }\n get min() {\n return this._min;\n }\n /**\n * Specifies the biggest valid date.\n * The Calendar will not display dates after this value.\n * If the `max` value of the Calendar is selected, the TimePicker will not display\n * time entries after the specified time portion of this value\n * ([see example]({% slug dateranges_datetimepicker %})).\n */\n set max(value) {\n if (!isPresent(value)) {\n return;\n }\n this._max = cloneDate(value);\n this.calendarMax = lastMillisecondOfDate(value);\n }\n get max() {\n return this._max;\n }\n /**\n * Indicates whether the component is currently open.\n */\n get isOpen() {\n return isPresent(this.popupRef);\n }\n /**\n * Sets the active tab on opening the popup\n * ([see example]({% slug datetimepicker_popup_options %}#toc-setting-the-default-tab)).\n */\n set defaultTab(tab) {\n this._defaultTab = tab || DEFAULT_ACTIVE_TAB;\n this.activeTab = this.defaultTab;\n }\n get defaultTab() {\n return this._defaultTab;\n }\n /**\n * @hidden\n */\n get tabSwitchTransition() {\n /*\n When the popup is opening, disables the set transition in the themes. When `defaultTab` is set to `time`,\n the popup opens with an active **Time** tab and the animation of the initial transition is undesired.\n Setting the inline transition style to `none` overrides the set animation in the themes.\n Setting the inline transition style to `null` does not apply any inline styles or override the themes CSS.\n */\n return this.isOpen ? null : 'none';\n }\n /**\n * @hidden\n *\n * Indicates whether the Calendar will be disabled.\n * The inactive tab component gets disabled and becomes inaccessible on tab click.\n */\n get disableCalendar() {\n return this.activeTab !== 'date' && !this.calendar.isActive;\n }\n /**\n * @hidden\n */\n get inputRole() {\n return this.readOnlyInput ? 'listbox' : 'spinbutton';\n }\n /**\n * @hidden\n *\n * Indicates whether the TimeSelector will be disabled.\n * The inactive tab component gets disabled and becomes inaccessible on tab click.\n */\n get disableTimeSelector() {\n return this.activeTab !== 'time' && !this.timeSelector.isActive;\n }\n get activeTabComponent() {\n if (!this.isOpen) {\n return;\n }\n if (!(isPresent(this.calendar) || isPresent(this.timeSelector))) {\n this.cdr.detectChanges();\n }\n return this.activeTab === 'date' ? this.calendar : this.timeSelector;\n }\n get appendTo() {\n const { appendTo } = this.popupSettings;\n if (!isPresent(appendTo) || appendTo === 'root') {\n return undefined;\n }\n return appendTo === 'component' ? this.container : appendTo;\n }\n ngOnInit() {\n this.subscriptions.add(this.pickerService.onFocus\n // detect popup changes to disable the inactive view mark-up when the popup is open\n .pipe(tap(this.detectPopupChanges.bind(this)))\n .subscribe(this.handleFocus.bind(this)));\n this.subscriptions.add(this.pickerService.onBlur.subscribe(this.handleBlur.bind(this)));\n this.subscriptions.add(this.pickerService.sameDateSelected.subscribe(this.handleCalendarValueChange.bind(this)));\n this.subscriptions.add(this.localization.changes.subscribe(() => this.cdr.markForCheck()));\n if (isWindowAvailable()) {\n this.subscriptions.add(this.ngZone.runOutsideAngular(() => fromEvent(window, 'blur').subscribe(this.handleCancel.bind(this))));\n }\n }\n ngOnChanges(changes) {\n if (isPresent(changes.min) || isPresent(changes.max)) {\n this.verifyMinMaxRange();\n }\n if (changes.min || changes.max || changes.rangeValidation || changes.disabledDatesValidation || changes.disabledDates) {\n this.minValidateFn = this.rangeValidation ? minValidator(this.min) : noop;\n this.maxValidateFn = this.rangeValidation ? maxValidator(this.max) : noop;\n this.disabledDatesValidateFn = this.disabledDatesValidation ? disabledDatesValidator(this.disabledDatesService.isDateDisabled) : noop;\n this.onValidatorChange();\n }\n }\n ngOnDestroy() {\n if (this.isOpen) {\n this.closePopup();\n }\n this.subscriptions.unsubscribe();\n }\n /**\n * * If the popup is closed, focuses the DateTimePicker input.\n * * If the popup is open, the focus is moved to its content.\n */\n focus() {\n if (this.disabled) {\n return;\n }\n if (this.isOpen) {\n this.activeTabComponent.focus();\n }\n else {\n this.input.focus();\n }\n }\n /**\n * Blurs the DateTimePicker.\n */\n blur() {\n if (this.isOpen && this.activeTabComponent.isActive) {\n this.activeTabComponent.blur();\n }\n else {\n this.input.blur();\n }\n }\n /**\n * Toggles the visibility of the popup. If you use the `toggle` method to show or hide the popup,\n * the `open` and `close` events do not fire.\n * ([more information and example]({% slug overview_datetimepicker %}#toc-methods-and-events)).\n *\n * @param show - The state of the popup.\n */\n toggle(show) {\n if (this.disabled || this.readonly) {\n return;\n }\n const shouldOpen = isPresent(show) ? show : !this.isOpen;\n if (this.isOpen) {\n this.closePopup();\n // Changes the tab and the calendar or clock icon to the designated default.\n if (this.activeTab !== this.defaultTab) {\n this.activeTab = this.defaultTab;\n this.cdr.detectChanges();\n }\n }\n if (shouldOpen) {\n this.openPopup();\n }\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = value;\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onControlChange = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onControlTouched = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(disabled) {\n this.disabled = disabled;\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n validate(control) {\n return this.minValidateFn(control) || this.maxValidateFn(control) || this.disabledDatesValidateFn(control);\n }\n /**\n * @hidden\n */\n registerOnValidatorChange(fn) {\n this.onValidatorChange = fn;\n }\n /**\n * @hidden\n *\n * Used by the TextBoxContainer to determine if the floating label will render in the input.\n */\n isEmpty() {\n return !isPresent(this.value) && this.input.isEmpty();\n }\n /**\n * @hidden\n */\n handleIconClick(event) {\n if (this.disabled || this.readonly) {\n return;\n }\n // prevents the event default to evade focusing the DateInput input when placed inside a label (FF/IE/Edge)\n event.preventDefault();\n const runInZone = !this.isOpen || hasObservers(this.close);\n this.run(runInZone, () => {\n // handle focus first to maintain correct event order `focus` => `open`\n this.handleFocus();\n this.togglePopup(!this.isOpen);\n });\n }\n /**\n * @hidden\n */\n handleFocus() {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n this.cdr.detectChanges();\n if (hasObservers(this.onFocus)) {\n this.ngZone.run(() => this.onFocus.emit());\n }\n }\n /**\n * @hidden\n */\n handleBlur(event) {\n if (!this.isActive || this.focusTargetInComponent(event)) {\n return;\n }\n this.isActive = false;\n this.cdr.detectChanges();\n const isNgControlUntouched = this.host.nativeElement.classList.contains('ng-untouched');\n const runInZone = isNgControlUntouched || hasObservers(this.onBlur) || (this.isOpen && hasObservers(this.close));\n this.run(runInZone, () => {\n this.onBlur.emit();\n this.onControlTouched();\n this.togglePopup(false);\n this.cdr.markForCheck();\n });\n }\n /**\n * @hidden\n */\n changeActiveTab(tab) {\n if (!this.isOpen || this.activeTab === tab) {\n return;\n }\n // persists the Tcurrent value of the TimeSelector when switching between tabs\n if (!isEqual(this.timeSelector.value, this.timeSelector.current)) {\n this.timeSelector.handleAccept();\n }\n this.activeTab = tab;\n this.cdr.detectChanges();\n this.detectPopupChanges();\n }\n /**\n * @hidden\n */\n handleTabChangeTransitionEnd(dateTimeSelector, event) {\n // handle only the .k-datetime-selector element transition, ignore any child element transitions\n if (event.target !== dateTimeSelector) {\n return;\n }\n this.activeTabComponent.focus();\n }\n /**\n * @hidden\n */\n handleAccept() {\n if (!this.isOpen) {\n return;\n }\n const candidate = mergeDateAndTime(this.calendar.value, this.timeSelector.current);\n const valueChangePresent = !isEqual(this.value, candidate);\n const runInZone = valueChangePresent || hasObservers(this.close);\n this.run(runInZone, () => {\n this.handleValueChange(candidate);\n this.togglePopup(false);\n });\n }\n /**\n * @hidden\n */\n handleCancel() {\n if (!this.isOpen) {\n return;\n }\n const runInZone = hasObservers(this.close);\n this.run(runInZone, () => this.togglePopup(false));\n }\n /**\n * @hidden\n */\n handleInputValueChange(value) {\n this.handleValueChange(value);\n if (this.isOpen) {\n this.togglePopup(false);\n }\n }\n /**\n * @hidden\n */\n handleCalendarValueChange() {\n this.setTimeSelectorMinMax(this.calendar.value);\n this.changeActiveTab('time');\n }\n /**\n * @hidden\n */\n handleKeyDown(event) {\n if (this.disabled || this.readonly) {\n return;\n }\n const { keyCode, altKey } = event;\n switch (keyCode) {\n case altKey && Keys.ArrowUp:\n case Keys.Escape:\n this.handleCancel();\n break;\n case !this.isOpen && altKey && Keys.ArrowDown:\n this.ngZone.run(() => this.togglePopup(true));\n break;\n case altKey && Keys.ArrowRight:\n this.changeActiveTab('time');\n break;\n case altKey && Keys.ArrowLeft:\n this.changeActiveTab('date');\n break;\n case this.isOpen && this.timeSelector.isActive && isPresent(this.calendarValue) && Keys.Enter:\n this.handleAccept();\n break;\n default: return;\n }\n event.preventDefault();\n }\n /**\n * @hidden\n */\n handleTabOut(event) {\n const { keyCode, shiftKey, target } = event;\n // if no focusable next sibling elements exist in the controls sections, the user is tabbing out of the popup\n const focusableSiblingAvailable = isPresent(target.nextElementSibling) && !target.nextElementSibling.disabled;\n if (keyCode === Keys.Tab && !shiftKey && !focusableSiblingAvailable) {\n this.input.focus();\n this.handleCancel();\n }\n }\n /**\n * @hidden\n */\n handleBackTabOut(event) {\n const { keyCode, shiftKey } = event;\n if (keyCode === Keys.Tab && shiftKey) {\n this.input.focus();\n }\n }\n /**\n * @hidden\n *\n * Prevents the diversion of the focus from the currently active element in the component.\n */\n preventMouseDown(event) {\n event.preventDefault();\n }\n verifyValue(value) {\n if (!isDevMode()) {\n return;\n }\n if (isPresent(value) && !(value instanceof Date)) {\n throw new Error(`The 'value' should be a valid JavaScript Date instance. Check ${VALUE_DOC_LINK$4} for possible resolution.`);\n }\n }\n verifyMinMaxRange() {\n if (!isDevMode()) {\n return;\n }\n if (!isValidRange(this.min, this.max)) {\n throw new Error(`The max value should be bigger than the min. See ${MIN_MAX_DOC_LINK}.`);\n }\n }\n /**\n * Extracts the time slots and the literals that are not preceded by date parts\n * and concatenates the resulting parts into a string.\n * If the provided format value does not contain any time parts,\n * returns the designated format of the default popup component of the TimePicker.\n */\n getTimeSelectorFormat(format) {\n const timeSelectorFormat = this.intl\n .splitDateFormat(format)\n .filter(this.timeFormatPartFilter)\n .reduce((format, part) => format += part.pattern, '');\n return timeSelectorFormat || DEFAULT_TIMESELECTOR_FORMAT;\n }\n /**\n * The filter expression that filters out all format parts\n * except for `hour`, `minute`, `second`, `dayperiod`, and specific literals.\n * Literals will be left only if they are not preceded by date parts.\n */\n timeFormatPartFilter(part, index, parts) {\n const previousPart = index >= 1 && parts[index - 1];\n if (previousPart && part.type === 'literal') {\n return timeFormatRegExp.test(previousPart.type);\n }\n return timeFormatRegExp.test(part.type);\n }\n togglePopup(open) {\n if (open === this.isOpen) {\n return;\n }\n const event = new PreventableEvent();\n open ? this.open.emit(event) : this.close.emit(event);\n if (event.isDefaultPrevented()) {\n return;\n }\n this.toggle(open);\n this.switchFocus();\n }\n switchFocus() {\n if (!this.isActive) {\n return;\n }\n if (this.isOpen) {\n this.activeTabComponent.focus();\n }\n else if (!this.touchEnabled) {\n this.input.focus();\n }\n else if (!this.input.isActive) {\n this.handleBlur();\n }\n }\n openPopup() {\n this.setCalendarValue(this.value);\n this.setTimeSelectorMinMax(this.value);\n const direction = this.localization.rtl ? 'right' : 'left';\n this.popupRef = this.popupService.open({\n anchor: this.wrapper,\n content: this.popupTemplate,\n positionMode: 'absolute',\n animate: this.popupSettings.animate,\n appendTo: this.appendTo,\n popupClass: `k-datetime-container ${this.popupSettings.popupClass || ''}`,\n anchorAlign: { vertical: 'bottom', horizontal: direction },\n popupAlign: { vertical: 'top', horizontal: direction }\n });\n this.popupRef.popupAnchorViewportLeave.subscribe(() => this.handleCancel());\n }\n closePopup() {\n if (!this.isOpen) {\n return;\n }\n this.popupRef.close();\n this.popupRef = null;\n }\n handleValueChange(value) {\n if (isEqual(this.value, value)) {\n return;\n }\n this.value = cloneDate(value);\n this.valueChange.emit(cloneDate(value));\n this.onControlChange(cloneDate(value));\n }\n /**\n * Indicates whether the focus target is part of this component,\n * that is, whether the focus target is inside the component wrapper or in the popup.\n */\n focusTargetInComponent(event) {\n if (!isPresent(event)) {\n return false;\n }\n const relatedTarget = event.relatedTarget || document.activeElement;\n const focusInPopup = isPresent(this.popupRef) && this.popupRef.popupElement.contains(relatedTarget);\n const focusInWrapper = this.wrapper.nativeElement.contains(relatedTarget);\n return focusInPopup || focusInWrapper;\n }\n setTimeSelectorMinMax(selectedDate) {\n const minDateSelected = isPresent(selectedDate) && isEqual(getDate(selectedDate), getDate(this.min));\n this.timeSelectorMin = cloneDate(minDateSelected ? this.min : MIN_TIME);\n const maxDateSelected = isPresent(selectedDate) && isEqual(getDate(selectedDate), getDate(this.max));\n this.timeSelectorMax = cloneDate(maxDateSelected ? this.max : MAX_TIME);\n }\n setCalendarValue(value) {\n const isInCalendarRange = isPresent(value) && isInRange(value, this.calendarMin, this.calendarMax);\n this.calendarValue = isInCalendarRange ? getDate(value) : null;\n }\n /**\n * If the popup is available, runs a popup change detection.\n */\n detectPopupChanges() {\n if (!this.isOpen) {\n return;\n }\n this.popupRef.popup.changeDetectorRef.detectChanges();\n }\n /**\n * Depending on the predicate `runInZone` value that is passed,\n * runs the provided function either in the Angular or in the current zone.\n */\n run(runInZone, fn) {\n if (runInZone) {\n this.ngZone.run(() => fn());\n }\n else {\n fn();\n }\n }\n}\nDateTimePickerComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-datetimepicker',\n exportAs: 'kendo-datetimepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n PickerService,\n LocalizationService,\n DisabledDatesService,\n { provide: L10N_PREFIX, useValue: 'kendo.datetimepicker' },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateTimePickerComponent), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateTimePickerComponent), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => DateTimePickerComponent) }\n ],\n template: `\n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n
\n
\n \n {{localization.get('dateTab')}}\n \n \n {{localization.get('timeTab')}}\n \n
\n
\n \n
\n \n \n \n \n
\n
\n \n \n \n \n
\n \n \n \n {{localization.get('cancel')}}\n \n \n {{localization.get('accept')}}\n \n \n \n
\n `\n },] },\n];\n/** @nocollapse */\nDateTimePickerComponent.ctorParameters = () => [\n { type: PopupService },\n { type: IntlService },\n { type: ChangeDetectorRef },\n { type: PickerService },\n { type: NgZone },\n { type: ElementRef },\n { type: Boolean, decorators: [{ type: Inject, args: [TOUCH_ENABLED,] }] },\n { type: LocalizationService },\n { type: DisabledDatesService }\n];\nDateTimePickerComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-datetimepicker',] }],\n wrapper: [{ type: ViewChild, args: ['wrapper',] }],\n value: [{ type: Input }],\n format: [{ type: Input }],\n tabindex: [{ type: Input }],\n disabledDates: [{ type: Input }],\n popupSettings: [{ type: Input }],\n focusableId: [{ type: Input }],\n title: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n readOnlyInput: [{ type: Input }],\n cancelButton: [{ type: Input }],\n formatPlaceholder: [{ type: Input }],\n placeholder: [{ type: Input }],\n steps: [{ type: Input }],\n focusedDate: [{ type: Input }],\n weekNumber: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n rangeValidation: [{ type: Input }],\n disabledDatesValidation: [{ type: Input }],\n valueChange: [{ type: Output }],\n open: [{ type: Output }],\n close: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n defaultTab: [{ type: Input }],\n cellTemplate: [{ type: ContentChild, args: [CellTemplateDirective,] }],\n monthCellTemplate: [{ type: ContentChild, args: [MonthCellTemplateDirective,] }],\n yearCellTemplate: [{ type: ContentChild, args: [YearCellTemplateDirective,] }],\n decadeCellTemplate: [{ type: ContentChild, args: [DecadeCellTemplateDirective,] }],\n centuryCellTemplate: [{ type: ContentChild, args: [CenturyCellTemplateDirective,] }],\n weekNumberTemplate: [{ type: ContentChild, args: [WeekNumberCellTemplateDirective,] }],\n headerTitleTemplate: [{ type: ContentChild, args: [HeaderTitleTemplateDirective,] }],\n container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef },] }],\n popupTemplate: [{ type: ViewChild, args: ['popupTemplate', { read: TemplateRef },] }]\n};\n\n/* tslint:disable:component-selector-name component-selector-type */\nconst DEFAULT_VIEWS_LENGTH = 2;\n/**\n * @hidden\n */\nclass HorizontalViewListComponent {\n constructor(bus, cdr) {\n this.bus = bus;\n this.cdr = cdr;\n this.activeView = CalendarViewEnum.month;\n this.isActive = true;\n this.min = new Date(MIN_DATE);\n this.max = new Date(MAX_DATE);\n this.views = DEFAULT_VIEWS_LENGTH;\n this.valueChange = new EventEmitter();\n this.cellEnter = new EventEmitter();\n this.cellLeave = new EventEmitter();\n this.dates = [];\n }\n get weekNumber() {\n return this.showWeekNumbers && this.isMonthView();\n }\n set weekNumber(showWeekNumbers) {\n this.showWeekNumbers = showWeekNumbers;\n }\n get getComponentClass() {\n return true;\n }\n get getComponentMonthClass() {\n return this.activeView === CalendarViewEnum.month;\n }\n get getComponentYearClass() {\n return this.activeView === CalendarViewEnum.year;\n }\n get getComponentDecadeClass() {\n return this.activeView === CalendarViewEnum.decade;\n }\n get getComponentCenturyClass() {\n return this.activeView === CalendarViewEnum.century;\n }\n ngOnChanges(changes) {\n this.initService();\n if (!this.service) {\n return;\n }\n this.views = this.views || DEFAULT_VIEWS_LENGTH;\n const focusedDate = this.focusedDate;\n const viewDate = this.clampDate(this.service.viewDate(focusedDate, this.max, this.views));\n this.skip = this.service.skip(viewDate, this.min);\n this.total = this.service.total(this.min, this.max);\n const activeViewChanged = hasChange(changes, 'activeView');\n const viewsHasChanged = this.views > 0 && hasChange(changes, 'views');\n if (activeViewChanged || !this.isInDates(focusedDate) || viewsHasChanged || !this.activeDate) {\n this.dates = this.service.datesList(viewDate, this.getTake(this.skip));\n this.activeDate = cloneDate(this.dates[0]);\n }\n }\n initService() {\n this.service = this.bus.service(this.activeView);\n }\n handleDateChange(candidate) {\n this.valueChange.emit(candidate);\n }\n isMonthView() {\n return this.activeView === CalendarViewEnum.month;\n }\n navigate(action) {\n const candidate = this.move(action);\n const list = this.service.datesList(candidate, this.getTake(this.skip));\n if (this.isListInRange(list)) {\n this.dates = list;\n }\n this.activeDate = cloneDate(this.dates[0]);\n this.focusedDate = cloneDate(candidate);\n this.cdr.markForCheck();\n return cloneDate(candidate);\n }\n canNavigate(action) {\n if (!this.service) {\n return false;\n }\n return this.isListInRange(this.service.datesList(this.move(action), this.getTake(this.skip)));\n }\n clampDate(value) {\n return dateInRange(value, this.min, this.max);\n }\n move(action) {\n return this.service.move(this.dates[0] || this.focusedDate, action);\n }\n isListInRange(list) {\n const lowerBound = this.service.beginningOfPeriod(this.min);\n const upperBound = this.service.beginningOfPeriod(this.service.addToDate(this.max, 1));\n return lowerBound <= list[0] && list[list.length - 1] < upperBound;\n }\n isInDates(value) {\n return this.service.isInArray(value, this.dates);\n }\n getTake(skip) {\n return Math.min(this.total - skip, this.views);\n }\n}\nHorizontalViewListComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-calendar-horizontal',\n template: `\n \n \n \n \n
\n `\n },] },\n];\n/** @nocollapse */\nHorizontalViewListComponent.ctorParameters = () => [\n { type: BusViewService },\n { type: ChangeDetectorRef }\n];\nHorizontalViewListComponent.propDecorators = {\n cellTemplateRef: [{ type: Input }],\n weekNumberTemplateRef: [{ type: Input }],\n headerTitleTemplateRef: [{ type: Input }],\n activeRangeEnd: [{ type: Input }],\n activeView: [{ type: Input }],\n cellUID: [{ type: Input }],\n focusedDate: [{ type: Input }],\n isActive: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n selectionRange: [{ type: Input }],\n value: [{ type: Input }],\n views: [{ type: Input }],\n weekNumber: [{ type: Input }],\n valueChange: [{ type: Output }],\n cellEnter: [{ type: Output }],\n cellLeave: [{ type: Output }],\n getComponentClass: [{ type: HostBinding, args: [\"class.k-calendar-view\",] }],\n getComponentMonthClass: [{ type: HostBinding, args: [\"class.k-calendar-monthview\",] }],\n getComponentYearClass: [{ type: HostBinding, args: [\"class.k-calendar-yearview\",] }],\n getComponentDecadeClass: [{ type: HostBinding, args: [\"class.k-calendar-decadeview\",] }],\n getComponentCenturyClass: [{ type: HostBinding, args: [\"class.k-calendar-centuryview\",] }]\n};\n\nconst noop$2 = () => null;\n/**\n * @hidden\n */\nconst disabledDatesRangeValidator = (isDateDisabled) => {\n if (!isPresent(isDateDisabled)) {\n return noop$2;\n }\n return (selectedRange) => {\n const isRangeComplete = isPresent(selectedRange) && isPresent(selectedRange.start) && isPresent(selectedRange.end);\n if (!isRangeComplete || selectedRange.start > selectedRange.end) {\n return null;\n }\n const disabledDates = disabledDatesInRange(selectedRange.start, selectedRange.end, isDateDisabled);\n const error = {\n disabledDatesInRange: disabledDates\n };\n return disabledDates.length ? error : null;\n };\n};\n\n/* tslint:disable:no-forward-ref */\nconst BOTTOM_VIEW_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-bottomview';\nconst TOP_VIEW_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-topview';\nconst MIN_DOC_LINK$3 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-min';\nconst MAX_DOC_LINK$3 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-max';\nconst VALUE_DOC_LINK$5 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/calendar/#toc-using-with-json';\n/**\n * @hidden\n */\nconst RANGE_CALENDAR_VALUE_ACCESSOR = {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiViewCalendarComponent) //tslint:disable-line:no-use-before-declare\n};\n/**\n * @hidden\n */\nconst RANGE_CALENDAR_RANGE_VALIDATORS = {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MultiViewCalendarComponent) //tslint:disable-line:no-use-before-declare\n};\n/**\n * Represents the Kendo UI MultiViewCalendar component for Angular.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\nclass MultiViewCalendarComponent {\n constructor(bus, element, localization, navigator, renderer, cdr, zone, disabledDatesService) {\n this.bus = bus;\n this.element = element;\n this.localization = localization;\n this.navigator = navigator;\n this.renderer = renderer;\n this.cdr = cdr;\n this.zone = zone;\n this.disabledDatesService = disabledDatesService;\n /**\n * @hidden\n */\n this.id = guid();\n /**\n * Determines whether the built-in min or max validators are enforced when validating a form.\n */\n this.rangeValidation = false;\n /**\n * Determines whether the built-in validator for disabled\n * date ranges is enforced when validating a form\n * ([see example]({% slug disabled_dates_multiviewcalendar %}#toc-validation)).\n */\n this.disabledDatesRangeValidation = false;\n /**\n * Sets or gets the `disabled` property of the Calendar and\n * determines whether the component is active\n * ([see example]({% slug disabled_multiviewcalendar %})).\n */\n this.disabled = false;\n /**\n * Sets or gets the `tabindex` property of the Calendar. Based on the\n * [HTML `tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) behavior,\n * it determines whether the component is focusable.\n */\n this.tabindex = 0;\n /**\n * Defines the active view that the Calendar initially renders\n * ([see example]({% slug activeview_multiviewcalendar %})).\n * By default, the active view is `month`.\n *\n * > You have to set `activeView` within the `topView`-`bottomView` range.\n */\n this.activeView = CalendarViewEnum[CalendarViewEnum.month];\n /**\n * Defines the bottommost view, to which the user can navigate\n * ([see example]({% slug dates_multiviewcalendar %}#toc-partial-dates)).\n */\n this.bottomView = CalendarViewEnum[CalendarViewEnum.month];\n /**\n * Defines the topmost view, to which the user can navigate.\n */\n this.topView = CalendarViewEnum[CalendarViewEnum.century];\n /**\n * Determines whether to display a week number column in the `month` view\n * ([see example]({% slug weeknumcolumn_multiviewcalendar %})).\n */\n this.weekNumber = false;\n /**\n * Sets or gets the `views` property of the Calendar and\n * defines the number of rendered months.\n */\n this.views = 2;\n /**\n * Fires when the active view is changed\n * ([more information and example]({% slug overview_multiviewcalendar %}#toc-events)).\n */\n this.activeViewChange = new EventEmitter();\n /**\n * Fires when a view cell is entered\n * ([more information and example]({% slug overview_multiviewcalendar %}#toc-events)).\n */\n this.cellEnter = new EventEmitter();\n /**\n * Fires when a view cell is leaved\n * ([more information and example]({% slug overview_multiviewcalendar %}#toc-events)).\n */\n this.cellLeave = new EventEmitter();\n /**\n * Fires when the value is changed\n * ([more information and example]({% slug overview_multiviewcalendar %}#toc-events)).\n */\n this.valueChange = new EventEmitter();\n this.cellUID = guid();\n this.isActive = false;\n this.isHovered = false;\n this.isPrevDisabled = true;\n this.isNextDisabled = true;\n this.prevView = Action.PrevView;\n this.nextView = Action.NextView;\n this._min = new Date(MIN_DATE);\n this._max = new Date(MAX_DATE);\n this._focusedDate = getToday();\n this.resolvedPromise = Promise.resolve();\n this.onControlChange = noop;\n this.onControlTouched = noop;\n this.onValidatorChange = noop;\n this.minValidateFn = noop;\n this.maxValidateFn = noop;\n this.disabledDatesRangeValidateFn = noop;\n this.subscriptions = new Subscription(() => { });\n this.setClasses(element.nativeElement);\n }\n /**\n * Sets or gets the `focusedDate` property of the Calendar and\n * defines the focused date of the component\n * ([see example]({% slug dates_multiviewcalendar %}#toc-focused-dates)).\n *\n * > If the Calendar is out of the min or max range, it normalizes the defined `focusedDate`.\n */\n set focusedDate(focusedDate) {\n this._focusedDate = focusedDate || getToday();\n }\n get focusedDate() {\n return this._focusedDate;\n }\n /**\n * Sets or gets the `min` property of the Calendar and\n * defines the minimum allowed date value.\n * By default, the `min` value is `1900-1-1`.\n */\n set min(min) {\n this._min = min || new Date(MIN_DATE);\n }\n get min() {\n return this._min;\n }\n /**\n * Sets or gets the `max` property of the Calendar and\n * defines the maximum allowed date value.\n * By default, the `max` value is `2099-12-31`.\n */\n set max(max) {\n this._max = max || new Date(MAX_DATE);\n }\n get max() {\n return this._max;\n }\n /**\n * Sets or gets the `value` property of the Calendar and defines the selected value of the component.\n *\n * > The `value` has to be a valid\n * [JavaScript `Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.\n */\n get value() {\n return this._value;\n }\n set value(candidate) {\n this.verifyValue(candidate);\n this._value = cloneDate(candidate);\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n /**\n * Sets the dates of the MultiViewCalendar that will be disabled\n * ([see example]({% slug disabled_dates_multiviewcalendar %})).\n */\n set disabledDates(value) {\n this.disabledDatesService.initialize(value);\n }\n /**\n * Sets or gets the `selectionRange` property of the Calendar and\n * defines the selection range of the component\n * ([see example]({% slug dates_multiviewcalendar %}#toc-selection-range)).\n */\n set selectionRange(range$$1) {\n this._selectionRange = range$$1;\n if (this.disabledDatesRangeValidation) {\n this.onValidatorChange();\n }\n }\n get selectionRange() {\n return this._selectionRange;\n }\n /**\n * @hidden\n */\n set cellTemplateRef(template) {\n this.cellTemplate = template;\n }\n /**\n * @hidden\n */\n set monthCellTemplateRef(template) {\n this.monthCellTemplate = template;\n }\n /**\n * @hidden\n */\n set yearCellTemplateRef(template) {\n this.yearCellTemplate = template;\n }\n /**\n * @hidden\n */\n set decadeCellTemplateRef(template) {\n this.decadeCellTemplate = template;\n }\n /**\n * @hidden\n */\n set centuryCellTemplateRef(template) {\n this.centuryCellTemplate = template;\n }\n /**\n * @hidden\n */\n set weekNumberTemplateRef(template) {\n this.weekNumberTemplate = template;\n }\n /**\n * @hidden\n */\n set headerTitleTemplateRef(template) {\n this.headerTitleTemplate = template;\n }\n get activeViewEnum() {\n const activeView = CalendarViewEnum[this.activeView];\n return activeView < this.bottomViewEnum ? this.bottomViewEnum : activeView;\n }\n get bottomViewEnum() {\n return CalendarViewEnum[this.bottomView];\n }\n get topViewEnum() {\n return CalendarViewEnum[this.topView];\n }\n get widgetId() {\n return this.id;\n }\n get widgetRole() {\n return 'grid';\n }\n get calendarTabIndex() {\n return this.disabled ? undefined : this.tabIndex;\n }\n get ariaDisabled() {\n return this.disabled;\n }\n get ariaActivedescendant() {\n return this.cellUID + this.focusedDate.getTime();\n }\n /**\n * @hidden\n */\n handleBlur() {\n this.onControlTouched();\n this.isActive = false;\n this.isHovered = false; //ensure that hovered is also not active\n }\n /**\n * @hidden\n */\n handleFocus() {\n this.isActive = true;\n }\n /**\n * @hidden\n */\n handleMouseEnter() {\n this.isHovered = true;\n }\n /**\n * @hidden\n */\n handleMouseLeave() {\n this.isHovered = false;\n }\n /**\n * @hidden\n */\n handleMousedown(event) {\n event.preventDefault();\n }\n /**\n * @hidden\n */\n handleClick() {\n if (this.isActive) {\n return;\n }\n this.focus();\n }\n /**\n * @hidden\n */\n keydown(event) {\n const candidate = dateInRange(this.navigator.move(this.focusedDate, this.navigator.action(event), this.activeViewEnum), this.min, this.max);\n if (isEqual(this.focusedDate, candidate)) {\n return;\n }\n this.focusedDate = candidate;\n event.preventDefault();\n }\n /**\n * @hidden\n */\n enter() {\n this.handleDateChange(this.focusedDate);\n }\n ngOnInit() {\n this.setMessages();\n this.subscriptions.add(this.localization.changes.subscribe(() => this.setMessages()));\n this.subscriptions.add(this.bus.viewChanged.subscribe(({ view }) => {\n this.activeView = CalendarViewEnum[view];\n this.activeViewChange.emit(this.activeView);\n this.cdr.detectChanges();\n this.updateButtonState();\n }));\n }\n ngOnChanges(changes) {\n this.verifyChanges();\n this.bus.configure(this.bottomViewEnum, this.topViewEnum);\n const useValue = hasExistingValue(changes, 'value') && !hasExistingValue(changes, 'focusedDate');\n const focusedDate = dateInRange(cloneDate(useValue ? this.value : this.focusedDate), this.min, this.max);\n this.focusedDate = !isEqual(this.focusedDate, focusedDate) ? focusedDate : this.focusedDate;\n if (changes.min || changes.max || changes.rangeValidation || changes.disabledDates || changes.disabledDatesRangeValidation) {\n this.minValidateFn = this.rangeValidation ? minValidator(this.min) : noop;\n this.maxValidateFn = this.rangeValidation ? maxValidator(this.max) : noop;\n this.disabledDatesRangeValidateFn = this.disabledDatesRangeValidation ? disabledDatesRangeValidator(this.disabledDatesService.isDateDisabled) : noop;\n this.onValidatorChange();\n }\n if (changes.min || changes.max || changes.focusedDate || changes.activeView) {\n this.updateButtonState();\n }\n }\n ngOnDestroy() {\n clearTimeout(this.messagesTimeout);\n this.subscriptions.unsubscribe();\n }\n ngAfterViewInit() {\n this.updateButtonState();\n }\n /**\n * Focuses the host element of the Calendar.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n if (!this.element) {\n return;\n }\n this.element.nativeElement.focus();\n }\n /**\n * Blurs the Calendar component.\n */\n blur() {\n if (!this.element) {\n return;\n }\n this.element.nativeElement.blur();\n }\n /**\n * @hidden\n */\n handleDateChange(candidate) {\n const canNavigateDown = this.bus.canMoveDown(this.activeViewEnum);\n const isSameDate = !canNavigateDown && isEqual(candidate, this.value);\n this.focusedDate = cloneDate(candidate) || this.focusedDate;\n if (this.disabled || isSameDate) {\n return;\n }\n if (canNavigateDown) {\n this.bus.moveDown(this.activeViewEnum);\n return;\n }\n if (!this.disabledDatesService.isDateDisabled(candidate)) {\n this.value = cloneDate(candidate);\n this.onControlChange(cloneDate(candidate));\n this.valueChange.emit(cloneDate(candidate));\n }\n }\n /**\n * @hidden\n */\n writeValue(candidate) {\n this.verifyValue(candidate);\n this.focusedDate = dateInRange(cloneDate(candidate) || this.focusedDate, this.min, this.max);\n this.value = cloneDate(candidate);\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onControlChange = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onControlTouched = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n validate(control) {\n return this.minValidateFn(control) || this.maxValidateFn(control) || this.disabledDatesRangeValidateFn(this.selectionRange);\n }\n /**\n * @hidden\n */\n registerOnValidatorChange(fn) {\n this.onValidatorChange = fn;\n }\n /**\n * @hidden\n */\n activeCellTemplate() {\n switch (this.activeViewEnum) {\n case CalendarViewEnum.month:\n return this.monthCellTemplate || this.cellTemplate;\n case CalendarViewEnum.year:\n return this.yearCellTemplate;\n case CalendarViewEnum.decade:\n return this.decadeCellTemplate;\n case CalendarViewEnum.century:\n return this.centuryCellTemplate;\n default:\n return null;\n }\n }\n /**\n * @hidden\n */\n navigate(action) {\n this.focusedDate = this.viewList.navigate(action);\n this.updateButtonState();\n }\n /**\n * @hidden\n */\n emitCellEvent(emitter, args) {\n if (hasObservers(emitter)) {\n this.zone.run(() => {\n emitter.emit(args);\n });\n }\n }\n setClasses(element) {\n this.renderer.addClass(element, 'k-widget');\n this.renderer.addClass(element, 'k-calendar');\n this.renderer.addClass(element, 'k-calendar-infinite');\n this.renderer.addClass(element, 'k-calendar-range');\n }\n setMessages() {\n this.zone.runOutsideAngular(() => {\n clearTimeout(this.messagesTimeout);\n this.messagesTimeout = setTimeout(() => {\n this.prevButtonTitle = this.localization.get('prevButtonTitle');\n this.nextButtonTitle = this.localization.get('nextButtonTitle');\n this.cdr.detectChanges();\n });\n });\n }\n verifyChanges() {\n if (!isDevMode()) {\n return;\n }\n if (this.min > this.max) {\n throw new Error(`The max value should be bigger than the min. See ${MIN_DOC_LINK$3} and ${MAX_DOC_LINK$3}.`);\n }\n if (this.bottomViewEnum > this.topViewEnum) {\n throw new Error(`The topView should be greater than bottomView. See ${BOTTOM_VIEW_DOC_LINK$1} and ${TOP_VIEW_DOC_LINK$1}.`);\n }\n }\n verifyValue(candidate) {\n if (!isDevMode()) {\n return;\n }\n if (candidate && !(candidate instanceof Date)) {\n throw new Error(`The 'value' should be a valid JavaScript Date instance. Check ${VALUE_DOC_LINK$5} for possible resolution.`);\n }\n }\n updateButtonState() {\n this.resolvedPromise.then(() => {\n this.isPrevDisabled = !this.viewList.canNavigate(this.prevView);\n this.isNextDisabled = !this.viewList.canNavigate(this.nextView);\n this.cdr.markForCheck();\n });\n }\n}\nMultiViewCalendarComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendo-multiviewcalendar',\n providers: [\n BusViewService,\n RANGE_CALENDAR_VALUE_ACCESSOR,\n RANGE_CALENDAR_RANGE_VALIDATORS,\n LocalizationService,\n DisabledDatesService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.multiviewcalendar'\n },\n NavigationService\n ],\n selector: 'kendo-multiviewcalendar',\n template: `\n \n \n \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nMultiViewCalendarComponent.ctorParameters = () => [\n { type: BusViewService },\n { type: ElementRef },\n { type: LocalizationService },\n { type: NavigationService },\n { type: Renderer2 },\n { type: ChangeDetectorRef },\n { type: NgZone },\n { type: DisabledDatesService }\n];\nMultiViewCalendarComponent.propDecorators = {\n id: [{ type: Input }],\n focusedDate: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n rangeValidation: [{ type: Input }],\n disabledDatesRangeValidation: [{ type: Input }],\n value: [{ type: Input }],\n disabled: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input }],\n disabledDates: [{ type: Input }],\n activeView: [{ type: Input }],\n bottomView: [{ type: Input }],\n topView: [{ type: Input }],\n weekNumber: [{ type: Input }],\n activeRangeEnd: [{ type: Input }],\n selectionRange: [{ type: Input }],\n views: [{ type: Input }],\n activeViewChange: [{ type: Output }],\n cellEnter: [{ type: Output }],\n cellLeave: [{ type: Output }],\n valueChange: [{ type: Output }],\n cellTemplate: [{ type: ContentChild, args: [CellTemplateDirective, { static: true },] }],\n cellTemplateRef: [{ type: Input, args: ['cellTemplate',] }],\n monthCellTemplate: [{ type: ContentChild, args: [MonthCellTemplateDirective, { static: true },] }],\n monthCellTemplateRef: [{ type: Input, args: ['monthCellTemplate',] }],\n yearCellTemplate: [{ type: ContentChild, args: [YearCellTemplateDirective, { static: true },] }],\n yearCellTemplateRef: [{ type: Input, args: ['yearCellTemplate',] }],\n decadeCellTemplate: [{ type: ContentChild, args: [DecadeCellTemplateDirective, { static: true },] }],\n decadeCellTemplateRef: [{ type: Input, args: ['decadeCellTemplate',] }],\n centuryCellTemplate: [{ type: ContentChild, args: [CenturyCellTemplateDirective, { static: true },] }],\n centuryCellTemplateRef: [{ type: Input, args: ['centuryCellTemplate',] }],\n weekNumberTemplate: [{ type: ContentChild, args: [WeekNumberCellTemplateDirective, { static: true },] }],\n weekNumberTemplateRef: [{ type: Input, args: ['weekNumberTemplate',] }],\n headerTitleTemplate: [{ type: ContentChild, args: [HeaderTitleTemplateDirective, { static: true },] }],\n headerTitleTemplateRef: [{ type: Input, args: ['headerTitleTemplate',] }],\n viewList: [{ type: ViewChild, args: [HorizontalViewListComponent,] }],\n widgetId: [{ type: HostBinding, args: ['attr.id',] }],\n widgetRole: [{ type: HostBinding, args: ['attr.role',] }],\n calendarTabIndex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n ariaDisabled: [{ type: HostBinding, args: ['attr.aria-disabled',] }, { type: HostBinding, args: ['class.k-state-disabled',] }],\n ariaActivedescendant: [{ type: HostBinding, args: ['attr.aria-activedescendant',] }],\n handleBlur: [{ type: HostListener, args: [\"blur\",] }],\n handleFocus: [{ type: HostListener, args: [\"focus\",] }],\n handleMouseEnter: [{ type: HostListener, args: [\"mouseenter\",] }],\n handleMouseLeave: [{ type: HostListener, args: [\"mouseleave\",] }],\n handleMousedown: [{ type: HostListener, args: [\"mousedown\", ['$event'],] }],\n handleClick: [{ type: HostListener, args: [\"click\",] }],\n keydown: [{ type: HostListener, args: [\"keydown\", [\"$event\"],] }],\n enter: [{ type: HostListener, args: [\"keydown.enter\",] }]\n};\n\n/**\n * A directive which renders the content of the DateRange Popup. To define the cell template, nest an\n * `` tag with the `kendoRangePopupTemplate` directive inside the component tag.\n */\nclass DateRangePopupTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nDateRangePopupTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDateRangePopupTemplate]'\n },] },\n];\n/** @nocollapse */\nDateRangePopupTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\nconst isActive = (cmp) => (cmp && cmp.isActive) || false;\nconst hasActiveContent = (popup) => popup && popup.hasActiveContent();\n/**\n * A service that handles the communication between the components that are placed inside the DateRangeComponent.\n * For example, the start and end `DateInput` and `DateRangePopup` components.\n */\nclass DateRangeService {\n constructor() {\n /**\n * An Observable instance that notifies when the `activeRangeEnd` state is changed.\n */\n this.activeRangeEnd$ = new BehaviorSubject(null);\n /**\n * An Observable instance that notifies when the `focusedDate` is changed.\n */\n this.focusedDate$ = new BehaviorSubject(null);\n /**\n * An Observable instance that notifies when the end `DateInput` component is changed.\n * For example, when a new end `DateInput` is attached or when the old one is detached.\n */\n this.endInput$ = new BehaviorSubject(null);\n /**\n * An Observable instance that notifies when the start `DateInput` component is changed.\n * For example, when a new start `DateInput` is attached or the old one is detached.\n */\n this.startInput$ = new BehaviorSubject(null);\n /**\n * An Observable instance that notifies when the `DateRangePopup` component is changed.\n */\n this.dateRangePopup$ = new BehaviorSubject(null);\n /**\n * An Observable instance that notifies when the state of the selection range is changed.\n */\n this.range$ = new BehaviorSubject(EMPTY_SELECTIONRANGE);\n }\n /**\n * Gets the current `activeRangeEnd` value.\n */\n get activeRangeEnd() {\n return this.activeRangeEnd$.value;\n }\n /**\n * Gets the current `focusedDate` value.\n */\n get focusedDate() {\n return this.focusedDate$.value;\n }\n /**\n * Gets the `min` range value.\n * The `min` value is extracted from the `start` DateInput value or the `min` value of the Calendar.\n */\n get min() {\n return (this.startInput$.value || {}).min || null;\n }\n /**\n * Gets the `max` range value.\n * The `max` value is extracted from the `end` DateInput value or the `max` value of the Calendar.\n */\n get max() {\n return (this.endInput$.value || {}).max || null;\n }\n /**\n * Gets the current `selectionRange` value.\n */\n get selectionRange() {\n return this.range$.value;\n }\n /**\n * Activates the registered `DateRangePopup` component.\n * The method opens the popup and focuses the calendar.\n */\n activatePopup() {\n const dateRangePopup = this.dateRangePopup$.value;\n if (!dateRangePopup) {\n return;\n }\n dateRangePopup.activate();\n }\n /**\n * Deactivates the registered `DateRangePopup` component.\n * The method closes the popup.\n */\n deactivatePopup() {\n const dateRangePopup = this.dateRangePopup$.value;\n if (!(dateRangePopup && dateRangePopup.show)) {\n return;\n }\n dateRangePopup.show = false;\n }\n /**\n * @hidden\n *\n * Deactivates the registered `DateRangePopup` component and fires the `cancel` event.\n * The method closes the popup.\n */\n cancelPopup() {\n const dateRangePopup = this.dateRangePopup$.value;\n if (!(dateRangePopup && dateRangePopup.show)) {\n return;\n }\n dateRangePopup.cancelPopup();\n }\n /**\n * Completes all observables to mitigate possible memory leaks.\n * Calls the method when a component that uses it is destroyed.\n */\n destroy() {\n this.activeRangeEnd$.complete();\n this.dateRangePopup$.complete();\n this.focusedDate$.complete();\n this.endInput$.complete();\n this.startInput$.complete();\n this.range$.complete();\n }\n /**\n * Returns `true` when an active component that is placed inside the `DateRangeComponent` is detected.\n * For example, the opened popup or the focused DateInput.\n *\n * @returns `true` if an active component is present.\n */\n hasActiveComponent() {\n const popup = this.dateRangePopup$.value;\n const isPopup = isActive(popup);\n const isStart = isActive(this.startInput$.value);\n const isEnd = isActive(this.endInput$.value);\n return isPopup || isStart || isEnd || hasActiveContent(popup) || false;\n }\n /**\n * Registers a new start `DateInput` component. Notifies all `startInput$` listeners.\n */\n registerStartInput(startInput) {\n this.startInput$.next(startInput);\n }\n /**\n * Registers a new end `DateInput` component. Notifies all `endInput$` listeners.\n */\n registerEndInput(endInput) {\n this.endInput$.next(endInput);\n }\n /**\n * Registers a new `DateRangePopup` component. Notifies all `dateRangePopup$` listeners.\n */\n registerPopup(dateRangePopup) {\n this.dateRangePopup$.next(dateRangePopup);\n }\n /**\n * Updates the `activeRangeEnd` value. Notifies all `activeRangeEnd$` listeners.\n */\n setActiveRangeEnd(activeRange) {\n if (!activeRange || this.activeRangeEnd === activeRange) {\n return;\n }\n this.activeRangeEnd$.next(activeRange);\n }\n /**\n * Updates the focused date. Notifies all `focusedDate$` listeners.\n */\n setFocusedDate(value) {\n if (isEqual(this.focusedDate$.value, value)) {\n return;\n }\n this.focusedDate$.next(value);\n }\n /**\n * Updates the selection range. Notifies all `range$` listeners.\n */\n setRange(range = EMPTY_SELECTIONRANGE) {\n this.range$.next(range);\n }\n}\nDateRangeService.decorators = [\n { type: Injectable },\n];\n\n/**\n * Represents the Kendo UI DateRangePopup component for Angular.\n *\n * @example\n * ```ts\n * import { DateInputsModule, DateRangeService } from '@progress/kendo-angular-dateinputs';\n *\n * _@Component({\n * providers: [DateRangeService],\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * }\n * ```\n */\nclass DateRangePopupComponent {\n constructor(popupService, dateRangeService, zone, rtl) {\n this.popupService = popupService;\n this.dateRangeService = dateRangeService;\n this.zone = zone;\n this.rtl = rtl;\n /**\n * Controls the popup animation.\n * By default, the opening and closing animations are enabled.\n * For more information about controlling the popup animations,\n * refer to the article on [animations]({% slug animations_popup %}).\n */\n this.animate = true;\n /**\n * Configures the collision behavior of the popup.\n * For more information, refer to the article on\n * [viewport boundary detection]({% slug viewportboundarydetection_popup %}).\n */\n this.collision = { horizontal: 'fit', vertical: 'flip' };\n /**\n * Fires each time the popup is about to open.\n * This event is preventable. If you cancel the event, the popup will remain closed.\n * For more information, refer to the section on\n * [events]({% slug overview_datepicker %}#toc-events).\n */\n this.open = new EventEmitter();\n /**\n * Fires each time the popup is about to close.\n * This event is preventable. If you cancel the event, the popup will remain open.\n * For more information, refer to the section on\n * [events]({% slug overview_datepicker %}#toc-events).\n */\n this.close = new EventEmitter();\n /**\n * Fires each time the calendar element is blurred.\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the calendar element is focused.\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the popup is closed either on `ESC` keypress or on leaving the viewport.\n */\n this.cancel = new EventEmitter();\n /**\n * @hidden\n */\n this.popupUID = guid();\n this.calendarSubscriptions = new Subscription(() => { });\n this.popupSubscriptions = new Subscription(() => { });\n this.resolvedPromise = Promise.resolve();\n }\n /**\n * The active calendar that is visible in the popup.\n *\n * > When the popup is closed, the property returns `null`.\n */\n get calendar() {\n return this._calendar;\n }\n set calendar(calendar) {\n this._calendar = calendar;\n this.subscribeFocusBlur(calendar);\n }\n /**\n * Gets the active state of the component.\n * When the opened calendar is active, returns `true`.\n */\n get isActive() {\n return this.calendar && this.calendar.isActive;\n }\n /**\n * Gets or sets the visibility state of the component.\n */\n set show(show) {\n const event = new PreventableEvent();\n if (this._show === show) {\n return;\n }\n if (!this._show && show) {\n this.open.emit(event);\n }\n else if (this._show && !show) {\n this.close.emit(event);\n }\n if (event.isDefaultPrevented()) {\n return;\n }\n this._toggle(show);\n }\n get show() {\n return this._show;\n }\n ngOnInit() {\n this.dateRangeService.registerPopup(this);\n }\n ngAfterViewInit() {\n this.calendarSubscriptions.add(this.contentCalendar.changes.subscribe((changes) => this.calendar = changes.first));\n this.calendarSubscriptions.add(this.viewCalendar.changes.subscribe((changes) => this.calendar = changes.first));\n if (isWindowAvailable()) {\n this.zone.runOutsideAngular(() => this.windowBlurSubscription = fromEvent(window, 'blur').subscribe(this.handleWindowBlur.bind(this)));\n }\n }\n ngOnDestroy() {\n this.popupSubscriptions.unsubscribe();\n this.calendarSubscriptions.unsubscribe();\n if (this.activateSubscription) {\n this.activateSubscription.unsubscribe();\n }\n if (this.blurSubscription) {\n this.blurSubscription.unsubscribe();\n this.focusSubscription.unsubscribe();\n }\n if (this.windowBlurSubscription) {\n this.windowBlurSubscription.unsubscribe();\n }\n }\n /**\n * Opens the popup component and focuses the calendar.\n */\n activate() {\n if (this.show === true) {\n return;\n }\n if (this.activateSubscription) {\n this.activateSubscription.unsubscribe();\n }\n this.show = true;\n this.zone.runOutsideAngular(() => {\n this.activateSubscription = merge(this.contentCalendar.changes, this.viewCalendar.changes)\n .pipe(filter(changes => changes && changes.first), map(changes => changes.first))\n .subscribe((calendar) => setTimeout(() => calendar.focus()));\n });\n }\n /**\n * Focuses the calendar (if available).\n */\n focus() {\n if (this.calendar) {\n this.calendar.focus();\n }\n }\n /**\n * Checks if a focused element ids placed inside the popup.\n *\n * @return boolean;\n */\n hasActiveContent() {\n if (!isDocumentAvailable() || !this.popupRef) {\n return false;\n }\n return this.popupRef.popupElement.contains(document.activeElement);\n }\n /**\n * Toggles the visibility of the popup.\n * If you use the `toggle` method to show or hide the popup,\n * the `open` and `close` events do not fire.\n *\n * @param show The state of the popup.\n */\n toggle(show) {\n this.resolvedPromise.then(() => {\n this._toggle((show === undefined) ? !this.show : show);\n });\n }\n /**\n * @hidden\n *\n * Closes the popup and triggers the `cancel` event.\n */\n cancelPopup() {\n this.show = false;\n this.cancel.emit();\n }\n handleWindowBlur() {\n if (!this.show) {\n return;\n }\n if (hasObservers(this.close)) {\n this.zone.run(() => this.show = false);\n }\n else {\n this.show = false;\n }\n }\n handleMouseLeave() {\n this.dateRangeService.setRange(this.dateRangeService.selectionRange);\n }\n handleKeydown(event) {\n const { altKey, keyCode } = event;\n if (keyCode === Keys.Escape || (altKey && keyCode === Keys.ArrowUp)) {\n this.zone.run(() => this.cancelPopup());\n }\n }\n subscribeFocusBlur(calendar) {\n if (this.blurSubscription) {\n this.blurSubscription.unsubscribe();\n this.focusSubscription.unsubscribe();\n }\n if (!calendar) {\n return;\n }\n const nativeElement = calendar.element.nativeElement;\n this.blurSubscription = fromEvent(nativeElement, 'blur').subscribe(() => this.onBlur.emit());\n this.focusSubscription = fromEvent(nativeElement, 'focus').subscribe(() => this.onFocus.emit());\n }\n addPopupSubscriptions(...subscriptions) {\n subscriptions.map(s => this.popupSubscriptions.add(s));\n }\n get _appendTo() {\n const appendTo = this.appendTo;\n if (!appendTo || appendTo === 'root') {\n return undefined;\n }\n return appendTo === 'component' ? this.container : appendTo;\n }\n _toggle(show) {\n this._show = show;\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n this.popupSubscriptions.unsubscribe();\n this.popupSubscriptions = new Subscription(() => { });\n }\n if (this._show) {\n const direction = this.rtl ? 'right' : 'left';\n this.popupRef = this.popupService.open({\n anchor: this.anchor,\n anchorAlign: this.anchorAlign || { vertical: 'bottom', horizontal: direction },\n animate: this.animate,\n appendTo: this._appendTo,\n collision: this.collision,\n content: (this.contentTemplate || {}).templateRef || this.defaultTemplate,\n margin: this.margin,\n popupAlign: this.popupAlign || { vertical: 'top', horizontal: direction },\n positionMode: 'absolute'\n });\n const { popupElement, popupAnchorViewportLeave } = this.popupRef;\n popupElement.setAttribute('id', this.popupUID);\n this.addPopupSubscriptions(this.zone.runOutsideAngular(() => fromEvent(popupElement, 'keydown').subscribe(this.handleKeydown.bind(this))), fromEvent(popupElement, 'mouseleave').subscribe(this.handleMouseLeave.bind(this)), popupAnchorViewportLeave.subscribe(() => this.cancelPopup()));\n }\n }\n}\nDateRangePopupComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendo-daterange-popup',\n selector: 'kendo-daterange-popup',\n template: `\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nDateRangePopupComponent.ctorParameters = () => [\n { type: PopupService },\n { type: DateRangeService },\n { type: NgZone },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [RTL,] }] }\n];\nDateRangePopupComponent.propDecorators = {\n container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef },] }],\n defaultTemplate: [{ type: ViewChild, args: ['defaultTemplate',] }],\n contentTemplate: [{ type: ContentChild, args: [DateRangePopupTemplateDirective,] }],\n viewCalendar: [{ type: ViewChildren, args: [MultiViewCalendarComponent,] }],\n contentCalendar: [{ type: ContentChildren, args: [MultiViewCalendarComponent,] }],\n animate: [{ type: Input }],\n anchor: [{ type: Input }],\n anchorAlign: [{ type: Input }],\n appendTo: [{ type: Input }],\n collision: [{ type: Input }],\n popupAlign: [{ type: Input }],\n margin: [{ type: Input }],\n open: [{ type: Output }],\n close: [{ type: Output }],\n onBlur: [{ type: Output, args: ['blur',] }],\n onFocus: [{ type: Output, args: ['focus',] }],\n cancel: [{ type: Output }]\n};\n\n/**\n * Represents the Kendo UI DateRange component for Angular.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * `\n * })\n * class AppComponent {\n * public dateRange: any = { start: null, end: null };\n * }\n * ```\n */\nclass DateRangeComponent {\n constructor() {\n /**\n * @hidden\n */\n this.showDefault = false;\n }\n get hasContentPopup() {\n return this.contentPopup.length > 0;\n }\n ngAfterContentInit() {\n this.showDefault = !this.hasContentPopup;\n this.subscription = this.contentPopup.changes.subscribe(() => {\n this.showDefault = !this.hasContentPopup;\n });\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\nDateRangeComponent.decorators = [\n { type: Component, args: [{\n providers: [DateRangeService],\n selector: 'kendo-daterange',\n template: `\n \n \n `\n },] },\n];\nDateRangeComponent.propDecorators = {\n contentPopup: [{ type: ContentChildren, args: [DateRangePopupComponent,] }]\n};\n\n/**\n * @hidden\n */\nclass DateRangeInput {\n constructor(activeRangeEnd, dateRangeService, input, element, renderer, zone) {\n this.activeRangeEnd = activeRangeEnd;\n this.dateRangeService = dateRangeService;\n this.input = input;\n this.element = element;\n this.renderer = renderer;\n this.zone = zone;\n this.navigateCalendarOnFocus = false;\n this.popupSubscriptions = new Subscription(() => { });\n this.subscriptions = new Subscription(() => { });\n }\n get isActiveEnd() {\n return this.dateRangeService.activeRangeEnd === this.activeRangeEnd;\n }\n get popupCalendarActivated() {\n const popup = this.dateRangeService.dateRangePopup$.value;\n return isPresent(popup) && isPresent(popup.calendar);\n }\n init() {\n if (this.input.value) {\n this.dateRangeService.setRange(this.getRange(this.input.value));\n }\n [\n this.input.onBlur.subscribe(() => this.deactivate()),\n this.input.onFocus.pipe(filter(() => !this.popupCalendarActivated)).subscribe(() => this.activate()),\n this.input.valueUpdate.subscribe(value => this.updateRange(value, 'change')),\n this.dateRangeService.activeRangeEnd$.subscribe(() => {\n if (this.navigateCalendarOnFocus) {\n this.focusActiveDate();\n }\n this.toggleActiveClass(this.isActiveEnd);\n }),\n this.dateRangeService.dateRangePopup$.subscribe(popup => this.initPopup(popup)),\n this.dateRangeService.range$.subscribe(range => this.updateInputValue(range)),\n fromEvent(this.element.nativeElement, 'click').subscribe(() => this.activate()),\n fromEvent(this.element.nativeElement, 'keydown').subscribe((event) => this.togglePopup(event || {}))\n ].map(s => this.subscriptions.add(s));\n }\n destroy() {\n this.subscriptions.unsubscribe();\n this.unsubscribePopup();\n }\n initPopup(popup) {\n if (!popup) {\n this.unsubscribePopup();\n return;\n }\n if (!popup.anchor) {\n popup.anchor = this.element.nativeElement;\n }\n [\n popup.cancel.subscribe(() => this.isActiveEnd && this.input.focus()),\n popup.onFocus.subscribe(() => this.toggleActiveClass(this.isActiveEnd)),\n popup.onBlur.subscribe(() => this.deactivate())\n ].map(s => this.popupSubscriptions.add(s));\n }\n unsubscribePopup() {\n this.popupSubscriptions.unsubscribe();\n this.popupSubscriptions = new Subscription(() => { });\n }\n activate() {\n this.dateRangeService.setActiveRangeEnd(this.activeRangeEnd);\n this.dateRangeService.activatePopup();\n }\n deactivate() {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.updateRange(this.input.value, 'blur');\n if (this.dateRangeService.hasActiveComponent()) {\n return;\n }\n this.toggleActiveClass(false);\n this.zone.run(() => this.dateRangeService.deactivatePopup());\n });\n });\n }\n updateRange(value, correctOn) {\n const range = this.getRange(value, correctOn);\n if (range) {\n this.focusActiveDate();\n this.dateRangeService.setRange(range);\n }\n }\n togglePopup({ altKey, keyCode }) {\n if (keyCode === Keys.Escape) {\n this.dateRangeService.cancelPopup();\n }\n else if (altKey && keyCode === Keys.ArrowDown) {\n this.dateRangeService.activatePopup();\n }\n }\n focusActiveDate() {\n if (this.input.value && this.isActiveEnd) {\n this.dateRangeService.setFocusedDate(cloneDate(this.input.value));\n }\n }\n toggleActiveClass(show) {\n const action = show ? 'addClass' : 'removeClass';\n const nativeElement = this.element.nativeElement;\n if (nativeElement && nativeElement.querySelector) {\n this.renderer[action](nativeElement.querySelector('.k-dateinput-wrap'), 'k-state-focused');\n }\n }\n}\n\n/**\n * A directive which manages the end range selection.\n *\n * > You can use the DateRangeEndInputDirective only with a DateInput component.\n */\nclass DateRangeEndInputDirective extends DateRangeInput {\n constructor(rangeService, dateInput, element, renderer, zone) {\n super('end', rangeService, dateInput, element, renderer, zone);\n this.rangeService = rangeService;\n this.dateInput = dateInput;\n /**\n * Specifies the navigation behavior of the calendar when the active end is changed on input focus. When enabled,\n * the calendar navigates to the value of the focused input. Otherwise, the calendar displays the last picked date.\n *\n * By default, the automatic navigation behavior on input focus is disabled.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n *
Toggle input focus to see the calendar navigating between range ends.
\n * \n * \n * \n * \n * `\n * })\n * class AppComponent {\n * public start: Date = new Date(2018, 3, 10);\n * public end: Date = new Date(2018, 10, 20);\n * }\n * ```\n */\n this.navigateCalendarOnFocus = false;\n }\n ngOnInit() {\n this.rangeService.registerEndInput(this.dateInput);\n super.init();\n }\n ngOnDestroy() {\n super.destroy();\n }\n getRange(value, correctOn) {\n const { min, max } = this.dateInput;\n if (!isInRange(value, min, max)) {\n return null;\n }\n const { start } = this.rangeService.selectionRange || EMPTY_SELECTIONRANGE;\n return this.autoCorrectOn === correctOn && value < start ? clampRange(value) : { start, end: cloneDate(value) };\n }\n updateInputValue(range$$1) {\n const { end } = range$$1 || EMPTY_SELECTIONRANGE;\n const { min, max } = this.dateInput;\n if (isEqual(this.dateInput.value, end) || !isInRange(end, min, max)) {\n return;\n }\n this.dateInput.writeValue(cloneDate(end));\n this.dateInput.notify();\n }\n}\nDateRangeEndInputDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDateRangeEndInput]'\n },] },\n];\n/** @nocollapse */\nDateRangeEndInputDirective.ctorParameters = () => [\n { type: DateRangeService },\n { type: DateInputComponent },\n { type: ElementRef },\n { type: Renderer2 },\n { type: NgZone }\n];\nDateRangeEndInputDirective.propDecorators = {\n autoCorrectOn: [{ type: Input }],\n navigateCalendarOnFocus: [{ type: Input }]\n};\n\n/**\n * A directive which manages the start selection range.\n *\n * > You can use the DateRangeStartInputDirective only with a DateInput component.\n */\nclass DateRangeStartInputDirective extends DateRangeInput {\n constructor(rangeService, dateInput, element, renderer, zone) {\n super('start', rangeService, dateInput, element, renderer, zone);\n this.rangeService = rangeService;\n this.dateInput = dateInput;\n /**\n * Specifies the navigation behavior of the calendar when the active end is changed on input focus.\n * When enabled, the calendar navigates to the value of the focused input. Otherwise, the calendar\n * displays the last picked date.\n *\n * By default, the automatic navigation behavior on input focus is disabled.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n *
Toggle input focus to see the calendar navigating between range ends.
\n * \n * \n * \n * \n * `\n * })\n * class AppComponent {\n * public start: Date = new Date(2018, 3, 10);\n * public end: Date = new Date(2018, 10, 20);\n * }\n * ```\n */\n this.navigateCalendarOnFocus = false;\n }\n ngOnInit() {\n this.rangeService.registerStartInput(this.dateInput);\n super.init();\n }\n ngOnDestroy() {\n super.destroy();\n }\n getRange(value, correctOn) {\n const { min, max } = this.dateInput;\n if (!isInRange(value, min, max)) {\n return null;\n }\n const { end } = this.rangeService.selectionRange || EMPTY_SELECTIONRANGE;\n const shouldClamp = this.autoCorrectOn === correctOn && end && value > end;\n return shouldClamp ? clampRange(value) : { start: cloneDate(value), end };\n }\n updateInputValue(range$$1) {\n const { start } = range$$1 || EMPTY_SELECTIONRANGE;\n const { min, max } = this.dateInput;\n if (isEqual(this.dateInput.value, start) || !isInRange(start, min, max)) {\n return;\n }\n this.dateInput.writeValue(cloneDate(start));\n this.dateInput.notify();\n }\n}\nDateRangeStartInputDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDateRangeStartInput]'\n },] },\n];\n/** @nocollapse */\nDateRangeStartInputDirective.ctorParameters = () => [\n { type: DateRangeService },\n { type: DateInputComponent },\n { type: ElementRef },\n { type: Renderer2 },\n { type: NgZone }\n];\nDateRangeStartInputDirective.propDecorators = {\n autoCorrectOn: [{ type: Input }],\n navigateCalendarOnFocus: [{ type: Input }]\n};\n\n/**\n * A directive which manages the MultiViewCalendar range selection.\n */\nclass DateRangeSelectionDirective {\n constructor(calendar, cdr, element, renderer, dateRangeService) {\n this.calendar = calendar;\n this.cdr = cdr;\n this.element = element;\n this.dateRangeService = dateRangeService;\n /**\n * Specifies the auto-correction behavior. If the start date is greater than the end date,\n * the directive fixes the date range to a single date either on input change or on blur\n * ([see example]({% slug autocorrect_daterange %}#toc-configuring-the-calendar-selection-directive)).\n *\n * By default, the auto-correction is triggered on change.\n * To disable this behavior, set the `autoCorrectOn` property to `none`.\n */\n this.autoCorrectOn = 'change';\n /**\n * Fires when the active range end is changed. For more information, refer to\n * the section on [events]({% slug overview_multiviewcalendar %}#toc-events).\n */\n this.activeRangeEndChange = new EventEmitter();\n /**\n * Fires when the selection range is changed. For more information, refer to\n * the section on [events]({% slug overview_multiviewcalendar %}#toc-events).\n */\n this.selectionRangeChange = new EventEmitter();\n this.calendarSubscriptions = new Subscription(() => { });\n this.dateRangeService = this.dateRangeService || new DateRangeService();\n renderer.setAttribute(element.nativeElement, 'aria-multiselectable', 'true');\n }\n /**\n * Gets or sets the selection range of the calendar. When a new range is set,\n * the connected DateRangeService notifies all related parties.\n */\n get selectionRange() {\n return this.calendar ? this.calendar.selectionRange : null;\n }\n set selectionRange(range$$1) {\n if (!this.isEqualCalendarRange(range$$1)) {\n this.setSelectionRange(range$$1);\n }\n if (!isEqualRange(this.dateRangeService.selectionRange, range$$1)) {\n this.dateRangeService.setRange(range$$1);\n }\n this.updateFocusedDate(range$$1);\n }\n /**\n * Gets or sets the active end of the selection range. This option determines which range end will be updated on\n * user interaction. When a new active end is set, the connected DateRangeService notifies all related parties.\n */\n /**\n * Specifies which end of the selection range will be marked as active. The active end gets modified upon user\n * interaction. When a new active end is set, the wired DateRangeService notifies all related components. For\n * example, the start and end DateInput components.\n *\n * > If the selection range is undefined, the value is ignored.\n */\n get activeRangeEnd() {\n return this.calendar.activeRangeEnd;\n }\n set activeRangeEnd(activeRange) {\n if (this.dateRangeService.activeRangeEnd === activeRange) {\n return;\n }\n this.calendar.activeRangeEnd = activeRange;\n this.dateRangeService.setActiveRangeEnd(activeRange);\n }\n get calendarRange() {\n return this.selectionRange || EMPTY_SELECTIONRANGE;\n }\n ngOnInit() {\n const calendar = this.calendar;\n const dateRangeService = this.dateRangeService;\n calendar.min = either(dateRangeService.min, calendar.min);\n calendar.max = either(dateRangeService.max, calendar.max);\n this.addSubscriptions(calendar.cellEnter.subscribe((value) => this.handleHover(value)), calendar.valueChange.subscribe((value) => this.handleChange(value)), dateRangeService.focusedDate$.subscribe(focusedDate => {\n if (!isEqual(calendar.focusedDate, focusedDate)) {\n calendar.focusedDate = focusedDate;\n }\n }), dateRangeService.activeRangeEnd$.subscribe(rangeEnd => {\n if (calendar.activeRangeEnd === rangeEnd) {\n return;\n }\n calendar.activeRangeEnd = rangeEnd;\n this.activeRangeEndChange.emit(rangeEnd);\n this.cdr.markForCheck();\n }), dateRangeService.range$.subscribe(range$$1 => {\n if (!this.isEqualCalendarRange(range$$1)) {\n this.acceptAndEmit(range$$1);\n }\n this.updateFocusedDate(range$$1);\n }), fromEvent(this.element.nativeElement, 'blur').subscribe(() => this.handleBlur()));\n }\n ngOnDestroy() {\n this.calendarSubscriptions.unsubscribe();\n }\n addSubscriptions(...subscriptions) {\n subscriptions.map(s => this.calendarSubscriptions.add(s));\n }\n isEqualCalendarRange(range$$1) {\n return isEqualRange(this.calendar.selectionRange, range$$1);\n }\n handleBlur() {\n const { start, end } = this.calendarRange;\n const autoCorrect = this.autoCorrectOn === 'blur' && start !== null && end !== null && end < start;\n if (autoCorrect) {\n this.dateRangeService.setRange(clampRange(start));\n }\n }\n handleChange(value) {\n const service = this.dateRangeService;\n const autoCorrect = this.autoCorrectOn === 'change' && this.shouldAutoCorrect(value);\n const activeEnd = this.calendar.activeRangeEnd !== 'end' ? 'end' : (autoCorrect ? 'end' : 'start');\n const range$$1 = autoCorrect ? clampRange(value) : this.updateRange(value);\n if (!isEqualRange(service.selectionRange, range$$1)) {\n this.acceptAndEmit(range$$1);\n service.setActiveRangeEnd(activeEnd);\n service.setRange(range$$1);\n }\n }\n handleHover(value) {\n this.dateRangeService.setFocusedDate(cloneDate(value));\n if (this.hasCompleteRange()) {\n return;\n }\n const { start, end } = this.calendarRange;\n const activeRangeEnd = this.calendar.activeRangeEnd;\n const updateRange = (start && activeRangeEnd === 'end') || (end && activeRangeEnd === 'start');\n if (updateRange) {\n this.setSelectionRange(this.updateRange(value));\n }\n }\n hasCompleteRange() {\n const { start, end } = this.dateRangeService.selectionRange || EMPTY_SELECTIONRANGE;\n return Boolean(start) && Boolean(end);\n }\n shouldAutoCorrect(value) {\n const { end, start } = this.calendarRange;\n if (this.calendar.activeRangeEnd !== 'end') {\n return end !== null && value > end;\n }\n else {\n return start !== null && value < start;\n }\n }\n updateFocusedDate(range$$1) {\n if (!range$$1 || this.dateRangeService.focusedDate) {\n return;\n }\n this.dateRangeService.setFocusedDate(range$$1.start || range$$1.end);\n }\n updateRange(value) {\n const { end, start } = this.calendarRange;\n return this.calendar.activeRangeEnd !== 'end' ? ({ start: value, end }) : ({ start, end: value });\n }\n setSelectionRange(range$$1) {\n this.calendar.selectionRange = range$$1;\n this.calendar.writeValue(null);\n }\n acceptAndEmit(range$$1) {\n this.setSelectionRange(range$$1);\n this.selectionRangeChange.emit(range$$1);\n }\n}\nDateRangeSelectionDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDateRangeSelection]'\n },] },\n];\n/** @nocollapse */\nDateRangeSelectionDirective.ctorParameters = () => [\n { type: MultiViewCalendarComponent },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: Renderer2 },\n { type: DateRangeService, decorators: [{ type: Optional }] }\n];\nDateRangeSelectionDirective.propDecorators = {\n autoCorrectOn: [{ type: Input }],\n selectionRange: [{ type: Input }],\n activeRangeEnd: [{ type: Input }],\n activeRangeEndChange: [{ type: Output }],\n selectionRangeChange: [{ type: Output }]\n};\n\n/* tslint:disable:directive-class-suffix directive-selector */\n/**\n * @hidden\n */\nclass KForOfContext {\n constructor($implicit, kForOf, index, count) {\n this.$implicit = $implicit;\n this.kForOf = kForOf;\n this.index = index;\n this.count = count;\n }\n get first() { return this.index === 0; }\n get last() { return this.index === this.count - 1; }\n get even() { return this.index % 2 === 0; }\n get odd() { return !this.even; }\n}\n/**\n * @hidden\n */\nclass KForOf {\n constructor(_viewContainer, _template, _differs) {\n this._viewContainer = _viewContainer;\n this._template = _template;\n this._differs = _differs;\n this._differ = null;\n }\n set kForTemplate(value) {\n if (value) {\n this._template = value;\n }\n }\n ngOnChanges(changes) {\n if ('kForOf' in changes) {\n const value = changes.kForOf.currentValue;\n if (this._differ || !value) {\n return;\n }\n try {\n this._differ = this._differs.find(value).create(this.kForTrackBy);\n }\n catch (e) {\n throw new Error(`Cannot find a differ supporting object '${value}' of type '${getTypeNameForDebugging(value)}'.`);\n }\n }\n }\n ngDoCheck() {\n if (this._differ) {\n const changes = this._differ.diff(this.kForOf);\n if (changes) {\n this._applyChanges(changes);\n }\n }\n }\n _applyChanges(changes) {\n if (!isDocumentAvailable()) {\n return;\n }\n const viewContainerLength = this._viewContainer.length;\n const dataLength = this.kForOf.length;\n const tuples = {};\n changes.forEachOperation((record, _, currentIndex) => {\n if (currentIndex !== null) {\n tuples[currentIndex] = record.item;\n }\n });\n for (let i = viewContainerLength; i < dataLength; i++) {\n this._viewContainer.createEmbeddedView(this._template, new KForOfContext(null, this.kForOf, -1, -1), i);\n }\n for (let i = this._viewContainer.length; i > dataLength; i--) {\n this._viewContainer.remove(i - 1);\n }\n for (let i = 0; i < this._viewContainer.length; i++) {\n const view = this._viewContainer.get(i);\n view.context.index = i;\n view.context.count = length;\n view.context.$implicit = tuples[i] || null;\n }\n }\n}\nKForOf.decorators = [\n { type: Directive, args: [{ selector: '[kFor][kForOf]' },] },\n];\n/** @nocollapse */\nKForOf.ctorParameters = () => [\n { type: ViewContainerRef },\n { type: TemplateRef },\n { type: IterableDiffers }\n];\nKForOf.propDecorators = {\n kForOf: [{ type: Input }],\n kForTrackBy: [{ type: Input }],\n kForTemplate: [{ type: Input }]\n};\n/**\n * @hidden\n */\nfunction getTypeNameForDebugging(type) {\n return type.name || typeof type;\n}\n\n/**\n * @hidden\n */\nclass HeaderComponent {\n constructor(bus, cdr, localization, intl, disabledDatesService) {\n this.bus = bus;\n this.cdr = cdr;\n this.localization = localization;\n this.intl = intl;\n this.disabledDatesService = disabledDatesService;\n this.navigate = true;\n this.todayAvailable = true;\n this.min = new Date(MIN_DATE);\n this.max = new Date(MAX_DATE);\n this.rangeLength = 1;\n this.today = new EventEmitter();\n this.subscriptions = new Subscription();\n }\n get getComponentClass() {\n return true;\n }\n ngOnInit() {\n this.subscriptions\n .add(this.intl.changes.subscribe(this.intlChange.bind(this)))\n .add(this.localization.changes.subscribe(this.l10nChange.bind(this)))\n .add(this.disabledDatesService.changes.subscribe(this.setTodayAvailability.bind(this)));\n }\n ngOnChanges(_) {\n const service = this.bus.service(this.activeView);\n if (!service) {\n return;\n }\n this.activeViewValue = CalendarViewEnum[this.activeView];\n this.todayMessage = this.localization.get('today');\n this.setTodayAvailability();\n this.navigate = this.bus.canMoveUp(this.activeView);\n this.title = this.getTitle();\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n handleTodayClick() {\n if (!this.todayAvailable) {\n return;\n }\n this.bus.moveToBottom(this.activeView);\n this.today.emit(dateInRange(getToday(), this.min, this.max));\n }\n handleNavigation() {\n if (!this.navigate) {\n return;\n }\n this.bus.moveUp(this.activeView);\n }\n intlChange() {\n if (this.currentDate && this.bus.service(this.activeView)) {\n this.title = this.getTitle();\n this.cdr.markForCheck();\n }\n }\n l10nChange() {\n this.todayMessage = this.localization.get('today');\n this.cdr.markForCheck();\n }\n getTitle() {\n if (!this.currentDate) {\n return '';\n }\n const service = this.bus.service(this.activeView);\n const take = this.rangeLength - 1;\n const title = service.title(this.currentDate);\n const nextDate = service.addToDate(this.currentDate, take);\n if (take < 1 || !service.isInRange(nextDate, this.min, this.max)) {\n return title;\n }\n return `${title} - ${service.title(nextDate)}`;\n }\n setTodayAvailability() {\n const today = getToday();\n const isTodayInRange = isInRange(today, getDate(this.min), getDate(this.max));\n const isDisabled = this.disabledDatesService.isDateDisabled(today);\n this.todayAvailable = isTodayInRange && !isDisabled;\n this.cdr.markForCheck();\n }\n}\nHeaderComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-calendar-header',\n template: `\n \n {{title}}\n
\n \n \n {{todayMessage}}\n \n `\n },] },\n];\n/** @nocollapse */\nHeaderComponent.ctorParameters = () => [\n { type: BusViewService },\n { type: ChangeDetectorRef },\n { type: LocalizationService },\n { type: IntlService },\n { type: DisabledDatesService }\n];\nHeaderComponent.propDecorators = {\n activeView: [{ type: Input }],\n currentDate: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n rangeLength: [{ type: Input }],\n templateRef: [{ type: Input }],\n today: [{ type: Output }],\n getComponentClass: [{ type: HostBinding, args: [\"class.k-calendar-header\",] }]\n};\n\n/**\n * @hidden\n */\nclass WeekNamesService {\n constructor(intl) {\n this.intl = intl;\n }\n getWeekNames(includeWeekNumber = false) {\n const weekNames = shiftWeekNames(this.intl.dateFormatNames({ nameType: 'short', type: 'days' }), this.intl.firstDay());\n return includeWeekNumber ? [''].concat(weekNames) : weekNames;\n }\n}\nWeekNamesService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nWeekNamesService.ctorParameters = () => [\n { type: IntlService }\n];\n\n/**\n * @hidden\n */\nclass ViewComponent {\n constructor(bus, intl, cdr, weekService, element, zone, renderer, disabledDatesService) {\n this.bus = bus;\n this.intl = intl;\n this.cdr = cdr;\n this.weekService = weekService;\n this.element = element;\n this.zone = zone;\n this.renderer = renderer;\n this.disabledDatesService = disabledDatesService;\n this.direction = 'vertical';\n this.isActive = true;\n this.change = new EventEmitter();\n this.cellEnter = new EventEmitter();\n this.cellLeave = new EventEmitter();\n this.weekNames = [];\n this.colSpan = 0;\n this.subscriptions = new Subscription();\n this.domEvents = [];\n this.subscriptions\n .add(this.intl.changes.subscribe(this.intlChange.bind(this)))\n .add(this.disabledDatesService.changes.subscribe(this.disabledDatesChange.bind(this)));\n }\n get weekNumber() {\n return this.showWeekNumbers && this.activeView === CalendarViewEnum.month;\n }\n set weekNumber(showWeekNumbers) {\n this.showWeekNumbers = showWeekNumbers;\n }\n ngOnInit() {\n if (this.element) {\n this.zone.runOutsideAngular(() => {\n this.bindEvents();\n });\n }\n }\n ngOnChanges(changes) {\n this.service = this.bus.service(this.activeView);\n if (!this.service) {\n return;\n }\n const generateWeekNames = this.isHorizontal() && this.weekNames.length === 0;\n if (generateWeekNames && (changes.weekNumber || changes.direction)) {\n this.weekNames = this.weekService.getWeekNames(this.weekNumber);\n }\n this.colSpan = this.service.rowLength(this.weekNumber);\n this.title = this.service.title(this.viewDate);\n this.updateData();\n if (changes.activeView) {\n this.currentCellIndex = null;\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.domEvents.forEach(unsubscribeCallback => unsubscribeCallback());\n }\n isHorizontal() {\n return this.direction === 'horizontal';\n }\n isMonthView() {\n return this.activeView === CalendarViewEnum.month;\n }\n firstDate(rowCtx) {\n const ctx = this.firstWeekDateContext(rowCtx);\n return ctx ? ctx.value : null;\n }\n getWeekNumber(date) {\n if (!this.weekNumber) {\n return null;\n }\n return weekInYear(date, this.intl.firstDay());\n }\n getWeekNumberContext(rowCtx) {\n const ctx = this.firstWeekDateContext(rowCtx);\n if (!this.weekNumber || !ctx) {\n return null;\n }\n const weekNumber = weekInYear(ctx.value, this.intl.firstDay()).toString();\n return {\n formattedValue: weekNumber,\n id: null,\n isFocused: false,\n isSelected: false,\n isWeekend: false,\n title: weekNumber,\n value: cloneDate(ctx.value)\n };\n }\n getStyles(context) {\n const { isRangeEnd, isRangeStart } = context;\n const isEndActive = this.activeRangeEnd === 'end' && isRangeEnd;\n const isStartActive = this.activeRangeEnd === 'start' && isRangeStart;\n return stringifyClassObject({\n 'k-range-end': isRangeEnd,\n 'k-range-mid': context.isRangeMid,\n 'k-range-split-end': context.isRangeSplitEnd,\n 'k-range-split-start': context.isRangeSplitStart,\n 'k-range-start': isRangeStart,\n 'k-state-active': isStartActive || isEndActive,\n 'k-state-focused': this.isActive && context.isFocused,\n 'k-state-selected': context.isSelected || isRangeStart || isRangeEnd,\n 'k-today': context.isToday,\n 'k-weekend': context.isWeekend,\n 'k-state-disabled': context.isDisabled\n });\n }\n tableCellIndex(rowIndex, cellIndex) {\n return `${rowIndex}:${cellIndex}`;\n }\n firstWeekDateContext(rowCtx) {\n if (!this.weekNumber) {\n return null;\n }\n let idx = 0;\n let ctx = rowCtx[idx];\n while (!ctx && idx < rowCtx.length) {\n ctx = rowCtx[++idx];\n }\n return ctx;\n }\n updateData() {\n const time = this.selectedDate || getToday();\n const viewDate = setTime(this.viewDate, time);\n this.data = this.service.data({\n cellUID: this.cellUID,\n focusedDate: this.focusedDate,\n isActiveView: !this.bus.canMoveDown(this.activeView),\n max: this.max,\n min: this.min,\n selectedDate: this.selectedDate,\n selectionRange: this.selectionRange,\n viewDate: viewDate,\n isDateDisabled: this.disabledDatesService.isDateDisabled\n });\n }\n intlChange() {\n this.updateData();\n if (this.isHorizontal()) {\n this.weekNames = this.weekService.getWeekNames(this.weekNumber);\n }\n this.cdr.markForCheck();\n }\n disabledDatesChange() {\n this.updateData();\n this.cdr.markForCheck();\n }\n bindEvents() {\n const element = this.element.nativeElement;\n this.domEvents.push(this.renderer.listen(element, 'mouseover', this.cellMouseoverHandler.bind(this)), this.renderer.listen(element, 'mouseleave', this.mouseLeaveHandler.bind(this)), this.renderer.listen(element, 'click', this.clickHandler.bind(this)));\n }\n clickHandler(args) {\n const cell = this.closestCell(args);\n if (cell) {\n const index = cell.getAttribute('data-cell-index');\n const cellContext = this.cellByIndex(index);\n if (!cellContext.isDisabled) {\n this.change.emit(cellContext.value);\n }\n }\n }\n mouseLeaveHandler() {\n if (this.currentCellIndex) {\n this.emitCellLeave();\n }\n }\n cellMouseoverHandler(args) {\n const cell = this.closestCell(args);\n if (cell) {\n const index = cell.getAttribute('data-cell-index');\n if (this.currentCellIndex && this.currentCellIndex !== index) {\n this.emitCellLeave();\n }\n const value = this.cellByIndex(index).value;\n this.cellEnter.emit(value);\n this.currentCellIndex = index;\n }\n else if (this.currentCellIndex) {\n this.emitCellLeave();\n }\n }\n closestCell(eventArgs) {\n return closestInScope(eventArgs.target, node => node.hasAttribute('data-cell-index'), this.element.nativeElement);\n }\n emitCellLeave() {\n const item = this.cellByIndex(this.currentCellIndex);\n if (item) {\n this.cellLeave.emit(item.value);\n }\n this.currentCellIndex = null;\n }\n cellByIndex(index) {\n const [rowIndex, cellIndex] = index.split(':');\n return this.data[rowIndex][cellIndex];\n }\n}\nViewComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoCalendarView]',\n template: `\n  \n {{title}}\n \n {{name}}\n \n \n \n \n \n {{getWeekNumber(firstDate(row))}}\n \n \n \n
\n \n \n \n {{cell.formattedValue}}\n
\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nViewComponent.ctorParameters = () => [\n { type: BusViewService },\n { type: IntlService },\n { type: ChangeDetectorRef },\n { type: WeekNamesService },\n { type: ElementRef },\n { type: NgZone },\n { type: Renderer2 },\n { type: DisabledDatesService }\n];\nViewComponent.propDecorators = {\n direction: [{ type: Input }],\n isActive: [{ type: Input }],\n activeView: [{ type: Input }],\n cellUID: [{ type: Input }],\n focusedDate: [{ type: Input }],\n selectedDate: [{ type: Input }],\n viewDate: [{ type: Input }],\n activeRangeEnd: [{ type: Input }],\n selectionRange: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n weekNumber: [{ type: Input }],\n viewIndex: [{ type: Input }],\n templateRef: [{ type: Input }],\n weekNumberTemplateRef: [{ type: Input }],\n change: [{ type: Output }],\n cellEnter: [{ type: Output }],\n cellLeave: [{ type: Output }]\n};\n\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `HeaderComponent`—The component that renders the UI for vertical navigation.\n * - `ViewComponent`—The component that renders the active Calendar view.\n */\nclass CalendarCommonModule {\n}\nCalendarCommonModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n KForOf,\n HeaderComponent,\n ViewComponent\n ],\n exports: [\n KForOf,\n HeaderComponent,\n ViewComponent\n ],\n imports: [CommonModule, EventsModule]\n },] },\n];\n\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `CellTemplateDirective`—The month cell template directive.\n * - `MonthCellTemplateDirective`—The month cell template directive.\n * - `YearCellTemplateDirective`—The year cell template directive.\n * - `DecadeCellTemplateDirective`—The decade cell template directive.\n * - `CenturyCellTemplateDirective`—The century cell template directive.\n * - `WeekNumberCellTemplateDirective`—The month week number cell template directive.\n * - `HeaderTitleTemplateDirective`—The header title template directive.\n * - `NavigationItemTemplateDirective`—The navigation item template directive.\n */\nclass TemplatesModule {\n}\nTemplatesModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n CellTemplateDirective,\n MonthCellTemplateDirective,\n YearCellTemplateDirective,\n DecadeCellTemplateDirective,\n CenturyCellTemplateDirective,\n WeekNumberCellTemplateDirective,\n HeaderTitleTemplateDirective,\n NavigationItemTemplateDirective\n ],\n exports: [\n CellTemplateDirective,\n MonthCellTemplateDirective,\n YearCellTemplateDirective,\n DecadeCellTemplateDirective,\n CenturyCellTemplateDirective,\n WeekNumberCellTemplateDirective,\n HeaderTitleTemplateDirective,\n NavigationItemTemplateDirective\n ]\n },] },\n];\n\n/**\n * @hidden\n */\nclass CalendarMessages extends ComponentMessages {\n}\nCalendarMessages.propDecorators = {\n today: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass CalendarLocalizedMessagesDirective extends CalendarMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nCalendarLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: CalendarMessages,\n useExisting: forwardRef(() => CalendarLocalizedMessagesDirective) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoCalendarLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nCalendarLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nclass CalendarCustomMessagesComponent extends CalendarMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nCalendarCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: CalendarMessages,\n useExisting: forwardRef(() => CalendarCustomMessagesComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-calendar-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nCalendarCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\nconst COMPONENT_DIRECTIVES = [\n VirtualizationComponent\n];\n/**\n * @hidden\n *\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Virtualization component.\n */\nclass VirtualizationModule {\n}\nVirtualizationModule.decorators = [\n { type: NgModule, args: [{\n declarations: [COMPONENT_DIRECTIVES],\n exports: [COMPONENT_DIRECTIVES],\n imports: [CommonModule]\n },] },\n];\n\n/**\n * The exported package module.\n *\n * The package exports:\n * - `CellTemplateDirective`—The month cell template directive.\n * - `MonthCellTemplateDirective`—The month cell template directive.\n * - `YearCellTemplateDirective`—The year cell template directive.\n * - `DecadeCellTemplateDirective`—The decade cell template directive.\n * - `CenturyCellTemplateDirective`—The century cell template directive.\n * - `WeekNumberCellTemplateDirective`—The month week number cell template directive.\n * - `HeaderTitleTemplateDirective`—The header title template directive.\n * - `NavigationItemTemplateDirective`—The navigation item template directive.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Calendar module\n * import { CalendarModule } from '@progress/kendo-angular-dateinputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, CalendarModule], // import Calendar module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass CalendarModule {\n}\nCalendarModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n CalendarComponent,\n NavigationComponent,\n CalendarCustomMessagesComponent,\n CalendarLocalizedMessagesDirective,\n ViewListComponent\n ],\n exports: [\n CalendarComponent,\n NavigationComponent,\n CalendarCustomMessagesComponent,\n CalendarLocalizedMessagesDirective,\n ViewListComponent,\n CalendarCommonModule,\n TemplatesModule\n ],\n imports: [CommonModule, CalendarCommonModule, IntlModule, TemplatesModule, VirtualizationModule, EventsModule],\n providers: [\n CalendarDOMService,\n CenturyViewService,\n DecadeViewService,\n MonthViewService,\n YearViewService,\n WeekNamesService\n ]\n },] },\n];\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.propDecorators = {\n today: [{ type: Input }],\n prevButtonTitle: [{ type: Input }],\n nextButtonTitle: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass MultiViewCalendarLocalizedMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nMultiViewCalendarLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => MultiViewCalendarLocalizedMessagesDirective) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoMultiViewCalendarLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nMultiViewCalendarLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nclass MultiViewCalendarCustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nMultiViewCalendarCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => MultiViewCalendarCustomMessagesComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-multiviewcalendar-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nMultiViewCalendarCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * The package exports:\n * - `CellTemplateDirective`—The month cell template directive.\n * - `MonthCellTemplateDirective`—The month cell template directive.\n * - `YearCellTemplateDirective`—The year cell template directive.\n * - `DecadeCellTemplateDirective`—The decade cell template directive.\n * - `CenturyCellTemplateDirective`—The century cell template directive.\n * - `WeekNumberCellTemplateDirective`—The month week number cell template directive.\n * - `HeaderTitleTemplateDirective`—The header title template directive.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the MultiViewCalendar module\n * import { MultiViewCalendarModule } from '@progress/kendo-angular-dateinputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, MultiViewCalendarModule], // import MultiViewCalendar module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n */\nclass MultiViewCalendarModule {\n}\nMultiViewCalendarModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n HorizontalViewListComponent,\n MultiViewCalendarLocalizedMessagesDirective,\n MultiViewCalendarCustomMessagesComponent,\n MultiViewCalendarComponent\n ],\n exports: [\n HorizontalViewListComponent,\n MultiViewCalendarLocalizedMessagesDirective,\n MultiViewCalendarCustomMessagesComponent,\n MultiViewCalendarComponent,\n CalendarCommonModule,\n TemplatesModule\n ],\n imports: [CommonModule, CalendarCommonModule, IntlModule, TemplatesModule, PopupModule],\n providers: [\n NavigationService,\n CenturyViewService,\n DecadeViewService,\n MonthViewService,\n YearViewService,\n WeekNamesService\n ]\n },] },\n];\n\n/**\n * The exported package module.\n *\n * The package exports:\n * - `CalendarModule`—The calendar module.\n * - `MultiViewCalendarModule`—The multi-view calendar module.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Calendars module\n * import { CalendarsModule } from '@progress/kendo-angular-dateinputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, CalendarsModule], // import the Calendars module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass CalendarsModule {\n}\nCalendarsModule.decorators = [\n { type: NgModule, args: [{\n exports: [\n CalendarModule,\n MultiViewCalendarModule\n ],\n imports: [\n CalendarModule,\n MultiViewCalendarModule\n ]\n },] },\n];\n\n/**\n * @hidden\n */\nclass DateInputMessages extends ComponentMessages {\n}\nDateInputMessages.propDecorators = {\n decrement: [{ type: Input }],\n increment: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass DateInputLocalizedMessagesDirective extends DateInputMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nDateInputLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: DateInputMessages,\n useExisting: forwardRef(() => DateInputLocalizedMessagesDirective) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoDateInputLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nDateInputLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nclass DateInputCustomMessagesComponent extends DateInputMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nDateInputCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: DateInputMessages,\n useExisting: forwardRef(() => DateInputCustomMessagesComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-dateinput-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nDateInputCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the DateInput component.\n */\nclass DateInputModule {\n}\nDateInputModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n DateInputComponent,\n DateInputCustomMessagesComponent,\n DateInputLocalizedMessagesDirective\n ],\n exports: [\n DateInputComponent,\n DateInputCustomMessagesComponent,\n DateInputLocalizedMessagesDirective\n ],\n imports: [CommonModule, IntlModule, EventsModule]\n },] },\n];\n\n/**\n * @hidden\n */\nclass DatePickerMessages extends ComponentMessages {\n}\nDatePickerMessages.propDecorators = {\n today: [{ type: Input }],\n toggle: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass DatePickerLocalizedMessagesDirective extends DatePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nDatePickerLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: DatePickerMessages,\n useExisting: forwardRef(() => DatePickerLocalizedMessagesDirective) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoDatePickerLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nDatePickerLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nclass DatePickerCustomMessagesComponent extends DatePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nDatePickerCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: DatePickerMessages,\n useExisting: forwardRef(() => DatePickerCustomMessagesComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-datepicker-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nDatePickerCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\nconst ɵ0$e = touchEnabled;\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the DatePicker component.\n */\nclass DatePickerModule {\n}\nDatePickerModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n DatePickerComponent,\n DatePickerCustomMessagesComponent,\n DatePickerLocalizedMessagesDirective\n ],\n exports: [\n DatePickerComponent,\n DatePickerCustomMessagesComponent,\n DatePickerLocalizedMessagesDirective,\n TemplatesModule\n ],\n imports: [\n CommonModule,\n DateInputModule,\n CalendarModule,\n IntlModule,\n PopupModule,\n TemplatesModule,\n EventsModule\n ],\n providers: [{ provide: TOUCH_ENABLED, useValue: ɵ0$e }]\n },] },\n];\n\nconst COMPONENT_DIRECTIVES$1 = [\n DateRangeComponent,\n DateRangePopupComponent,\n DateRangePopupTemplateDirective,\n DateRangeSelectionDirective,\n DateRangeStartInputDirective,\n DateRangeEndInputDirective\n];\nconst COMPONENT_MODULES = [\n MultiViewCalendarModule,\n DateInputModule,\n PopupModule,\n EventsModule\n];\n/**\n * The exported package module.\n *\n * The package exports:\n * - `DateRangeComponent`—The DateRange component class.\n * - `DateRangePopupComponent`—The DateRangePopup component class.\n * - `DateRangeSelectionDirective`—The MultiviewCalendar date range selection directive.\n * - `DateRangeEndInputDirective`—The end DateInput date range selection directive.\n * - `DateRangeStartInputDirective`—The start DateInput date range selection directive.\n * - `DateRangePopupTemplateDirective`—The DateRangePopup content template directive.\n * - `MultiViewCalendarModule`—The MultiViewCalendar module.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the DateRange module\n * import { DateRangeModule } from '@progress/kendo-angular-dateinputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, DateRangeModule], // import DateRange module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass DateRangeModule {\n}\nDateRangeModule.decorators = [\n { type: NgModule, args: [{\n declarations: [COMPONENT_DIRECTIVES$1],\n exports: [COMPONENT_DIRECTIVES$1],\n imports: [CommonModule, COMPONENT_MODULES]\n },] },\n];\n\nconst div$1 = domContainerFactory('div');\nconst ul$1 = domContainerFactory('ul');\nconst li$1 = domContainerFactory('li');\nconst listItem = () => li$1('02', 'k-item');\nconst list = () => ul$1([listItem()], 'k-reset');\nconst scrollable$1 = () => (div$1([list()], 'k-time-container k-content k-scrollable'));\nconst timeListWrapper = () => {\n if (!isDocumentAvailable()) {\n return null;\n }\n return div$1([div$1([scrollable$1()], 'k-time-list')], 'k-time-list-wrapper', { left: '-10000px', position: 'absolute' });\n};\nconst TIMELIST_WRAPPER = timeListWrapper();\n/**\n * @hidden\n */\nclass TimePickerDOMService {\n ensureHeights() {\n if (this.timeListHeight !== undefined) {\n return;\n }\n this.calculateHeights();\n }\n calculateHeights(container) {\n if (!isDocumentAvailable()) {\n return;\n }\n const listContainer = container && container.querySelector('.k-time-list-container');\n const hostContainer = listContainer || document.body;\n const wrapper = hostContainer.appendChild(TIMELIST_WRAPPER);\n this.timeListHeight = wrapper.querySelector('.k-scrollable').getBoundingClientRect().height;\n this.itemHeight = wrapper.querySelector('li').getBoundingClientRect().height;\n hostContainer.removeChild(wrapper);\n }\n isActive(element) {\n if (!isDocumentAvailable() || !element) {\n return false;\n }\n return (element.nativeElement || element) === document.activeElement;\n }\n}\nTimePickerDOMService.decorators = [\n { type: Injectable },\n];\n\nconst HOURS_IN_DAY = 24;\nconst clampToRange = (rangeValue) => (value) => value % rangeValue;\nconst clamp = clampToRange(HOURS_IN_DAY);\nconst stepper = (start, step) => (idx) => clamp(start + (idx * step));\nconst distanceFromMin = (value, min) => clamp(HOURS_IN_DAY + value - min);\nconst limit = (borderValue) => (barrier, value) => {\n const useBarrier = !value || getDate(barrier).getTime() === getDate(value).getTime();\n return useBarrier ? barrier : setHours(barrier, borderValue);\n};\nconst limitDown = limit(0);\nconst limitUp = limit(HOURS_IN_DAY - 1);\n/**\n * @hidden\n */\nclass HoursService {\n constructor(intl) {\n this.intl = intl;\n this.boundRange = false;\n this.insertUndividedMax = false;\n }\n apply(value, candidate) {\n return setHours(value, candidate.getHours());\n }\n configure(settings) {\n const { boundRange = this.boundRange, insertUndividedMax = this.insertUndividedMax, min = this.min, max = this.max, part, step = this.step } = settings;\n this.boundRange = boundRange;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = (hour) => {\n const date = setHours(MIDNIGHT_DATE, hour);\n return {\n text: this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n }\n data(selectedValue) {\n const [min] = this.range(selectedValue);\n const getHour = stepper(min, this.step);\n const convertToItem = (idx) => (this.toListItem(getHour(idx)));\n const data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n this.addMissing(data, selectedValue);\n return data;\n }\n isRangeChanged(min, max) {\n return !isEqual(this.min, min) || !isEqual(this.max, max);\n }\n limitRange(min, max, value) {\n return this.boundRange ? [limitDown(min, value), limitUp(max, value)] : [min, max];\n }\n total(value) {\n const last$$1 = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n const missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last$$1;\n }\n selectedIndex(value) {\n return Math.ceil(this.divideByStep(value));\n }\n valueInList(value) {\n if (!value) {\n return true;\n }\n const matchMax = this.insertUndividedMax && this.lastHour(value) === value.getHours();\n return matchMax || !this.isMissing(value);\n }\n addLast(data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value)) {\n data.push(this.toListItem(this.lastHour(value)));\n }\n return data;\n }\n addMissing(data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n const missingItem = this.toListItem(value.getHours());\n data.splice(this.selectedIndex(value), 0, missingItem);\n return data;\n }\n countFromMin(value) {\n const [min, max] = this.range(value);\n return Math.floor(distanceFromMin(max, min) / this.step) + 1; /* include min */\n }\n isMissing(value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n }\n isLastMissing(value) {\n return this.isMissing(setHours(this.max, this.lastHour(value)));\n }\n divideByStep(value) {\n return distanceFromMin(value.getHours(), this.min.getHours()) / this.step;\n }\n lastHour(value) {\n return this.range(value)[1];\n }\n range(value) {\n const [min, max] = this.limitRange(this.min, this.max, value);\n return [min.getHours(), max.getHours()];\n }\n}\nHoursService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nHoursService.ctorParameters = () => [\n { type: IntlService }\n];\n\nconst MINUTES_IN_HOUR = 60;\nconst clampToRange$1 = (rangeValue) => (value) => value % rangeValue;\nconst clamp$1 = clampToRange$1(MINUTES_IN_HOUR);\nconst stepper$1 = (start, step) => (idx) => clamp$1(start + (idx * step));\nconst distanceFromMin$1 = (value, min) => clamp$1(MINUTES_IN_HOUR + value - min);\nconst limit$1 = (borderValue) => (barrier, value) => {\n const useBarrier = !value || barrier.getHours() === value.getHours();\n return useBarrier ? barrier : setMinutes(barrier, borderValue);\n};\nconst limitDown$1 = limit$1(0);\nconst limitUp$1 = limit$1(MINUTES_IN_HOUR - 1);\n/**\n * @hidden\n */\nclass MinutesService {\n constructor(intl) {\n this.intl = intl;\n this.insertUndividedMax = false;\n }\n apply(value, candidate) {\n return setMinutes(value, candidate.getMinutes());\n }\n configure(settings) {\n const { insertUndividedMax = this.insertUndividedMax, min = this.min, max = this.max, part, step = this.step } = settings;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = (minute) => {\n const date = setMinutes(MIDNIGHT_DATE, minute);\n return {\n text: this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n }\n data(selectedValue) {\n const [min] = this.range(selectedValue);\n const getMinute = stepper$1(min, this.step);\n const convertToItem = (idx) => (this.toListItem(getMinute(idx)));\n const data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n this.addMissing(data, selectedValue);\n return data;\n }\n isRangeChanged(min, max) {\n return !isEqual(this.min, min) || !isEqual(this.max, max);\n }\n limitRange(min, max, value) {\n return [limitDown$1(min, value), limitUp$1(max, value)];\n }\n total(value) {\n const last$$1 = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n const missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last$$1;\n }\n selectedIndex(value) {\n return Math.ceil(this.divideByStep(value));\n }\n valueInList(value) {\n if (!value) {\n return true;\n }\n const matchMax = this.insertUndividedMax && this.lastMinute(value) === value.getMinutes();\n return matchMax || !this.isMissing(value);\n }\n addLast(data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value)) {\n data.push(this.toListItem(this.lastMinute(value)));\n }\n return data;\n }\n addMissing(data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n const missingItem = this.toListItem(value.getMinutes());\n data.splice(this.selectedIndex(value), 0, missingItem);\n return data;\n }\n countFromMin(value) {\n const [min, max] = this.range(value);\n return Math.floor(distanceFromMin$1(max, min) / this.step) + 1; /* include min */\n }\n isMissing(value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n }\n isLastMissing(value) {\n return this.isMissing(setMinutes(this.max, this.lastMinute(value)));\n }\n divideByStep(value) {\n return distanceFromMin$1(value.getMinutes(), this.min.getMinutes()) / this.step;\n }\n lastMinute(value) {\n return this.range(value)[1];\n }\n range(value) {\n const [min, max] = this.limitRange(this.min, this.max, value);\n return [min.getMinutes(), max.getMinutes()];\n }\n}\nMinutesService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nMinutesService.ctorParameters = () => [\n { type: IntlService }\n];\n\nconst SECONDS_IN_HOUR = 60;\nconst clampToRange$2 = (rangeValue) => (value) => value % rangeValue;\nconst clamp$2 = clampToRange$2(SECONDS_IN_HOUR);\nconst stepper$2 = (start, step) => (idx) => clamp$2(start + (idx * step));\nconst distanceFromMin$2 = (value, min) => clamp$2(SECONDS_IN_HOUR + value - min);\nconst limit$2 = (borderValue) => (barrier, value) => {\n const useBarrier = !value || barrier.getHours() === value.getHours() && barrier.getMinutes() === value.getMinutes();\n return useBarrier ? barrier : setSeconds(barrier, borderValue);\n};\nconst limitDown$2 = limit$2(0);\nconst limitUp$2 = limit$2(SECONDS_IN_HOUR - 1);\n/**\n * @hidden\n */\nclass SecondsService {\n constructor(intl) {\n this.intl = intl;\n this.insertUndividedMax = false;\n }\n apply(value, candidate) {\n return setSeconds(value, candidate.getSeconds());\n }\n configure(settings) {\n const { insertUndividedMax = this.insertUndividedMax, min = this.min, max = this.max, part, step = this.step } = settings;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = (minute) => {\n const date = setSeconds(MIDNIGHT_DATE, minute);\n return {\n text: this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n }\n data(selectedValue) {\n const [min] = this.range(selectedValue);\n const getSecond = stepper$2(min, this.step);\n const convertToItem = (idx) => (this.toListItem(getSecond(idx)));\n const data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n this.addMissing(data, selectedValue);\n return data;\n }\n isRangeChanged(min, max) {\n return !isEqual(this.min, min) || !isEqual(this.max, max);\n }\n limitRange(min, max, value) {\n return [limitDown$2(min, value), limitUp$2(max, value)];\n }\n total(value) {\n const last$$1 = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n const missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last$$1;\n }\n selectedIndex(value) {\n return Math.ceil(this.divideByStep(value));\n }\n valueInList(value) {\n if (!value) {\n return true;\n }\n const matchMax = this.insertUndividedMax && this.lastSecond(value) === value.getSeconds();\n return matchMax || !this.isMissing(value);\n }\n divideByStep(value) {\n return distanceFromMin$2(value.getSeconds(), this.min.getSeconds()) / this.step;\n }\n addLast(data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value)) {\n data.push(this.toListItem(this.lastSecond(value)));\n }\n return data;\n }\n addMissing(data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n const missingItem = this.toListItem(value.getSeconds());\n data.splice(this.selectedIndex(value), 0, missingItem);\n return data;\n }\n countFromMin(value) {\n const [min, max] = this.range(value);\n return Math.floor(distanceFromMin$2(max, min) / this.step) + 1; /* include min */\n }\n isMissing(value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n }\n isLastMissing(value) {\n return this.isMissing(setSeconds(this.max, this.lastSecond(value)));\n }\n lastSecond(value) {\n return this.range(value)[1];\n }\n range(value) {\n const [min, max] = this.limitRange(this.min, this.max, value);\n return [min.getSeconds(), max.getSeconds()];\n }\n}\nSecondsService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nSecondsService.ctorParameters = () => [\n { type: IntlService }\n];\n\nconst setHours$1 = (date, hours) => {\n const clone = cloneDate(date);\n clone.setHours(hours);\n return clone;\n};\nconst isAM = (value) => value !== null && value < 12;\nconst isPM = (value) => value !== null && (!value || value > 11);\nconst inRange = (value, min, max) => ((!min && !max) || (value >= min && value <= max));\nconst inReverseRange = (value, min, max) => ((!min && !max) || value >= min || value <= max);\n/**\n * @hidden\n */\nclass DayPeriodService {\n constructor(intl) {\n this.intl = intl;\n }\n /**\n * @hidden\n */\n apply(value, candidate) {\n const hour = value.getHours();\n const hourAM = isAM(hour);\n const candidateAM = isAM(candidate.getHours());\n if ((hourAM && candidateAM) || (!hourAM && !candidateAM)) {\n return value;\n }\n const [min, max = 24] = this.normalizedRange();\n const result = hour + (candidateAM ? -12 : 12);\n return setHours$1(value, Math.min(Math.max(min, result), (max || 24)));\n }\n /**\n * @hidden\n */\n configure(settings) {\n const { min = this.min, max = this.max, part = this.part } = settings;\n this.min = min;\n this.max = max;\n this.part = part;\n }\n /**\n * @hidden\n */\n data(_) {\n const names = this.part.names;\n if (!names) {\n return [];\n }\n const data = [];\n const [min, max] = this.normalizedRange();\n const dayPeriod = this.intl.dateFormatNames(names);\n if (isAM(min)) {\n data.push({ text: dayPeriod.am, value: setHours$1(this.min, min) });\n }\n if (isPM(max)) {\n data.push({ text: dayPeriod.pm, value: setHours$1(this.min, Math.max(12, max)) });\n }\n return this.min.getHours() !== min ? data.reverse() : data;\n }\n /**\n * @hidden\n */\n isRangeChanged(_, __) {\n return false;\n }\n /**\n * @hidden\n */\n limitRange(min, max, _) {\n return [min, max];\n }\n /**\n * @hidden\n */\n total() {\n const [min, max] = this.normalizedRange();\n if (!min && !max) {\n return 2;\n }\n if (min > 11 || max < 12) {\n return 1;\n }\n return 2;\n }\n /**\n * @hidden\n */\n selectedIndex(value) {\n if (!this.valueInList(value)) {\n return -1;\n }\n const index = Math.floor(value.getHours() / 12);\n return this.min.getHours() === this.normalizedRange()[0] ? index : (index === 0 ? 1 : 0);\n }\n /**\n * @hidden\n */\n valueInList(value) {\n const reverse = this.min.getHours() !== this.normalizedRange()[0];\n const isInRange = reverse ? inReverseRange : inRange;\n return isInRange(value.getHours(), this.min.getHours(), this.max.getHours());\n }\n normalizedRange() {\n const minHour = this.min.getHours();\n const maxHour = this.max.getHours();\n return [\n Math.min(minHour, maxHour),\n Math.max(minHour, maxHour)\n ];\n }\n}\nDayPeriodService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nDayPeriodService.ctorParameters = () => [\n { type: IntlService }\n];\n\n/* tslint:disable:component-selector-name component-selector-type */\nconst SNAP_THRESHOLD = 0.05; //% of the item height\nconst SCROLL_THRESHOLD = 2; //< 2px threshold\nconst nil = () => (null);\nconst getters = {\n 35: (data, _) => data[data.length - 1],\n 36: (data, _) => data[0],\n 38: (data, index) => data[index - 1],\n 40: (data, index) => data[index + 1]\n};\nconst services$1 = {\n [TIME_PART.dayperiod]: DayPeriodService,\n [TIME_PART.hour]: HoursService,\n [TIME_PART.minute]: MinutesService,\n [TIME_PART.second]: SecondsService\n};\n/**\n * @hidden\n */\nclass TimeListComponent {\n constructor(element, injector, dom, renderer, zone) {\n this.element = element;\n this.injector = injector;\n this.dom = dom;\n this.renderer = renderer;\n this.zone = zone;\n this.min = cloneDate(MIDNIGHT_DATE);\n this.max = cloneDate(MAX_TIME);\n this.step = 1;\n this.disabled = false;\n this.valueChange = new EventEmitter();\n this.componentClass = true;\n this.animateToIndex = true;\n this.isActive = false;\n this.skip = 0;\n this.total = 60;\n this.data = [];\n this.indexToScroll = -1;\n this.domEvents = [];\n }\n get tabIndex() {\n return this.disabled ? undefined : 0;\n }\n ngOnChanges(changes) {\n if (changes.part) {\n this.service = this.injector.get(services$1[this.part.type]);\n this.service.configure(this.serviceSettings());\n }\n const value = this.value;\n const valueChanges = changes.value || {};\n const [min, max] = this.service.limitRange(this.min, this.max, value);\n if (this.service.isRangeChanged(min, max) || changes.min || changes.max || changes.step) {\n this.data = [];\n this.service.configure(this.serviceSettings({ min, max }));\n }\n // Skip the rendering of the list whenever possible\n if (!this.data.length || this.hasMissingValue(valueChanges)) {\n this.animateToIndex = false;\n this.data = this.service.data(value);\n }\n this.animateToIndex = this.animateToIndex && this.textHasChanged(valueChanges);\n this.total = this.service.total(value);\n this.indexToScroll = this.selectedIndex(value);\n }\n ngOnInit() {\n this.animateToIndex = true;\n this.dom.ensureHeights();\n this.itemHeight = this.dom.itemHeight;\n this.listHeight = this.dom.timeListHeight;\n this.topOffset = (this.listHeight - this.itemHeight) / 2;\n this.bottomOffset = this.listHeight - this.itemHeight;\n this.topThreshold = this.itemHeight * SNAP_THRESHOLD;\n this.bottomThreshold = this.itemHeight * (1 - SNAP_THRESHOLD);\n const translate = `translateY(${this.topOffset}px)`;\n this.style = { transform: translate, '-ms-transform': translate };\n if (this.element) {\n this.zone.runOutsideAngular(() => {\n this.bindEvents();\n });\n }\n }\n ngOnDestroy() {\n this.scrollSubscription.unsubscribe();\n this.domEvents.forEach(unbindCallback => unbindCallback());\n }\n ngAfterViewInit() {\n this.scrollOnce((index) => this.virtualization.scrollToIndex(index));\n }\n ngAfterViewChecked() {\n this.scrollOnce((index) => {\n const action = this.animateToIndex ? 'animateToIndex' : 'scrollToIndex';\n this.virtualization[action](index);\n this.animateToIndex = true;\n });\n }\n handleChange(dataItem) {\n const candidate = this.service.apply(this.value, dataItem.value);\n if (this.value.getTime() === candidate.getTime()) {\n return;\n }\n this.indexToScroll = this.data.indexOf(dataItem);\n this.value = candidate;\n this.valueChange.emit(candidate);\n }\n handleItemClick(args) {\n const item = closestInScope(args.target, node => node.hasAttribute('data-timelist-item-index'), this.element.nativeElement);\n if (item) {\n const index = item.getAttribute('data-timelist-item-index');\n this.handleChange(this.data[index]);\n }\n }\n /**\n * Focuses the host element of the TimeList.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n if (!this.element) {\n return;\n }\n this.element.nativeElement.focus();\n }\n /**\n * Blurs the TimeList component.\n */\n blur() {\n if (!this.element) {\n return;\n }\n this.element.nativeElement.blur();\n }\n itemOffset(scrollTop) {\n const valueIndex = this.selectedIndex(this.value);\n const activeIndex = this.virtualization.activeIndex();\n const offset = this.virtualization.itemOffset(activeIndex);\n const distance = Math.abs(Math.ceil(scrollTop) - offset);\n if (valueIndex === activeIndex && distance < SCROLL_THRESHOLD) {\n return offset;\n }\n const scrollUp = valueIndex > activeIndex;\n const moveToNext = scrollUp && distance >= this.bottomThreshold || !scrollUp && distance > this.topThreshold;\n return moveToNext ? this.virtualization.itemOffset(activeIndex + 1) : offset;\n }\n hasMissingValue({ previousValue, currentValue }) {\n const isPreviousMissing = previousValue && !this.service.valueInList(previousValue);\n const isCurrentMissing = currentValue && !this.service.valueInList(currentValue);\n return isPreviousMissing || isCurrentMissing;\n }\n scrollOnce(action) {\n if (this.indexToScroll !== -1) {\n action(this.indexToScroll);\n this.indexToScroll = -1;\n }\n }\n serviceSettings(settings) {\n const defaults = {\n boundRange: false,\n insertUndividedMax: false,\n max: this.max,\n min: this.min,\n part: this.part,\n step: this.step\n };\n const result = Object.assign({}, defaults, settings);\n result.boundRange = result.part.type !== 'hour';\n return result;\n }\n selectedIndex(value) {\n if (!value) {\n return -1;\n }\n return this.service.selectedIndex(value);\n }\n textHasChanged({ previousValue, currentValue }) {\n if (!previousValue || !currentValue) {\n return false;\n }\n const oldData = this.data[this.selectedIndex(previousValue)];\n const newData = this.data[this.selectedIndex(currentValue)];\n return oldData && newData && oldData.text !== newData.text;\n }\n handleKeyDown(e) {\n const getter = getters[e.keyCode] || nil;\n const dataItem = getter(this.data, this.service.selectedIndex(this.value));\n if (dataItem) {\n this.handleChange(dataItem);\n e.preventDefault();\n }\n }\n bindEvents() {\n this.scrollSubscription = this.virtualization\n .scroll$()\n .pipe(debounceTime(100), map((e) => e.target.scrollTop), map((top) => this.itemOffset(top)), map((itemOffset) => this.virtualization.itemIndex(itemOffset)))\n .subscribe(index => {\n this.virtualization.scrollToIndex(index);\n this.handleChange(this.data[index]);\n });\n const element = this.element.nativeElement;\n this.domEvents.push(this.renderer.listen(element, 'mouseover', () => !this.isActive && this.focus()), this.renderer.listen(element, 'click', () => this.focus()), this.renderer.listen(element, 'blur', () => this.isActive = false), this.renderer.listen(element, 'focus', () => this.isActive = true), this.renderer.listen(element, 'keydown', this.handleKeyDown.bind(this)));\n }\n}\nTimeListComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-timelist',\n template: `\n \n
    \n
  • \n {{item.text}}\n
  • \n
\n \n `\n },] },\n];\n/** @nocollapse */\nTimeListComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: Injector },\n { type: TimePickerDOMService },\n { type: Renderer2 },\n { type: NgZone }\n];\nTimeListComponent.propDecorators = {\n min: [{ type: Input }],\n max: [{ type: Input }],\n part: [{ type: Input }],\n step: [{ type: Input }],\n disabled: [{ type: Input }],\n value: [{ type: Input }],\n valueChange: [{ type: Output }],\n virtualization: [{ type: ViewChild, args: [VirtualizationComponent, { static: true },] }],\n tabIndex: [{ type: HostBinding, args: [\"attr.tabindex\",] }],\n componentClass: [{ type: HostBinding, args: [\"class.k-time-list\",] }]\n};\n\nconst isEqualTillMinute = (value, min) => value.getHours() === min.getHours() && value.getMinutes() === min.getMinutes();\nconst isEqualTillSecond = (value, min) => isEqualTillMinute(value, min) && value.getSeconds() === min.getSeconds();\nconst isEqualTillMillisecond = (value, min) => isEqualTillSecond(value, min) && value.getMilliseconds() === min.getMilliseconds();\nconst ɵ3$6 = (value) => value.getHours(), ɵ4$2 = (_, min) => min.getHours(), ɵ5$1 = (value) => value.getMinutes(), ɵ6$1 = (value, min) => isEqualTillMinute(value, min) ? min.getMinutes() : 0, ɵ7$1 = (value) => value.getSeconds(), ɵ8$1 = (value, min) => isEqualTillSecond(value, min) ? min.getSeconds() : 0, ɵ9$1 = (value) => value.getMilliseconds(), ɵ10$1 = (value, min) => isEqualTillMillisecond(value, min) ? min.getMilliseconds() : 0;\nconst defaultGetters = [\n {\n type: TIME_PART.hour,\n getter: ɵ3$6,\n minGetter: ɵ4$2\n }, {\n type: TIME_PART.minute,\n getter: ɵ5$1,\n minGetter: ɵ6$1\n }, {\n type: TIME_PART.second,\n getter: ɵ7$1,\n minGetter: ɵ8$1\n }, {\n type: TIME_PART.millisecond,\n getter: ɵ9$1,\n minGetter: ɵ10$1\n }\n];\nconst left = getter => (origin, _) => getter(origin);\nconst right = getter => (_, candidate) => getter(candidate);\nconst convertToObject = (parts) => parts.reduce((obj, p) => { obj[p.type] = p.type; return obj; }, {});\nconst getterByPart = parts => g => parts[g.type] ? right(g.getter) : left(g.getter);\nconst gettersFactory = getters => parts => (getters.map(getterByPart(convertToObject(parts))));\nconst snapValue = (getter, minGetter, step) => (date, min) => {\n const value = getter(date);\n const minValue = minGetter(date, min);\n const rest = value - minValue;\n if (rest < 0) {\n return minValue;\n }\n const mod = rest % step;\n return value - mod + (mod > step / 2 ? step : 0);\n};\nconst snappersFactory = (getters) => steps => (getters.map(g => {\n const step = steps[g.type];\n return step ? snapValue(g.getter, g.minGetter, step) : g.getter;\n}));\n/**\n * @hidden\n */\nconst generateGetters = gettersFactory(defaultGetters);\n/**\n * @hidden\n */\nconst generateSnappers = snappersFactory(defaultGetters);\n/**\n * @hidden\n */\nconst valueMerger = getters => (origin, candidate) => {\n origin.setHours(...getters.map(g => g(origin, candidate)));\n return origin;\n};\n/**\n * @hidden\n */\nconst snapTime = snappers => (candidate, min) => {\n const date = cloneDate(candidate);\n date.setHours(...snappers.map(s => s(date, min)));\n return date;\n};\n\nconst listReducer = (state, list, idx, all) => {\n if (state.length || !list.isActive) {\n return state;\n }\n return [{\n next: all[idx + 1] || list,\n prev: all[idx - 1] || list\n }];\n};\nvar Direction;\n(function (Direction) {\n Direction[Direction[\"Left\"] = 0] = \"Left\";\n Direction[Direction[\"Right\"] = 1] = \"Right\";\n})(Direction || (Direction = {}));\n/**\n * @hidden\n *\n * Represents the Kendo UI TimeSelector component for Angular.\n */\nclass TimeSelectorComponent {\n constructor(localization, cdr, element, intl, dom, zone, renderer, pickerService) {\n this.localization = localization;\n this.cdr = cdr;\n this.element = element;\n this.intl = intl;\n this.dom = dom;\n this.zone = zone;\n this.renderer = renderer;\n this.pickerService = pickerService;\n /**\n * @hidden\n */\n this.componentClass = true;\n /**\n * Specifies the time format used to display the time list columns.\n */\n this.format = 't';\n /**\n * Specifies the smallest valid time value.\n */\n this.min = cloneDate(MIN_TIME);\n /**\n * Specifies the biggest valid time value.\n */\n this.max = cloneDate(MAX_TIME);\n /**\n * Determines whether to display the **Cancel** button in the popup.\n */\n this.cancelButton = true;\n /**\n * Determines whether to display the **Set** button in the popup.\n */\n this.setButton = true;\n /**\n * Determines whether to display the **Now** button in the popup.\n *\n * > If the current time is out of range or the incremental step is greater than `1`, the **Now** button will be hidden.\n */\n this.nowButton = true;\n /**\n * Sets or gets the `disabled` property of the TimeSelector and determines whether the component is active.\n */\n this.disabled = false;\n /**\n * Specifies the value of the TimeSelector component.\n */\n this.value = null;\n /**\n * Fires each time the user selects a new value.\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time the user cancels the selected value.\n */\n this.valueReject = new EventEmitter();\n this.isActive = false;\n this.showNowButton = true;\n this._activeListIndex = -1;\n this._steps = {};\n this.domEvents = [];\n if (this.pickerService) {\n this.pickerService.timeSelector = this;\n }\n }\n /**\n * @hidden\n */\n get disabledClass() {\n return this.disabled;\n }\n /**\n * Configures the incremental steps of the TimeSelector.\n *\n * The available options are:\n * - `hour: Number`—Controls the incremental step of the hour value.\n * - `minute: Number`—Controls the incremental step of the minute value.\n * - `second: Number`—Controls the incremental step of the second value.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public steps = { hour: 2, minute: 15, second: 15 };\n * }\n * ```\n *\n * > If the incremental step is greater than `1`, the **Now** button will be hidden.\n */\n set steps(steps) {\n this._steps = steps || {};\n }\n get steps() {\n return this._steps;\n }\n set current(value) {\n this._current = timeInRange(this.snapTime(cloneDate(value || MIDNIGHT_DATE), this.min), this.min, this.max);\n if (!NgZone.isInAngularZone()) {\n this.cdr.detectChanges();\n }\n }\n get current() {\n return this._current;\n }\n get activeListIndex() {\n return this._activeListIndex;\n }\n set activeListIndex(value) {\n this._activeListIndex = value;\n if (!this.timeListWrappers || !this.timeListWrappers.length) {\n return;\n }\n this.timeListWrappers.forEach(listWrapper => {\n this.renderer.removeClass(listWrapper.nativeElement, 'k-state-focused');\n });\n if (value >= 0) {\n const listIndex = this.listIndex(value);\n const focusedWrapper = this.timeListWrappers.toArray()[listIndex];\n if (focusedWrapper) {\n this.renderer.addClass(focusedWrapper.nativeElement, 'k-state-focused');\n }\n }\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.subscriptions = this.intl.changes.subscribe(this.intlChange.bind(this));\n if (this.localization) {\n this.subscriptions.add(this.localization\n .changes\n .subscribe(() => this.cdr.markForCheck()));\n }\n this.dom.calculateHeights(this.element.nativeElement);\n this.init();\n this.bindEvents();\n }\n /**\n * @hidden\n */\n ngOnChanges(_) {\n this.init();\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n if (this.pickerService) {\n this.pickerService.timeSelector = null;\n }\n this.domEvents.forEach(unbindCallback => unbindCallback());\n }\n /**\n * Focuses the TimeSelector component.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n const list = this.timeLists.first;\n if (!list) {\n return;\n }\n list.focus();\n }\n /**\n * Blurs the TimeSelector component.\n */\n blur() {\n const list = this.timeLists.first;\n if (!list) {\n return;\n }\n list.blur();\n }\n /**\n * @hidden\n */\n handleAccept() {\n this.handleChange(this.mergeValue(cloneDate(this.value || getDate(getNow())), this.current));\n }\n /**\n * @hidden\n */\n handleNow() {\n this.current = getNow();\n this.handleChange(this.current);\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n handleReject() {\n this.current = this.value;\n this.valueReject.emit();\n }\n /**\n * @hidden\n */\n handleFocus(args) {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n this.emitFocus(args);\n }\n /**\n * @hidden\n */\n handleListFocus(args) {\n const index = parseInt(args.target.getAttribute('data-timelist-index'), 10);\n this.activeListIndex = index;\n this.handleFocus(args);\n }\n /**\n * @hidden\n */\n handleBlur(args) {\n const currentTarget = currentFocusTarget(args);\n if (currentTarget && this.containsElement(currentTarget)) {\n return;\n }\n this.activeListIndex = -1;\n this.isActive = false;\n this.emitBlur(args);\n }\n /**\n * @hidden\n */\n containsElement(element) {\n return Boolean(closest(element, node => node === this.element.nativeElement));\n }\n partStep(part) {\n return this.steps[part.type] || 1;\n }\n init(changes) {\n if (!changes || hasChange(changes, 'format')) {\n this.dateFormatParts = this.intl.splitDateFormat(this.format);\n this.mergeValue = valueMerger(generateGetters(this.dateFormatParts));\n }\n if (!changes || hasChange(changes, 'steps')) {\n this.snapTime = snapTime(generateSnappers(this.steps));\n }\n if (!changes || hasChange(changes, 'value')) {\n this.current = this.value;\n }\n this.showNowButton = !this.hasSteps() && this.nowButton && isInTimeRange(getNow(), this.min, this.max);\n }\n focusList(dir) {\n if (!this.timeLists.length) {\n return;\n }\n this.timeLists.reduce(listReducer, [])\n .map(state => dir === Direction.Right ? state.next : state.prev)\n .map(list => list && list.focus());\n }\n handleChange(value) {\n this.value = value;\n this.valueChange.emit(cloneDate(value));\n }\n hasActiveButton() {\n if (!this.accept) {\n return false;\n }\n return [this.accept, this.cancel, this.now].reduce((isActive, el) => isActive || this.dom.isActive(el), false);\n }\n hasSteps() {\n const keys = Object.keys(this.steps);\n return keys.length !== keys.reduce((acc, k) => acc + this.steps[k], 0);\n }\n intlChange() {\n this.dateFormatParts = this.intl.splitDateFormat(this.format);\n this.mergeValue = valueMerger(generateGetters(this.dateFormatParts));\n this.cdr.markForCheck();\n }\n bindEvents() {\n if (this.element) {\n this.zone.runOutsideAngular(() => {\n this.domEvents.push(this.renderer.listen(this.element.nativeElement, 'keydown', this.handleKeydown.bind(this)));\n });\n }\n }\n handleKeydown(args) {\n const { keyCode, altKey } = args;\n // reserve the alt + arrow key commands for the picker\n const arrowKeyPressed = [Keys.ArrowLeft, Keys.ArrowRight].indexOf(keyCode) !== -1;\n if (isPresent(this.pickerService) && arrowKeyPressed && altKey) {\n return;\n }\n if (keyCode === Keys.Enter && !this.hasActiveButton()) {\n this.handleAccept();\n }\n else if (keyCode === Keys.ArrowLeft || keyCode === Keys.ArrowRight) {\n this.focusList(keyCode === Keys.ArrowLeft ? Direction.Left : Direction.Right);\n }\n }\n emitBlur(args) {\n if (this.pickerService) {\n this.pickerService.onBlur.emit(args);\n }\n }\n emitFocus(args) {\n if (this.pickerService) {\n this.pickerService.onFocus.emit(args);\n }\n }\n listIndex(partIndex) {\n let listIdx = 0;\n let partIdx = 0;\n while (partIdx < partIndex) {\n if (this.dateFormatParts[partIdx].type !== 'literal') {\n listIdx++;\n }\n partIdx++;\n }\n return listIdx;\n }\n}\nTimeSelectorComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendo-timeselector',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.timeselector'\n }\n ],\n selector: 'kendo-timeselector',\n template: `\n \n \n
\n \n {{ intl.formatDate(current, format) }}\n \n {{localization.get('now')}}\n
\n
\n \n \n \n {{intl.dateFieldName(part)}}\n \n
\n
\n {{part.pattern}}\n
\n
\n \n \n `\n },] },\n];\n/** @nocollapse */\nTimeSelectorComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: IntlService },\n { type: TimePickerDOMService },\n { type: NgZone },\n { type: Renderer2 },\n { type: PickerService, decorators: [{ type: Optional }] }\n];\nTimeSelectorComponent.propDecorators = {\n accept: [{ type: ViewChild, args: ['accept',] }],\n cancel: [{ type: ViewChild, args: ['cancel',] }],\n now: [{ type: ViewChild, args: ['now',] }],\n timeLists: [{ type: ViewChildren, args: [TimeListComponent,] }],\n timeListWrappers: [{ type: ViewChildren, args: ['listWrapper',] }],\n componentClass: [{ type: HostBinding, args: ['class.k-timeselector',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }],\n format: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n cancelButton: [{ type: Input }],\n setButton: [{ type: Input }],\n nowButton: [{ type: Input }],\n disabled: [{ type: Input }],\n steps: [{ type: Input }],\n value: [{ type: Input }],\n valueChange: [{ type: Output }],\n valueReject: [{ type: Output }]\n};\n\n/**\n * @hidden\n */\nclass TimePickerMessages extends ComponentMessages {\n}\nTimePickerMessages.propDecorators = {\n accept: [{ type: Input }],\n acceptLabel: [{ type: Input }],\n cancel: [{ type: Input }],\n cancelLabel: [{ type: Input }],\n now: [{ type: Input }],\n nowLabel: [{ type: Input }],\n toggle: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass TimePickerLocalizedMessagesDirective extends TimePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nTimePickerLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimePickerLocalizedMessagesDirective) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoTimePickerLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nTimePickerLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nclass TimePickerCustomMessagesComponent extends TimePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nTimePickerCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimePickerCustomMessagesComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-timepicker-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nTimePickerCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * @hidden\n */\nclass TimeSelectorLocalizedMessagesDirective extends TimePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nTimeSelectorLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimeSelectorLocalizedMessagesDirective) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoTimeSelectorLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nTimeSelectorLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * @hidden\n *\n * Custom component messages override default component messages.\n */\nclass TimeSelectorCustomMessagesComponent extends TimePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nTimeSelectorCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimeSelectorCustomMessagesComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-timeselector-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nTimeSelectorCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\nconst COMPONENT_DIRECTIVES$2 = [\n TimePickerLocalizedMessagesDirective,\n TimeListComponent,\n TimePickerCustomMessagesComponent,\n TimePickerComponent,\n TimeSelectorLocalizedMessagesDirective,\n TimeSelectorCustomMessagesComponent,\n TimeSelectorComponent\n];\nconst COMPONENT_MODULES$1 = [\n DateInputModule,\n IntlModule,\n PopupModule,\n VirtualizationModule,\n EventsModule\n];\nconst ɵ0$n = touchEnabled;\nconst providers = [\n TimePickerDOMService,\n HoursService,\n MinutesService,\n SecondsService,\n DayPeriodService,\n {\n provide: TOUCH_ENABLED,\n useValue: ɵ0$n\n }\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the TimePicker component.\n */\nclass TimePickerModule {\n}\nTimePickerModule.decorators = [\n { type: NgModule, args: [{\n declarations: [COMPONENT_DIRECTIVES$2],\n exports: [COMPONENT_DIRECTIVES$2],\n imports: [CommonModule, ...COMPONENT_MODULES$1],\n providers: providers\n },] },\n];\n\n/**\n * @hidden\n */\nclass Messages$1 extends ComponentMessages {\n}\nMessages$1.propDecorators = {\n toggle: [{ type: Input }],\n dateTab: [{ type: Input }],\n dateTabLabel: [{ type: Input }],\n timeTab: [{ type: Input }],\n timeTabLabel: [{ type: Input }],\n accept: [{ type: Input }],\n acceptLabel: [{ type: Input }],\n cancel: [{ type: Input }],\n cancelLabel: [{ type: Input }],\n today: [{ type: Input }],\n now: [{ type: Input }],\n nowLabel: [{ type: Input }]\n};\n\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nclass DateTimePickerCustomMessagesComponent extends Messages$1 {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nDateTimePickerCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: Messages$1,\n useExisting: forwardRef(() => DateTimePickerCustomMessagesComponent)\n }\n ],\n selector: 'kendo-datetimepicker-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nDateTimePickerCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * @hidden\n */\nclass LocalizedMessagesDirective extends Messages$1 {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: Messages$1,\n useExisting: forwardRef(() => LocalizedMessagesDirective)\n }\n ],\n selector: '[kendoDateTimePickerLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\nconst COMPONENT_DIRECTIVES$3 = [\n DateTimePickerComponent,\n DateTimePickerCustomMessagesComponent,\n LocalizedMessagesDirective\n];\nconst ɵ0$o = touchEnabled;\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the DateTimePicker component.\n */\nclass DateTimePickerModule {\n}\nDateTimePickerModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n ...COMPONENT_DIRECTIVES$3\n ],\n exports: [\n ...COMPONENT_DIRECTIVES$3,\n TemplatesModule\n ],\n imports: [\n CommonModule,\n IntlModule,\n DateInputModule,\n CalendarModule,\n TimePickerModule,\n PopupModule,\n EventsModule,\n TemplatesModule\n ],\n providers: [\n { provide: TOUCH_ENABLED, useValue: ɵ0$o }\n ]\n },] },\n];\n\nconst COMPONENT_MODULES$2 = [\n CalendarsModule,\n DateInputModule,\n DatePickerModule,\n TimePickerModule,\n DateRangeModule,\n DateTimePickerModule\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Date Inputs components.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Date Inputs module\n * import { DateInputsModule } from '@progress/kendo-angular-dateinputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare the app component\n * imports: [BrowserModule, DateInputsModule], // import the Date Inputs module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass DateInputsModule {\n}\nDateInputsModule.decorators = [\n { type: NgModule, args: [{\n exports: COMPONENT_MODULES$2,\n imports: COMPONENT_MODULES$2\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CalendarCommonModule, CALENDAR_RANGE_VALIDATORS, CALENDAR_VALUE_ACCESSOR, KENDO_INPUT_PROVIDER, KForOf, KForOfContext, HeaderComponent, HorizontalViewListComponent, CalendarMessages, MultiViewCalendarCustomMessagesComponent, Messages, RANGE_CALENDAR_RANGE_VALIDATORS, RANGE_CALENDAR_VALUE_ACCESSOR, NavigationComponent, BusViewService, CenturyViewService, DecadeViewService, DisabledDatesService, CalendarDOMService, MonthViewService, NavigationService, ScrollSyncService, WeekNamesService, YearViewService, TemplatesModule, CellTemplateDirective, CenturyCellTemplateDirective, DecadeCellTemplateDirective, HeaderTitleTemplateDirective, MonthCellTemplateDirective, NavigationItemTemplateDirective, WeekNumberCellTemplateDirective, YearCellTemplateDirective, ViewListComponent, ViewComponent, PickerService, DateInputMessages, DatePickerMessages, DateRangeInput, DateRangePopupTemplateDirective, DateTimePickerCustomMessagesComponent, LocalizedMessagesDirective, Messages$1, TimePickerMessages, TimePickerCustomMessagesComponent, TimeSelectorCustomMessagesComponent, DayPeriodService, TimePickerDOMService, HoursService, MinutesService, SecondsService, TimeListComponent, TimeSelectorComponent, TOUCH_ENABLED, ScrollerService, DEFAULT_SCROLLER_FACTORY, SCROLLER_FACTORY_TOKEN, VirtualizationComponent, VirtualizationModule, CalendarComponent, DateInputComponent, DatePickerComponent, TimePickerComponent, DateTimePickerComponent, MultiViewCalendarComponent, DateRangeComponent, DateRangePopupComponent, DateRangeEndInputDirective, DateRangeStartInputDirective, DateRangeSelectionDirective, CalendarModule, CalendarsModule, DateInputModule, DatePickerModule, DateInputsModule, TimePickerModule, DateTimePickerModule, MultiViewCalendarModule, DateRangeModule, DateRangeService, CalendarCustomMessagesComponent, DateInputCustomMessagesComponent, DatePickerCustomMessagesComponent, PreventableEvent, CalendarLocalizedMessagesDirective, MultiViewCalendarLocalizedMessagesDirective, DateInputLocalizedMessagesDirective, DatePickerLocalizedMessagesDirective, TimePickerLocalizedMessagesDirective, TimeSelectorLocalizedMessagesDirective };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { EventEmitter, TemplateRef, Component, ElementRef, Input, Output, HostBinding, InjectionToken, Inject, Optional, Renderer2, ContentChild, ViewChild, HostListener, Injectable, isDevMode, ComponentFactoryResolver, NgZone, Directive, Host, ViewChildren, ViewContainerRef, forwardRef, NgModule } from '@angular/core';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { LocalizationService, L10N_PREFIX, MessageService, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { Subject, merge, Subscription, of } from 'rxjs';\nimport { filter, map, take, share, tap, switchMap, takeUntil } from 'rxjs/operators';\nimport { DraggableDirective, isChanged, isDocumentAvailable, DraggableModule } from '@progress/kendo-angular-common';\nimport { offset, scrollPosition, positionWithScroll, getDocumentElement, getWindowViewPort } from '@progress/kendo-popup-common';\nimport { Button } from '@progress/kendo-angular-buttons';\nimport { CommonModule } from '@angular/common';\n\n/**\n * Specifies the action buttons of the Dialog\n * ([see example]({% slug actionbuttons_dialog %})).\n */\nclass DialogActionsComponent {\n constructor(el) {\n this.el = el;\n /**\n * Specifies the possible layout of the action buttons.\n */\n this.layout = 'stretched';\n /**\n * Fires when the user clicks an action button.\n */\n this.action = new EventEmitter();\n this.buttonGroupClassName = true;\n }\n get className() {\n return this.layout === 'stretched';\n }\n /**\n * @hidden\n */\n actionTemplate() {\n return this.actions instanceof TemplateRef;\n }\n /**\n * @hidden\n */\n onButtonClick(action, _e) {\n this.action.emit(action);\n }\n /**\n * @hidden\n */\n buttonClass(action) {\n const classes = ['k-button'];\n if (action.primary) {\n classes.push('k-primary');\n }\n return classes.join(' ');\n }\n}\nDialogActionsComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-dialog-actions',\n template: `\n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nDialogActionsComponent.ctorParameters = () => [\n { type: ElementRef }\n];\nDialogActionsComponent.propDecorators = {\n actions: [{ type: Input }],\n layout: [{ type: Input }],\n action: [{ type: Output }],\n buttonGroupClassName: [{ type: HostBinding, args: ['class.k-dialog-buttongroup',] }],\n className: [{ type: HostBinding, args: ['class.k-dialog-button-layout-stretched',] }]\n};\n\n/**\n * @hidden\n */\nconst DIALOG_LOCALIZATION_SERVICE = new InjectionToken('Dialog LocalizationService');\n\n/**\n * @hidden\n */\nclass TitleBarLocalizationService extends LocalizationService {\n constructor(prefix, messageService, rtl, dialogLocalization) {\n super(prefix, messageService, rtl);\n this.dialogLocalization = dialogLocalization;\n }\n get(shortKey) {\n if (this.dialogLocalization) {\n return this.dialogLocalization.get(shortKey);\n }\n return super.get(shortKey);\n }\n}\n/** @nocollapse */\nTitleBarLocalizationService.ctorParameters = () => [\n { type: String, decorators: [{ type: Inject, args: [L10N_PREFIX,] }] },\n { type: MessageService, decorators: [{ type: Optional }] },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [RTL,] }] },\n { type: LocalizationService, decorators: [{ type: Optional }, { type: Inject, args: [DIALOG_LOCALIZATION_SERVICE,] }] }\n];\n\n/**\n * @hidden\n */\nclass PreventableEvent {\n constructor() {\n this.prevented = false;\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * If the event is prevented by any of its subscribers, returns `true`.\n *\n * @returns `true` if the default action was prevented. Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * Represents the [Kendo UI DialogTitleBar component for Angular]({% slug api_dialog_dialogtitlebarcomponent %}).\n *\n * It is used as part of the Dialog content when the component is created dynamically by using an [Angular service]({% slug service_dialog %}).\n */\nclass DialogTitleBarComponent {\n constructor(hostElement, localizationService) {\n this.hostElement = hostElement;\n this.localizationService = localizationService;\n /**\n * Fires when the close button of the title-bar is clicked.\n */\n this.close = new EventEmitter();\n }\n get className() {\n return true;\n }\n get closeButtonTitle() {\n return this.closeTitle || this.localizationService.get('closeTitle');\n }\n ngAfterViewChecked() {\n const element = this.hostElement.nativeElement;\n element.setAttribute('id', this.id);\n }\n /**\n * @hidden\n */\n onCloseClick(e) {\n e.preventDefault();\n const eventArgs = new PreventableEvent();\n this.close.emit(eventArgs);\n }\n}\nDialogTitleBarComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-dialog-titlebar',\n providers: [\n TitleBarLocalizationService,\n {\n provide: LocalizationService,\n useExisting: TitleBarLocalizationService\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.dialog'\n }\n ],\n template: `\n \n \n
\n \n
\n\n
\n \n \n \n
\n `\n },] },\n];\n/** @nocollapse */\nDialogTitleBarComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: LocalizationService, decorators: [{ type: Optional }] }\n];\nDialogTitleBarComponent.propDecorators = {\n close: [{ type: Output }],\n id: [{ type: Input }],\n closeTitle: [{ type: Input }],\n className: [{ type: HostBinding, args: ['class.k-window-titlebar',] }, { type: HostBinding, args: ['class.k-dialog-titlebar',] }]\n};\n\n/**\n * @hidden\n */\nconst isPresent = (value) => value !== null && value !== undefined;\n/**\n * @hidden\n */\nconst isTruthy = (value) => !!value;\nconst toClassList = (classNames) => String(classNames).trim().split(' ');\nconst focusableRegex = /^(?:a|input|select|textarea|button|object)$/i;\n/**\n * @hidden\n */\nvar Keys;\n(function (Keys) {\n Keys[Keys[\"esc\"] = 27] = \"esc\";\n Keys[Keys[\"tab\"] = 9] = \"tab\";\n Keys[Keys[\"enter\"] = 13] = \"enter\";\n Keys[Keys[\"space\"] = 32] = \"space\";\n Keys[Keys[\"ctrl\"] = 17] = \"ctrl\";\n Keys[Keys[\"shift\"] = 16] = \"shift\";\n Keys[Keys[\"left\"] = 37] = \"left\";\n Keys[Keys[\"up\"] = 38] = \"up\";\n Keys[Keys[\"right\"] = 39] = \"right\";\n Keys[Keys[\"down\"] = 40] = \"down\";\n})(Keys || (Keys = {}));\n/**\n * @hidden\n */\nconst DIALOG_ELEMENTS_HANDLING_ESC_KEY = 'k-dialog-wrapper k-dialog-buttongroup k-dialog-action';\n/**\n * @hidden\n */\nconst DIALOG_ELEMENTS_HANDLING_ARROWS = 'k-dialog-buttongroup';\n/**\n * @hidden\n */\nconst WINDOW_CLASSES = 'k-window';\n/**\n * @hidden\n */\nconst hasClasses = (element, classNames) => {\n const namesList = toClassList(classNames);\n return Boolean(toClassList(element.className).find((className) => namesList.indexOf(className) >= 0));\n};\n/**\n * @hidden\n */\nconst isVisible = (element) => {\n const rect = element.getBoundingClientRect();\n return !!(rect.width && rect.height) && window.getComputedStyle(element).visibility !== 'hidden';\n};\n/**\n * @hidden\n */\nconst isFocusable = (element, checkVisibility = true) => {\n if (element.tagName) {\n const tagName = element.tagName.toLowerCase();\n const tabIndex = element.getAttribute('tabIndex');\n const validTabIndex = tabIndex !== null && !isNaN(tabIndex) && tabIndex > -1;\n let focusable = false;\n if (focusableRegex.test(tagName)) {\n focusable = !element.disabled;\n }\n else {\n focusable = validTabIndex;\n }\n return focusable && (!checkVisibility || isVisible(element));\n }\n return false;\n};\n/**\n * @hidden\n */\nconst focusableSelector = [\n 'a[href]',\n 'area[href]',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'iframe',\n 'object',\n 'embed',\n '*[tabindex]',\n '*[contenteditable]'\n].join(',');\n/**\n * @hidden\n */\nconst preventDefault = ({ originalEvent: event }) => {\n event.stopPropagation();\n event.preventDefault();\n};\n/**\n * @hidden\n */\nconst RESIZE_DIRECTIONS = ['n', 'e', 's', 'w', 'se', 'sw', 'ne', 'nw'];\n/**\n * @hidden\n */\nconst OFFSET_STYLES = ['top', 'left', 'width', 'height'];\n/**\n * @hidden\n */\nconst isString = (value) => value instanceof String || typeof value === 'string';\n/**\n * @hidden\n */\nconst isNumber = (value) => typeof value === 'number' && isFinite(value);\n/**\n * @hidden\n */\nconst createValueWithUnit = (value) => value + (isNumber(value) ? 'px' : '');\n\n/**\n * The settings for the Dialog actions when the Dialog is opened through `DialogService`\n * ([see example]({% slug api_dialog_dialogservice %}#toc-open)).\n */\nclass DialogAction {\n}\n/**\n * Indicates that the **Close** button is clicked. Used when the results from\n * the Dialogs that are opened through `DialogService` are filtered\n * ([see example]({% slug api_dialog_dialogservice %}#toc-open)).\n */\nclass DialogCloseResult {\n}\n/**\n * The settings that can be used when the Dialog is opened through `DialogService`.\n * ([see example]({% slug api_dialog_dialogservice %}#toc-open)).\n */\nclass DialogSettings {\n}\n/**\n * Holds references to the object instance and published events of the Dialog.\n * Controls the Dialogs that were opened through the `DialogService`\n * ([see example]({% slug api_dialog_dialogservice %}#toc-open)).\n */\nclass DialogRef {\n}\n\n/**\n * Represents the [Kendo UI Dialog component for Angular]({% slug overview_dialog_dialogs %}).\n */\nclass DialogComponent {\n constructor(_elRef, _renderer, localization) {\n this._elRef = _elRef;\n this._renderer = _renderer;\n /**\n * Specifies the layout of the action buttons in the Dialog.\n * This option is only applicable if the action buttons are specified through the `actions` options.\n *\n * @default 'stretched'\n */\n this.actionsLayout = 'stretched';\n /**\n * @hidden\n */\n this.titleId = null;\n /**\n * Fires when the user clicks an action button of the Dialog.\n * The event is fired only when the action buttons are specified through the `actions` options.\n */\n this.action = new EventEmitter();\n /**\n * Fires when the user clicks the **Close** button of the Dialog.\n */\n this.close = new EventEmitter();\n this.tabIndex = 0;\n this.subscriptions = [];\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.subscriptions.push(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));\n this.titleId = this.generateTitleId();\n }\n get dir() {\n return this.direction;\n }\n /**\n * @hidden\n */\n onComponentKeydown(event) {\n const target = event.target;\n const parent = target.parentElement;\n if (hasClasses(target, DIALOG_ELEMENTS_HANDLING_ESC_KEY) || hasClasses(parent, DIALOG_ELEMENTS_HANDLING_ESC_KEY)) {\n if (event.keyCode === Keys.esc) {\n this.close.emit(new DialogCloseResult());\n }\n }\n if (hasClasses(target, 'k-button') &&\n hasClasses(parent, DIALOG_ELEMENTS_HANDLING_ARROWS) &&\n (event.keyCode === Keys.left || event.keyCode === Keys.right)) {\n this.handleActionButtonFocus(parent, event.keyCode);\n }\n if (event.keyCode === Keys.tab) {\n this.keepFocusWithinComponent(target, event);\n }\n }\n ngAfterContentInit() {\n this.bubble('close', this.titlebarContent);\n if (this.titlebarContent) {\n this.titlebarContent.id = this.titleId;\n }\n }\n ngAfterViewInit() {\n this.handleInitialFocus();\n this.bubble('close', this.titlebarView);\n this.bubble('action', this.actionsView);\n if (this.titlebarView || this.titlebarContent) {\n //Needed for Dialogs created via service\n this._renderer.setAttribute(this._elRef.nativeElement.querySelector('.k-dialog'), 'aria-labelledby', this.titleId);\n }\n }\n ngOnInit() {\n this._renderer.removeAttribute(this._elRef.nativeElement, 'title');\n }\n ngOnDestroy() {\n this.subscriptions.forEach(s => s.unsubscribe());\n this.subscriptions = [];\n }\n /**\n * Focuses the wrapper of the Dialog component.\n */\n focus() {\n const wrapper = this._elRef.nativeElement;\n if (isPresent(wrapper)) {\n wrapper.focus();\n }\n }\n /**\n * @hidden\n */\n handleInitialFocus() {\n const wrapper = this._elRef.nativeElement;\n const primaryButton = wrapper.querySelector('.k-primary');\n if (this.autoFocusedElement) {\n const initiallyFocusedElement = wrapper.querySelector(this.autoFocusedElement);\n if (initiallyFocusedElement) {\n initiallyFocusedElement.focus();\n }\n }\n else if (this.shouldFocusPrimary(primaryButton)) {\n primaryButton.focus();\n }\n else {\n wrapper.focus();\n }\n }\n /**\n * @hidden\n */\n handleActionButtonFocus(parent, key) {\n const focusableActionButtons = this.getAllFocusableChildren(parent);\n for (let i = 0; i < focusableActionButtons.length; i++) {\n const current = focusableActionButtons[i];\n if (current === document.activeElement) {\n if (key === Keys.left && i > 0) {\n focusableActionButtons[i - 1].focus();\n break;\n }\n if (key === Keys.right && i < focusableActionButtons.length - 1) {\n focusableActionButtons[i + 1].focus();\n break;\n }\n }\n }\n }\n /**\n * @hidden\n */\n keepFocusWithinComponent(target, event) {\n const firstFocusable = this._elRef.nativeElement;\n const lastFocusable = this.getLastFocusableElement(firstFocusable);\n const tabBeforeFirstFocusable = target === firstFocusable && event.shiftKey;\n const tabAfterLastFocusable = !event.shiftKey && isPresent(lastFocusable) && target === lastFocusable;\n const tabWithNoFocusable = !isPresent(lastFocusable) && !event.shiftKey;\n if (tabBeforeFirstFocusable || tabWithNoFocusable) {\n event.preventDefault();\n firstFocusable.focus();\n }\n if (tabAfterLastFocusable) {\n event.preventDefault();\n lastFocusable.focus();\n }\n }\n /**\n * @hidden\n */\n shouldFocusPrimary(el) {\n return isPresent(el) && isFocusable(el);\n }\n /**\n * @hidden\n */\n getAllFocusableChildren(parent) {\n return parent.querySelectorAll(focusableSelector);\n }\n /**\n * @hidden\n */\n getLastFocusableElement(parent) {\n const all = this.getAllFocusableChildren(parent);\n return all.length > 0 ? all[all.length - 1] : null;\n }\n /**\n * @hidden\n */\n generateTitleId() {\n return 'kendo-dialog-title-' + Math.ceil(Math.random() * 1000000).toString();\n }\n get wrapperClass() {\n return true;\n }\n get styles() {\n const styles = {};\n if (this.width) {\n styles.width = createValueWithUnit(this.width);\n }\n if (this.height) {\n styles.height = createValueWithUnit(this.height);\n }\n if (this.minWidth) {\n styles.minWidth = createValueWithUnit(this.minWidth);\n }\n if (this.maxWidth) {\n styles.maxWidth = createValueWithUnit(this.maxWidth);\n }\n if (this.minHeight) {\n styles.minHeight = createValueWithUnit(this.minHeight);\n }\n if (this.maxHeight) {\n styles.maxHeight = createValueWithUnit(this.maxHeight);\n }\n return styles;\n }\n bubble(eventName, component) {\n if (component) {\n const emit = e => this[eventName].emit(e);\n const s = component[eventName].subscribe(emit);\n this.subscriptions.push(s);\n }\n }\n}\nDialogComponent.decorators = [\n { type: Component, args: [{\n animations: [\n trigger('overlayAppear', [\n state('in', style({ opacity: 1 })),\n transition('void => *', [style({ opacity: 0.1 }), animate('.3s cubic-bezier(.2, .6, .4, 1)')])\n ]),\n trigger('dialogSlideInAppear', [\n state('in', style({ transform: 'translate(0, 0)' })),\n transition('void => *', [style({ transform: 'translate(0, -10%)' }), animate('.3s cubic-bezier(.2, 1, .2, 1)')])\n ])\n ],\n exportAs: 'kendoDialog',\n providers: [\n LocalizationService,\n {\n provide: DIALOG_LOCALIZATION_SERVICE,\n useExisting: LocalizationService\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.dialog'\n }\n ],\n selector: 'kendo-dialog',\n template: `\n
\n\n
\n {{ title }}\n \n\n
\n \n \n
\n\n \n \n
\n `\n },] },\n];\n/** @nocollapse */\nDialogComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: LocalizationService }\n];\nDialogComponent.propDecorators = {\n actions: [{ type: Input }],\n actionsLayout: [{ type: Input }],\n autoFocusedElement: [{ type: Input }],\n title: [{ type: Input }],\n width: [{ type: Input }],\n minWidth: [{ type: Input }],\n maxWidth: [{ type: Input }],\n height: [{ type: Input }],\n minHeight: [{ type: Input }],\n maxHeight: [{ type: Input }],\n action: [{ type: Output }],\n close: [{ type: Output }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n tabIndex: [{ type: HostBinding, args: ['attr.tabIndex',] }],\n titlebarContent: [{ type: ContentChild, args: [DialogTitleBarComponent,] }],\n titlebarView: [{ type: ViewChild, args: [DialogTitleBarComponent,] }],\n actionsView: [{ type: ViewChild, args: [DialogActionsComponent,] }],\n onComponentKeydown: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n wrapperClass: [{ type: HostBinding, args: ['class.k-dialog-wrapper',] }]\n};\n\n/**\n * The base class which will be extended by a component that is provided as content through `content`\n * ([see example]({% slug service_dialog %}#toc-passing-title-content-and-actions-as-a-single-component)).\n */\nclass DialogContentBase {\n constructor(dialog) {\n this.dialog = dialog;\n }\n /**\n * @hidden\n */\n ngAfterViewInit() {\n if (this.dialogTitleBar) {\n // when opening component inside dialog with service AND the component has defined its own titlebar\n this.dialogTitleBar.close.pipe(filter((e) => !e.isDefaultPrevented())).subscribe(() => {\n this.dialog.close();\n });\n }\n if (this.dialogActions) {\n if (this.dialogActions.actions) {\n this.dialogActions.action.subscribe(action => this.dialog.dialog.instance.action.emit(action));\n }\n }\n }\n}\nDialogContentBase.propDecorators = {\n dialogTitleBar: [{ type: ViewChild, args: [DialogTitleBarComponent,] }],\n dialogActions: [{ type: ViewChild, args: [DialogActionsComponent,] }]\n};\n\n/**\n * @hidden\n */\nclass DialogContainerService {\n set container(container) {\n DialogContainerService.container = container;\n }\n get container() {\n return DialogContainerService.container;\n }\n}\nDialogContainerService.container = null;\nDialogContainerService.decorators = [\n { type: Injectable },\n];\n\n// tslint:disable:max-line-length\nconst isNotComponent = (component) => isString(component) || component instanceof TemplateRef;\nclass DialogInjector {\n constructor(getDialogRef, parentInjector) {\n this.getDialogRef = getDialogRef;\n this.parentInjector = parentInjector;\n }\n get(token, notFoundValue) {\n if (token === DialogRef) {\n return this.getDialogRef();\n }\n return this.parentInjector.get(token, notFoundValue);\n }\n}\n/**\n * A service for opening Dialog windows dynamically\n * ([see example]({% slug service_dialog %})).\n */\nclass DialogService {\n constructor(\n /**\n * @hidden\n */\n resolver, containerService) {\n this.resolver = resolver;\n this.containerService = containerService;\n }\n /**\n * Opens a Dialog window. Requires an element in the application that uses the\n * [`kendoDialogContainer`]({% slug api_dialog_dialogcontainerdirective %}) directive.\n * Created Dialogs will be mounted in the DOM directly after that element.\n *\n * @param {DialogAction} options - The options that define the Dialog.\n * @returns {DialogRef} - A reference to the Dialog object and the convenience properties.\n *\n * @example\n *\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n *
\n * `\n * })\n * export class AppComponent {\n * constructor( private dialogService: DialogService ) {}\n *\n * public open() {\n * var dialog = this.dialogService.open({\n * title: \"Please confirm\",\n * content: \"Are you sure?\",\n * actions: [\n * { text: \"No\" },\n * { text: \"Yes\", primary: true }\n * ]\n * });\n *\n * dialog.result.subscribe((result) => {\n * if (result instanceof DialogCloseResult) {\n * console.log(\"close\");\n * } else {\n * console.log(\"action\", result);\n * }\n * });\n * }\n * }\n * ```\n *\n */\n open(options) {\n const factory = this.resolver.resolveComponentFactory(DialogComponent);\n const container = options.appendTo || this.containerService.container;\n if (!container) {\n throw new Error(`\nCannot attach dialog to the page.\nAdd an element that uses the kendoDialogContainer directive, or set the 'appendTo' property.\nSee https://www.telerik.com/kendo-angular-ui/components/dialogs/dialog/service/.\n `);\n }\n // create DialogRef to (1) pass as result, (2) provide through injector\n const dialogRef = {\n close: () => {\n /* noop */\n },\n content: null,\n dialog: null,\n result: null\n };\n return this.initializeDialog(options.content, factory, container, dialogRef, options);\n }\n initializeDialog(component, factory, container, dialogRef, options) {\n const content = this.contentFrom(component, container, dialogRef);\n const dialog = container.createComponent(factory, undefined, undefined, content.nodes);\n dialogRef.dialog = dialog;\n dialog.changeDetectorRef.markForCheck();\n // copy @Input options to dialog instance\n this.applyOptions(dialog.instance, options);\n // create close handler and result stream\n const apiClose = new Subject();\n const close = (e) => {\n if (e instanceof PreventableEvent) {\n e = new DialogCloseResult();\n }\n apiClose.next(e || new DialogCloseResult());\n if (content.componentRef) {\n content.componentRef.destroy();\n }\n dialog.destroy();\n };\n const result = merge(apiClose, \n // triggered when the titlebar or actions are defined in DialogSettings\n merge(dialog.instance.close, dialog.instance.action).pipe(map(e => (e instanceof PreventableEvent ? new DialogCloseResult() : e)), filter(e => {\n if (options.preventAction) {\n // add dialogRef only when using component\n const dialogRefParameter = isNotComponent(component) ? undefined : dialogRef;\n return !options.preventAction(e, dialogRefParameter);\n }\n return true;\n }))).pipe(take(1), \n // Takes care for multiple subscriptions:\n // We subscribe internaly and the user may subscribe to get a close result - dialog.result.subscribe().\n // This causes multiple subscriptions to the same source and thus multiple emissions. share() solves that.\n share());\n result.subscribe(close);\n dialogRef.close = close;\n dialogRef.result = result;\n if (component && isDevMode()) {\n const hasContentTitle = content.nodes[0] && content.nodes[0].length > 0;\n const hasContentActions = content.nodes[2] && content.nodes[2].length > 0;\n const multipleTitles = options.title && hasContentTitle;\n const multipleActions = options.actions && hasContentActions;\n if (component.prototype instanceof DialogContentBase) {\n // content component extends DialogContentBase\n if (multipleTitles || multipleActions) {\n console.warn(`\n Multiple Title and/or Actions configurations detected.\n When using a component as content, provide the title and actions either in the component's markup\n or via the title and actions properties of the DialogSettings object, but not both.\n See https://www.telerik.com/kendo-angular-ui/components/dialogs/dialog/service/#toc-passing-title-content-and-actions-as-a-single-component'`);\n }\n }\n else {\n if (hasContentTitle || hasContentActions) {\n console.warn(`\n When Title and/or Actions markup is provided in content component's template,\n the component needs to inherit the DialogContentBase class to ensure that close and result events are properly hooked.\n See https://www.telerik.com/kendo-angular-ui/components/dialogs/dialog/service/#toc-passing-title-content-and-actions-as-a-single-component'`);\n }\n }\n }\n return dialogRef;\n }\n applyOptions(instance, options) {\n instance.title = options.title;\n instance.actions = options.actions;\n instance.actionsLayout = options.actionsLayout || 'stretched';\n instance.width = options.width;\n instance.minWidth = options.minWidth;\n instance.maxWidth = options.maxWidth;\n instance.height = options.height;\n instance.minHeight = options.minHeight;\n instance.maxHeight = options.maxHeight;\n instance.autoFocusedElement = options.autoFocusedElement;\n instance.closeTitle = options.closeTitle;\n if (options.content instanceof TemplateRef) {\n instance.contentTemplate = options.content;\n }\n }\n contentFrom(content, container, dialogRef) {\n const renderer = container.injector.get(Renderer2);\n let nodes = [];\n let titleNodes = [];\n let actionNodes = [];\n let componentRef = null;\n if (typeof content === 'string') {\n nodes = [renderer.createText(content)];\n }\n else if (content && !(content instanceof TemplateRef)) {\n // Component\n const injector = new DialogInjector(() => dialogRef, container.injector);\n const factory = this.resolver.resolveComponentFactory(content);\n componentRef = container.createComponent(factory, undefined, injector);\n titleNodes = Array.from(componentRef.location.nativeElement.querySelectorAll('kendo-dialog-titlebar'));\n nodes = [componentRef.location.nativeElement];\n actionNodes = Array.from(componentRef.location.nativeElement.querySelectorAll('kendo-dialog-actions'));\n dialogRef.content = componentRef;\n }\n return {\n componentRef,\n nodes: [\n titleNodes,\n nodes,\n actionNodes // \n ]\n };\n }\n}\nDialogService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nDialogService.ctorParameters = () => [\n { type: ComponentFactoryResolver },\n { type: DialogContainerService, decorators: [{ type: Inject, args: [DialogContainerService,] }] }\n];\n\n/**\n * @hidden\n */\nlet newZIndex = 10002;\n/**\n * @hidden\n */\nconst DEFAULT_OPTIONS = {\n draggable: true,\n height: null,\n left: null,\n minHeight: 100,\n minWidth: 120,\n position: 'absolute',\n resizable: true,\n state: 'default',\n top: null,\n width: null\n};\n/**\n * @hidden\n */\nconst createMoveStream = (el, ev) => mouseDown => {\n return el.kendoDrag\n .pipe(takeUntil(el.kendoRelease.pipe(tap(() => { ev.emit(); }))), map(({ pageX, pageY }) => ({\n originalX: mouseDown.pageX,\n originalY: mouseDown.pageY,\n pageX,\n pageY\n })));\n};\n/**\n * @hidden\n */\nclass DragResizeService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.close = new EventEmitter();\n this.focus = new EventEmitter();\n this.change = new EventEmitter();\n this.stateChange = new EventEmitter();\n this.dragStart = new EventEmitter();\n this.dragEnd = new EventEmitter();\n this.resizeStart = new EventEmitter();\n this.resizeEnd = new EventEmitter();\n this.options = Object.assign({}, DEFAULT_OPTIONS);\n this.lastAction = null;\n this.subscriptions = new Subscription();\n this.dragSubscription = new Subscription();\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n if (this.dragSubscription) {\n this.dragSubscription.unsubscribe();\n }\n }\n init(el) {\n const state$$1 = this.options.state;\n let options = this.options;\n this.window = el;\n if (state$$1 !== 'default') {\n this.restoreOptions = Object.assign({}, options);\n }\n if (state$$1 === 'minimized') {\n options.height = 0;\n options.minHeight = 0;\n }\n if (state$$1 === 'maximized') {\n options.position = 'fixed';\n }\n }\n onDrag(el) {\n this.subscriptions.add(this.ngZone.runOutsideAngular(() => {\n let startPosition;\n let dragStarted;\n this.dragSubscription = el.kendoPress\n .pipe(tap((ev) => {\n if (!ev.isTouch) {\n preventDefault(ev);\n }\n this.focus.emit();\n startPosition = this.currentPosition();\n dragStarted = false;\n }), switchMap(createMoveStream(el, this.dragEnd)))\n .subscribe(({ pageX, pageY, originalX, originalY }) => {\n if (!dragStarted) {\n this.ensureWidth();\n this.dragStart.emit();\n dragStarted = true;\n }\n this.handleDrag({\n originalX, originalY,\n pageX, pageY, startPosition\n });\n });\n }));\n }\n handleDrag({ originalX, originalY, pageX, pageY, startPosition }) {\n this.options.left = startPosition.x + pageX - originalX;\n this.options.top = startPosition.y + pageY - originalY;\n if (this.options.state === 'minimized' && isPresent(this.restoreOptions)) {\n this.restoreOptions.left = this.options.left;\n this.restoreOptions.top = this.options.top;\n }\n this.change.emit({\n left: startPosition.x + pageX - originalX,\n top: startPosition.y + pageY - originalY\n });\n }\n onResize(handle, direction) {\n this.subscriptions.add(this.ngZone.runOutsideAngular(() => {\n let startOffsetAndPosition;\n let resizeStarted = false;\n handle.kendoPress.pipe(tap((ev) => {\n preventDefault(ev);\n this.focus.emit();\n startOffsetAndPosition = this.currentOffsetAndPosition();\n resizeStarted = false;\n }), switchMap(createMoveStream(handle, this.resizeEnd)))\n .subscribe(({ pageX, pageY, originalX, originalY }) => {\n if (!resizeStarted) {\n this.resizeStart.emit(direction);\n resizeStarted = true;\n }\n let deltaX = pageX - originalX;\n let deltaY = pageY - originalY;\n this.handleResize(startOffsetAndPosition, direction, deltaX, deltaY);\n });\n }));\n }\n handleResize(initial, dir, deltaX, deltaY) {\n const old = this.options;\n let ev = {};\n if (dir.indexOf('e') >= 0) {\n const newWidth = initial.width + deltaX;\n if (newWidth !== old.width && newWidth >= old.minWidth) {\n ev.width = newWidth;\n }\n }\n if (dir.indexOf('n') >= 0) {\n const newHeight = initial.height - deltaY;\n const newTop = initial.y + deltaY;\n if (newHeight !== old.height && newHeight >= old.minHeight && newTop !== old.top) {\n ev.height = newHeight;\n ev.top = newTop;\n }\n }\n if (dir.indexOf('s') >= 0) {\n const newHeight = initial.height + deltaY;\n if (newHeight !== old.height && newHeight >= old.minHeight) {\n ev.height = newHeight;\n }\n }\n if (dir.indexOf('w') >= 0) {\n const newLeft = initial.x + deltaX;\n const newWidth = initial.width - deltaX;\n if (newWidth !== old.width && newWidth >= old.minWidth && newLeft !== old.left) {\n ev.width = newWidth;\n ev.left = newLeft;\n }\n }\n if (isPresent(ev.width) || isPresent(ev.height)) {\n OFFSET_STYLES.forEach((style$$1) => {\n if (isPresent(ev[style$$1])) {\n this.options[style$$1] = ev[style$$1];\n }\n });\n this.change.emit(ev);\n }\n }\n restoreAction() {\n this.lastAction = 'restore';\n this.defaultState();\n }\n defaultState() {\n if (isPresent(this.restoreOptions)) {\n this.options = Object.assign({}, this.restoreOptions);\n }\n this.options.state = 'default';\n this.stateChange.emit('default');\n }\n storeOptions() {\n this.restoreOptions = Object.assign({}, this.options);\n }\n maximizeAction() {\n this.lastAction = 'maximize';\n this.maximizeState();\n }\n maximizeState() {\n this.storeOptions();\n const wnd = this.windowViewPort;\n this.options = Object.assign({}, this.options, {\n height: wnd.height,\n left: 0,\n position: 'fixed',\n state: 'maximized',\n top: 0,\n width: wnd.width\n });\n this.stateChange.emit('maximized');\n }\n minimizeAction() {\n this.lastAction = 'minimize';\n this.minimizeState();\n }\n minimizeState() {\n this.storeOptions();\n this.options = Object.assign({}, this.options, {\n height: null,\n minHeight: 0,\n state: 'minimized'\n });\n this.stateChange.emit('minimized');\n }\n /**\n * Handles manual changes of the 'state' property.\n * Required to distinguish them from action clicks.\n */\n applyManualState() {\n const state$$1 = this.options.state;\n switch (state$$1) {\n case 'default':\n this.clearHeight();\n this.defaultState();\n break;\n case 'maximized':\n this.clearHeight();\n this.maximizeState();\n break;\n case 'minimized':\n this.minimizeState();\n break;\n default:\n break;\n }\n }\n closeAction() {\n this.close.emit();\n }\n ensureWidth() {\n const windowOffset = offset(this.window.nativeElement);\n if (!isPresent(this.options.width)) {\n this.options.width = windowOffset.width;\n this.change.emit({ width: windowOffset.width });\n }\n }\n clearHeight() {\n if (this.options.height === 0) {\n delete this.options.height;\n }\n if (this.options.minHeight === 0) {\n delete this.options.minHeight;\n }\n }\n center() {\n if (this.options.state === 'maximized') {\n return;\n }\n let scroll = scrollPosition(this.window.nativeElement);\n let wnd = this.windowViewPort;\n let wrapper = offset(this.window.nativeElement);\n let ev = {};\n if (!isPresent(this.options.left)) {\n this.options.left = scroll.x + Math.max(0, (wnd.width - wrapper.width) / 2);\n ev.left = this.options.left;\n }\n if (!isPresent(this.options.top)) {\n this.options.top = scroll.y + Math.max(0, (wnd.height - wrapper.height) / 2);\n ev.top = this.options.top;\n }\n this.change.emit(ev);\n }\n currentOffsetAndPosition() {\n const o = this.options;\n const off = offset(this.window.nativeElement);\n return Object.assign({}, this.currentPosition(), {\n height: o.height ? o.height : off.height,\n width: o.width ? o.width : off.width\n });\n }\n currentPosition() {\n const o = this.options;\n if (!o.top || !o.left) {\n this.setPosition();\n }\n return {\n x: this.options.left,\n y: this.options.top\n };\n }\n setPosition() {\n const wrapper = positionWithScroll(this.window.nativeElement, getDocumentElement(this.window.nativeElement));\n this.options.left = wrapper.left;\n this.options.top = wrapper.top;\n }\n setRestoreOption(style$$1, value) {\n if (isPresent(this.restoreOptions)) {\n this.restoreOptions[style$$1] = value;\n }\n }\n get nextPossibleZIndex() {\n return newZIndex;\n }\n get nextZIndex() {\n return newZIndex++;\n }\n get windowViewPort() {\n return getWindowViewPort(this.window.nativeElement);\n }\n}\nDragResizeService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nDragResizeService.ctorParameters = () => [\n { type: NgZone }\n];\n\n/**\n * @hidden\n */\nclass ResizeHandleDirective {\n constructor(draggable, el, renderer, service) {\n this.draggable = draggable;\n this.el = el;\n this.renderer = renderer;\n this.service = service;\n this.subscriptions = new Subscription();\n }\n get hostClass() {\n return true;\n }\n ngOnInit() {\n this.setDisplay();\n this.renderer.addClass(this.el.nativeElement, 'k-resize-' + this.direction);\n this.subscriptions.add(of(this.draggable).subscribe(handle => {\n this.service.onResize(handle, this.direction);\n }));\n this.subscriptions.add(this.service.resizeStart.subscribe((dir) => {\n if (dir !== this.direction) {\n this.setDisplay('none');\n }\n }));\n this.subscriptions.add(this.service.dragStart.subscribe(() => {\n this.setDisplay('none');\n }));\n this.subscriptions.add(merge(this.service.resizeEnd, this.service.dragEnd).subscribe(() => {\n this.setDisplay('block');\n }));\n this.subscriptions.add(this.service.stateChange.subscribe((state$$1) => {\n this.setDisplay(state$$1 === 'default' ? 'block' : 'none');\n }));\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n setDisplay(value = 'block') {\n this.renderer.setStyle(this.el.nativeElement, 'display', this.service.options.state === 'default' ? value : 'none');\n }\n}\nResizeHandleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoWindowResizeHandle]'\n },] },\n];\n/** @nocollapse */\nResizeHandleDirective.ctorParameters = () => [\n { type: DraggableDirective, decorators: [{ type: Host }] },\n { type: ElementRef },\n { type: Renderer2 },\n { type: DragResizeService }\n];\nResizeHandleDirective.propDecorators = {\n direction: [{ type: Input }],\n hostClass: [{ type: HostBinding, args: ['class.k-resize-handle',] }]\n};\n\nclass WindowTitleBarComponent {\n constructor(el, service, ngZone) {\n this.el = el;\n this.ngZone = ngZone;\n this.service = service;\n }\n ngOnInit() {\n this.dragDirective = new DraggableDirective(this.el, this.ngZone);\n this.dragDirective.ngOnInit();\n if (this.isDraggable) {\n this.subscribeDrag();\n }\n this.subscribeStateChange();\n }\n ngOnDestroy() {\n this.dragDirective.ngOnDestroy();\n this.unsubscribeDrag();\n this.unsubscribeState();\n }\n /**\n * @hidden\n */\n subscribeDrag() {\n this.unsubscribeDrag();\n this.dragSubscription = of(this.dragDirective).subscribe(titleBar => {\n this.service.onDrag(titleBar);\n });\n }\n /**\n * @hidden\n */\n subscribeStateChange() {\n this.stateSubscription = this.service.stateChange.subscribe((state$$1) => {\n if (this.service.options.draggable) {\n if (state$$1 === 'maximized') {\n this.unsubscribeDrag();\n }\n else {\n this.subscribeDrag();\n }\n }\n });\n }\n /**\n * @hidden\n */\n unsubscribeDrag() {\n if (this.dragSubscription) {\n this.service.dragSubscription.unsubscribe();\n this.dragSubscription.unsubscribe();\n this.dragSubscription = null;\n }\n }\n /**\n * @hidden\n */\n unsubscribeState() {\n if (this.stateSubscription) {\n this.stateSubscription.unsubscribe();\n this.stateSubscription = null;\n }\n }\n get className() {\n return true;\n }\n get touchAction() {\n if (this.isDraggable) {\n return 'none';\n }\n }\n /**\n * @hidden\n */\n handle(ev) {\n const target = ev.target;\n const state$$1 = this.service.options.state;\n if (!hasClasses(target, 'k-icon') && !isFocusable(target, false) && this.service.options.resizable) {\n if (state$$1 === 'default') {\n this.service.maximizeAction();\n }\n else if (state$$1 === 'maximized') {\n this.service.restoreAction();\n }\n }\n }\n get isDraggable() {\n const options = this.service.options;\n return options.draggable && options.state !== 'maximized';\n }\n}\nWindowTitleBarComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-window-titlebar',\n template: `\n \n \n
\n `\n },] },\n];\n/** @nocollapse */\nWindowTitleBarComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: DragResizeService },\n { type: NgZone }\n];\nWindowTitleBarComponent.propDecorators = {\n template: [{ type: Input }],\n className: [{ type: HostBinding, args: ['class.k-window-titlebar',] }, { type: HostBinding, args: ['class.k-dialog-titlebar',] }],\n touchAction: [{ type: HostBinding, args: ['style.touch-action',] }],\n handle: [{ type: HostListener, args: ['dblclick', ['$event'],] }]\n};\n\n/**\n * @hidden\n */\nclass NavigationService {\n constructor(window) {\n this.window = window;\n }\n process(ev) {\n const key = ev.keyCode;\n switch (key) {\n case Keys.up:\n case Keys.down:\n case Keys.left:\n case Keys.right: {\n ev.preventDefault();\n this.handleArrow(key, ev);\n break;\n }\n case Keys.esc:\n this.handleEscape();\n break;\n default:\n break;\n }\n }\n handleArrow(key, ev) {\n const options = this.window.options;\n if (ev.altKey) {\n this.handleStateChange(key, options.state);\n return;\n }\n if ((ev.ctrlKey || ev.metaKey) && options.state === 'default') {\n this.handleResize(key);\n }\n else {\n this.handleDrag(key);\n }\n }\n handleEscape() {\n this.window.closeAction();\n }\n handleDrag(key) {\n let options = this.window.options;\n if (!options.draggable) {\n return;\n }\n const offset$$1 = this.window.currentOffsetAndPosition();\n let restoreOptions = this.window.restoreOptions;\n let ev = {};\n let delta = 10;\n if (key === Keys.left || key === Keys.up) {\n delta *= -1;\n }\n switch (key) {\n case Keys.left:\n case Keys.right: {\n ev.left = offset$$1.x + delta;\n options.left = ev.left;\n break;\n }\n case Keys.up:\n case Keys.down: {\n ev.top = offset$$1.y + delta;\n options.top = ev.top;\n break;\n }\n default:\n break;\n }\n if (options.state === 'minimized' && isPresent(restoreOptions)) {\n restoreOptions.left = options.left;\n restoreOptions.top = options.top;\n }\n this.window.change.emit(ev);\n }\n handleResize(key) {\n const options = this.window.options;\n if (!options.resizable) {\n return;\n }\n const offset$$1 = this.window.currentOffsetAndPosition();\n let newWidth;\n let newHeight;\n let ev = {};\n let delta = 10;\n if (key === Keys.left || key === Keys.up) {\n delta *= -1;\n }\n switch (key) {\n case Keys.left:\n case Keys.right: {\n newWidth = offset$$1.width + delta;\n if (newWidth !== options.width && newWidth >= options.minWidth) {\n ev.width = newWidth;\n }\n break;\n }\n case Keys.up:\n case Keys.down: {\n newHeight = offset$$1.height + delta;\n if (newHeight !== options.height && newHeight >= options.minHeight) {\n ev.height = newHeight;\n }\n break;\n }\n default:\n break;\n }\n if (isPresent(ev.width) || isPresent(ev.height)) {\n OFFSET_STYLES.forEach((style$$1) => {\n if (isPresent(ev[style$$1])) {\n this.window.options[style$$1] = ev[style$$1];\n }\n });\n this.window.change.emit(ev);\n }\n }\n handleStateChange(key, state$$1) {\n if ((state$$1 === 'minimized' && key === Keys.up) ||\n (state$$1 === 'maximized' && key === Keys.down)) {\n this.window.restoreAction();\n return;\n }\n if (state$$1 === 'default') {\n if (key === Keys.up) {\n this.window.maximizeAction();\n }\n else if (key === Keys.down) {\n this.window.minimizeAction();\n }\n }\n }\n}\nNavigationService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nNavigationService.ctorParameters = () => [\n { type: DragResizeService }\n];\n\n/**\n * Represents the [Kendo UI Window component for Angular]({% slug overview_window_dialogs %}).\n */\nclass WindowComponent {\n constructor(el, renderer, service, navigation, ngZone, localization) {\n this.el = el;\n this.renderer = renderer;\n this.service = service;\n this.navigation = navigation;\n this.ngZone = ngZone;\n this.localization = localization;\n /**\n * Specifies if the content of the component is persisted in the DOM when minimized.\n * @default false\n */\n this.keepContent = false;\n /**\n * Fires when the user starts to move the Window.\n */\n this.dragStart = new EventEmitter();\n /**\n * Fires when the Window was moved by the user.\n */\n this.dragEnd = new EventEmitter();\n /**\n * Fires when the user starts to resize the Window.\n */\n this.resizeStart = new EventEmitter();\n /**\n * Fires when the Window was resized by the user.\n */\n this.resizeEnd = new EventEmitter();\n /**\n * Fires when the user closes the Window.\n */\n this.close = new EventEmitter();\n /**\n * Fires when the `width` property of the component was updated. The event is triggered only after the resizing\n * has ended. The event data contains the new width. Allows a two-way binding of the `width` property.\n */\n this.widthChange = new EventEmitter();\n /**\n * Fires when the `height` property of the component was updated. The event is triggered only after the resizing\n * has ended. The event data contains the new height. Allows a two-way binding of the `height` property.\n */\n this.heightChange = new EventEmitter();\n /**\n * Fires when the `top` property of the component was updated. The event is triggered only after the dragging\n * and resizing have ended. The event data contains the new top offset. Allows a two-way binding of the `top` property.\n */\n this.topChange = new EventEmitter();\n /**\n * Fires when the `left` property of the component was updated. The event is triggered only after the dragging\n * and resizing have ended. The event data contains the new left offset. Allows a two-way binding of the `left` property.\n */\n this.leftChange = new EventEmitter();\n /**\n * Fires when the `state` property of the component was updated. The event data contains the new state. Allows a\n * two-way binding of the `state` property.\n */\n this.stateChange = new EventEmitter();\n this.tabIndex = 0;\n this.draged = false;\n this.resized = false;\n this.windowSubscription = new Subscription();\n this.direction = this.localization.rtl ? 'rtl' : 'ltr';\n this.localizationChangeSubscription = this.localization.changes\n .subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');\n this.resizeDirections = RESIZE_DIRECTIONS;\n this.subscribeEvents();\n }\n /**\n * Specifies whether the user will be able to drag the component.\n * @default true\n */\n set draggable(value) {\n this.options.draggable = value;\n }\n get draggable() {\n return this.options.draggable;\n }\n /**\n * Specifies whether the user will be able to resize the component.\n * @default true\n */\n set resizable(value) {\n this.options.resizable = value;\n }\n get resizable() {\n return this.options.resizable;\n }\n /**\n * Specifies the initial state of the component.\n * If not specified, the value is set to `default`.\n *\n * The possible values are:\n * * `minimized`\n * * `maximized`\n * * `default`\n */\n set state(value) {\n this.options.state = value;\n }\n get state() {\n return this.options.state;\n }\n /**\n * Specifies the minimum width of the component.\n * The `minWidth` property has to be set in pixels.\n * @default 120\n */\n set minWidth(value) {\n this.setOption('minWidth', value);\n }\n get minWidth() {\n return this.options.minWidth;\n }\n /**\n * Specifies the minimum height of the Window.\n * The `minHeight` property has to be set in pixels.\n * @default 100\n */\n set minHeight(value) {\n this.setOption('minHeight', value);\n }\n get minHeight() {\n return this.options.minHeight;\n }\n /**\n * Specifies the width of the Window.\n * The `width` property has to be set in pixels.\n */\n set width(value) {\n this.setOption('width', value);\n }\n get width() {\n return this.options.width;\n }\n /**\n * Specifies the height of the Window.\n * The `height` property has to be set in pixels.\n */\n set height(value) {\n this.setOption('height', value);\n }\n get height() {\n return this.options.height;\n }\n /**\n * Specifies the initial top offset of the Window.\n * The `top` property has to be set in pixels.\n */\n set top(value) {\n this.setOption('top', value);\n }\n get top() {\n return this.options.top;\n }\n /**\n * Specifies the initial left offset of the Window.\n * Numeric values are treated as pixels.\n */\n set left(value) {\n this.setOption('left', value);\n }\n get left() {\n return this.options.left;\n }\n get closeButtonTitle() {\n if (this.messages && this.messages.closeTitle) {\n return this.messages.closeTitle;\n }\n return this.localization.get('closeTitle');\n }\n get restoreButtonTitle() {\n if (this.messages && this.messages.restoreTitle) {\n return this.messages.restoreTitle;\n }\n return this.localization.get('restoreTitle');\n }\n get maximizeButtonTitle() {\n if (this.messages && this.messages.maximizeTitle) {\n return this.messages.maximizeTitle;\n }\n return this.localization.get('maximizeTitle');\n }\n get minimizeButtonTitle() {\n if (this.messages && this.messages.minimizeTitle) {\n return this.messages.minimizeTitle;\n }\n return this.localization.get('minimizeTitle');\n }\n get hostClasses() {\n return true;\n }\n get dir() {\n return this.direction;\n }\n ngAfterViewInit() {\n this.setNextZIndex();\n this.handleInitialFocus();\n this.ngZone.runOutsideAngular(() => Promise.resolve(null).then(() => this.setInitialOffset()));\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.el.nativeElement, 'title');\n this.service.init(this.el);\n }\n ngOnChanges(changes) {\n OFFSET_STYLES.forEach((style$$1) => {\n if (isChanged(style$$1, changes)) {\n this.setStyle(style$$1, this.options[style$$1]);\n }\n });\n if (isChanged('draggable', changes)) {\n const titleBar = isPresent(this.titleBarContent) ? this.titleBarContent : this.titleBarView;\n if (isTruthy(changes.draggable.currentValue)) {\n titleBar.subscribeDrag();\n }\n else {\n titleBar.unsubscribeDrag();\n }\n }\n if (isChanged('state', changes)) {\n if (isPresent(this.service.lastAction)) {\n this.service.lastAction = null;\n }\n else {\n this.service.applyManualState();\n this.updateAllOffset();\n }\n }\n }\n ngOnDestroy() {\n if (this.windowSubscription) {\n this.windowSubscription.unsubscribe();\n }\n this.localizationChangeSubscription.unsubscribe();\n }\n /**\n * Focuses the wrapper of the Window component.\n */\n focus() {\n const wrapper = this.el.nativeElement;\n if (isPresent(wrapper)) {\n wrapper.focus();\n }\n }\n /**\n * Brings the current Window component on top of other Window components on the page.\n */\n bringToFront() {\n this.setNextZIndex();\n }\n /**\n * Manually updates the `width` or `height` option of the Window.\n * The required style will be applied to the Window wrapper element and the\n * corresponding property of the component instance will be updated.\n * This method is intended to be used for sizing dynamically created components using the\n * [`WindowService`]({% slug api_dialog_windowservice %})\n * @param {WindowDimensionSetting} dimension - The option that will be updated\n * @param {number} value - The value set in pixels\n */\n setDimension(dimension, value) {\n this.setOption(dimension, value);\n this.setStyle(dimension, value);\n }\n /**\n * Manually updates the `top` or `left` offset of the Window.\n * The required style will be applied to the Window wrapper element and the\n * corresponding property of the component instance will be updated.\n * This method is intended to be used for positioning dynamically created components using the\n * [`WindowService`]({% slug api_dialog_windowservice %})\n * @param {WindowOffsetSetting} offset - The option that will be updated\n * @param {number} value - The value set in pixels\n */\n setOffset(offset$$1, value) {\n this.setOption(offset$$1, value);\n this.setStyle(offset$$1, value);\n }\n get showDefaultTitleBar() {\n return !isPresent(this.titleBarContent);\n }\n get styleMinWidth() {\n return this.minWidth + 'px';\n }\n get styleMinHeight() {\n return this.minHeight + 'px';\n }\n get stylePosition() {\n return this.options.position;\n }\n get wrapperMaximizedClass() {\n return this.state === 'maximized';\n }\n get wrapperMinimizedClass() {\n return this.state === 'minimized';\n }\n /**\n * @hidden\n */\n onComponentKeydown(event) {\n if (hasClasses(event.target, WINDOW_CLASSES)) {\n this.navigation.process(event);\n }\n }\n /**\n * @hidden\n */\n onComponentFocus() {\n this.renderer.addClass(this.el.nativeElement, 'k-state-focused');\n this.setNextZIndex();\n }\n /**\n * @hidden\n */\n onComponentBlur() {\n this.renderer.removeClass(this.el.nativeElement, 'k-state-focused');\n }\n subscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.windowSubscription.add(this.service.focus.subscribe(() => {\n this.el.nativeElement.focus();\n }));\n this.windowSubscription.add(this.service.dragStart.subscribe(() => {\n this.draged = true;\n this.ngZone.run(() => {\n this.dragStart.emit();\n });\n }));\n this.windowSubscription.add(this.service.dragEnd.subscribe(() => {\n if (this.draged) {\n this.draged = false;\n this.ngZone.run(() => {\n this.dragEnd.emit();\n });\n }\n }));\n this.windowSubscription.add(this.service.close.subscribe(() => {\n this.close.emit();\n }));\n this.windowSubscription.add(this.service.resizeStart.subscribe(() => {\n this.resized = true;\n this.ngZone.run(() => {\n this.resizeStart.emit();\n });\n }));\n this.windowSubscription.add(this.service.resizeEnd.subscribe(() => {\n if (this.resized) {\n this.resized = false;\n this.ngZone.run(() => {\n this.resizeEnd.emit();\n });\n }\n }));\n this.windowSubscription.add(this.service.change.subscribe((ev) => {\n OFFSET_STYLES.forEach((style$$1) => {\n if (isPresent(ev[style$$1])) {\n this.setStyle(style$$1, ev[style$$1]);\n if (this.state !== 'maximized') {\n const emitter = this[style$$1 + 'Change'];\n if (emitter.observers.length) {\n this.ngZone.run(() => {\n emitter.emit(ev[style$$1]);\n });\n }\n }\n }\n });\n }));\n this.windowSubscription.add(this.service.stateChange.subscribe((state$$1) => {\n if (isPresent(this.service.lastAction)) {\n this.updateAllOffset();\n this.stateChange.emit(state$$1);\n }\n }));\n }\n setNextZIndex() {\n const currentZIndex = this.el.nativeElement.style['z-index'];\n const nextPossibleZIndex = this.service.nextPossibleZIndex;\n if (!currentZIndex || (nextPossibleZIndex - currentZIndex > 1)) {\n this.renderer.setStyle(this.el.nativeElement, \"z-index\", this.service.nextZIndex);\n }\n }\n setInitialOffset() {\n if (this.state !== 'maximized') {\n this.updateAllOffset();\n if (!isPresent(this.left) || !isPresent(this.top)) {\n this.service.center();\n }\n }\n else {\n const viewPort = this.service.windowViewPort;\n this.setStyle('width', viewPort.width);\n this.setStyle('height', viewPort.height);\n this.setStyle('top', 0);\n this.setStyle('left', 0);\n }\n }\n updateAllOffset() {\n OFFSET_STYLES.forEach((style$$1) => {\n if (isPresent(this[style$$1])) {\n this.setStyle(style$$1, this[style$$1]);\n }\n else {\n this.removeStyle(style$$1);\n }\n });\n }\n setStyle(style$$1, value) {\n this.renderer.setStyle(this.el.nativeElement, style$$1, value + 'px');\n }\n removeStyle(style$$1) {\n this.renderer.removeStyle(this.el.nativeElement, style$$1);\n }\n get options() {\n return this.service.options;\n }\n setOption(style$$1, value) {\n if (typeof value !== 'number' && typeof value !== 'string') {\n return;\n }\n const parsedValue = (typeof value === 'number') ? value : parseInt(value, 10);\n this.options[style$$1] = parsedValue;\n this.service.setRestoreOption(style$$1, parsedValue);\n }\n handleInitialFocus() {\n const wrapper = this.el.nativeElement;\n if (this.autoFocusedElement) {\n const initiallyFocusedElement = wrapper.querySelector(this.autoFocusedElement);\n if (initiallyFocusedElement) {\n initiallyFocusedElement.focus();\n }\n }\n else {\n this.focus();\n }\n }\n}\nWindowComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoWindow',\n providers: [\n DragResizeService,\n NavigationService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.window'\n }\n ],\n selector: 'kendo-window',\n template: `\n \n \n\n \n
{{ title }}
\n
\n \n \n \n \n
\n
\n \n\n
\n \n \n
\n\n \n
\n
\n
\n `\n },] },\n];\n/** @nocollapse */\nWindowComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: DragResizeService },\n { type: NavigationService },\n { type: NgZone },\n { type: LocalizationService }\n];\nWindowComponent.propDecorators = {\n autoFocusedElement: [{ type: Input }],\n title: [{ type: Input }],\n draggable: [{ type: Input }],\n resizable: [{ type: Input }],\n keepContent: [{ type: Input }],\n state: [{ type: Input }],\n minWidth: [{ type: Input }],\n minHeight: [{ type: Input }],\n width: [{ type: Input }],\n height: [{ type: Input }],\n top: [{ type: Input }],\n left: [{ type: Input }],\n dragStart: [{ type: Output }],\n dragEnd: [{ type: Output }],\n resizeStart: [{ type: Output }],\n resizeEnd: [{ type: Output }],\n close: [{ type: Output }],\n widthChange: [{ type: Output }],\n heightChange: [{ type: Output }],\n topChange: [{ type: Output }],\n leftChange: [{ type: Output }],\n stateChange: [{ type: Output }],\n tabIndex: [{ type: HostBinding, args: ['attr.tabIndex',] }],\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-window',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n titleBarView: [{ type: ViewChild, args: [WindowTitleBarComponent,] }],\n titleBarContent: [{ type: ContentChild, args: [WindowTitleBarComponent,] }],\n resizeHandles: [{ type: ViewChildren, args: [ResizeHandleDirective,] }],\n styleMinWidth: [{ type: HostBinding, args: ['style.minWidth',] }],\n styleMinHeight: [{ type: HostBinding, args: ['style.minHeight',] }],\n stylePosition: [{ type: HostBinding, args: ['style.position',] }],\n wrapperMaximizedClass: [{ type: HostBinding, args: ['class.k-window-maximized',] }],\n wrapperMinimizedClass: [{ type: HostBinding, args: ['class.k-window-minimized',] }],\n onComponentKeydown: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n onComponentFocus: [{ type: HostListener, args: ['focus',] }],\n onComponentBlur: [{ type: HostListener, args: ['blur',] }]\n};\n\nclass WindowMaximizeActionDirective extends Button {\n constructor(el, renderer, _service, localization, ngZone) {\n super(el, renderer, null, localization, ngZone);\n this.buttonType = 'button';\n this.window = _service;\n this.look = 'bare';\n this.icon = 'window-maximize';\n }\n /**\n * @hidden\n */\n onClick() {\n if (!this.isDisabled) {\n this.window.maximizeAction();\n }\n }\n get visible() {\n return this.window.options.state === 'default' ? 'inline-flex' : 'none';\n }\n}\nWindowMaximizeActionDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'kendoWindowMaximizeAction',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.button'\n }\n ],\n selector: 'button[kendoWindowMaximizeAction]' // tslint:disable-line\n },] },\n];\n/** @nocollapse */\nWindowMaximizeActionDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: DragResizeService, decorators: [{ type: Optional }] },\n { type: LocalizationService },\n { type: NgZone }\n];\nWindowMaximizeActionDirective.propDecorators = {\n window: [{ type: Input }],\n buttonType: [{ type: HostBinding, args: ['attr.type',] }],\n onClick: [{ type: HostListener, args: ['click',] }],\n visible: [{ type: HostBinding, args: ['style.display',] }]\n};\n\nclass WindowMinimizeActionDirective extends Button {\n constructor(el, renderer, _service, localization, ngZone) {\n super(el, renderer, null, localization, ngZone);\n this.buttonType = 'button';\n this.window = _service;\n this.look = 'bare';\n this.icon = 'window-minimize';\n }\n /**\n * @hidden\n */\n onClick() {\n if (!this.isDisabled) {\n this.window.minimizeAction();\n }\n }\n get visible() {\n return this.window.options.state === 'default' ? 'inline-flex' : 'none';\n }\n}\nWindowMinimizeActionDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'kendoWindowMinimizeAction',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.button'\n }\n ],\n selector: 'button[kendoWindowMinimizeAction]' // tslint:disable-line\n },] },\n];\n/** @nocollapse */\nWindowMinimizeActionDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: DragResizeService, decorators: [{ type: Optional }] },\n { type: LocalizationService },\n { type: NgZone }\n];\nWindowMinimizeActionDirective.propDecorators = {\n window: [{ type: Input }],\n buttonType: [{ type: HostBinding, args: ['attr.type',] }],\n onClick: [{ type: HostListener, args: ['click',] }],\n visible: [{ type: HostBinding, args: ['style.display',] }]\n};\n\nclass WindowCloseActionDirective extends Button {\n constructor(el, renderer, _service, localization, ngZone) {\n super(el, renderer, null, localization, ngZone);\n this.buttonType = 'button';\n this.window = _service;\n this.look = 'bare';\n this.icon = 'close';\n }\n /**\n * @hidden\n */\n onClick() {\n if (!this.isDisabled) {\n this.window.closeAction();\n }\n }\n}\nWindowCloseActionDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'kendoWindowCloseAction',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.button'\n }\n ],\n selector: 'button[kendoWindowCloseAction]' // tslint:disable-line\n },] },\n];\n/** @nocollapse */\nWindowCloseActionDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: DragResizeService, decorators: [{ type: Optional }] },\n { type: LocalizationService },\n { type: NgZone }\n];\nWindowCloseActionDirective.propDecorators = {\n window: [{ type: Input }],\n buttonType: [{ type: HostBinding, args: ['attr.type',] }],\n onClick: [{ type: HostListener, args: ['click',] }]\n};\n\nclass WindowRestoreActionDirective extends Button {\n constructor(el, renderer, _service, localization, ngZone) {\n super(el, renderer, null, localization, ngZone);\n this.buttonType = 'button';\n this.window = _service;\n this.look = 'bare';\n this.icon = 'window-restore';\n }\n /**\n * @hidden\n */\n onClick() {\n if (!this.isDisabled) {\n this.window.restoreAction();\n }\n }\n get visible() {\n return this.window.options.state === 'default' ? 'none' : 'inline-flex';\n }\n}\nWindowRestoreActionDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'kendoWindowRestoreAction',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.button'\n }\n ],\n selector: 'button[kendoWindowRestoreAction]' // tslint:disable-line\n },] },\n];\n/** @nocollapse */\nWindowRestoreActionDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: DragResizeService, decorators: [{ type: Optional }] },\n { type: LocalizationService },\n { type: NgZone }\n];\nWindowRestoreActionDirective.propDecorators = {\n window: [{ type: Input }],\n buttonType: [{ type: HostBinding, args: ['attr.type',] }],\n onClick: [{ type: HostListener, args: ['click',] }],\n visible: [{ type: HostBinding, args: ['style.display',] }]\n};\n\n/**\n * The settings for the Window actions when the Window is opened through `WindowService`\n * ([see example]({% slug api_dialog_windowservice %}#toc-open)).\n */\nclass WindowSettings {\n}\n/**\n * Indicates that the **Close** button of a Window that is opened through `WindowService` is clicked.\n */\nclass WindowCloseResult {\n}\n/**\n * Holds references to the object instance of the Window.\n * Controls the Windows that were opened through `WindowService`\n * ([see example]({% slug api_dialog_windowservice %}#toc-open)).\n */\nclass WindowRef {\n}\n\n/**\n * @hidden\n */\nclass WindowContainerService {\n set container(container) {\n WindowContainerService.container = container;\n }\n get container() {\n return WindowContainerService.container;\n }\n}\nWindowContainerService.container = null;\nWindowContainerService.decorators = [\n { type: Injectable },\n];\n\nclass WindowInjector {\n constructor(getWindowRef, parentInjector) {\n this.getWindowRef = getWindowRef;\n this.parentInjector = parentInjector;\n }\n get(token, notFoundValue) {\n if (token === WindowRef) {\n return this.getWindowRef();\n }\n return this.parentInjector.get(token, notFoundValue);\n }\n}\n/**\n * A service for opening Windows dynamically\n * ([see example]({% slug service_window %})).\n */\nclass WindowService {\n constructor(\n /**\n * @hidden\n */\n resolver, containerService) {\n this.resolver = resolver;\n this.containerService = containerService;\n }\n /**\n * Opens a Window component.\n *\n * @param {WindowSettings} settings - The settings that define the Window.\n * @returns {WindowRef} - A reference to the Window object.\n *\n * @example\n *\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n *
\n * `\n * })\n * export class AppComponent {\n * constructor( private windowService: WindowService ) {}\n *\n * public open() {\n * var window = this.windowService.open({\n * title: \"My window\",\n * content: \"My content!\"\n * });\n *\n * window.result.subscribe((result) => {\n * if (result instanceof WindowCloseResult) {\n * console.log(\"Window was closed\");\n * }\n * });\n * }\n * }\n * ```\n *\n */\n open(settings) {\n const factory = this.resolver.resolveComponentFactory(WindowComponent);\n const container = settings.appendTo || this.containerService.container;\n if (!container) {\n throw new Error(`Cannot attach window to the page.\n Add an element that uses the kendoWindowContainer directive, or set the 'appendTo' property.\n See https://www.telerik.com/kendo-angular-ui/components/dialogs/window/service/\n `);\n }\n const windowRef = {\n close: () => { },\n content: null,\n result: null,\n window: null\n };\n const content = this.contentFrom(settings.content, container, windowRef);\n const window = container.createComponent(factory, undefined, undefined, content.nodes);\n windowRef.window = window;\n this.applyOptions(window.instance, settings);\n const apiClose = new Subject();\n const close = (e) => {\n apiClose.next(e || new WindowCloseResult());\n if (content.componentRef) {\n content.componentRef.destroy();\n }\n window.destroy();\n };\n const result = merge(apiClose, window.instance.close).pipe(take(1));\n result.subscribe(close);\n windowRef.close = close;\n windowRef.result = result;\n window.changeDetectorRef.markForCheck();\n return windowRef;\n }\n applyOptions(instance, options) {\n if (isPresent(options.title)) {\n instance.title = options.title;\n }\n if (isPresent(options.keepContent)) {\n instance.keepContent = options.keepContent;\n }\n if (isPresent(options.width)) {\n instance.width = options.width;\n }\n if (isPresent(options.minWidth)) {\n instance.minWidth = options.minWidth;\n }\n if (isPresent(options.height)) {\n instance.height = options.height;\n }\n if (isPresent(options.minHeight)) {\n instance.minHeight = options.minHeight;\n }\n if (isPresent(options.left)) {\n instance.left = options.left;\n }\n if (isPresent(options.top)) {\n instance.top = options.top;\n }\n if (isPresent(options.draggable)) {\n instance.draggable = options.draggable;\n }\n if (isPresent(options.resizable)) {\n instance.resizable = options.resizable;\n }\n if (isPresent(options.messages && options.messages.closeTitle)) {\n instance.messages.closeTitle = options.messages.closeTitle;\n }\n if (isPresent(options.messages && options.messages.restoreTitle)) {\n instance.messages.restoreTitle = options.messages.restoreTitle;\n }\n if (isPresent(options.messages && options.messages.maximizeTitle)) {\n instance.messages.maximizeTitle = options.messages.maximizeTitle;\n }\n if (isPresent(options.messages && options.messages.minimizeTitle)) {\n instance.messages.minimizeTitle = options.messages.minimizeTitle;\n }\n if (isPresent(options.autoFocusedElement)) {\n instance.autoFocusedElement = options.autoFocusedElement;\n }\n if (isPresent(options.state)) {\n instance.state = options.state;\n if (options.state === 'minimized') {\n instance.keepContent = true;\n }\n }\n if (options.content instanceof TemplateRef) {\n instance.contentTemplate = options.content;\n }\n if (options.titleBarContent instanceof TemplateRef) {\n instance.titleBarTemplate = options.titleBarContent;\n }\n }\n contentFrom(content, container, windowRef) {\n const renderer = container.injector.get(Renderer2);\n let nodes = [];\n let componentRef = null;\n if (typeof content === 'string') {\n nodes = [renderer.createText(content)];\n }\n else if (content && !(content instanceof TemplateRef)) {\n const injector = new WindowInjector(() => windowRef, container.injector);\n const factory = this.resolver.resolveComponentFactory(content);\n componentRef = container.createComponent(factory, undefined, injector);\n nodes = [componentRef.location.nativeElement];\n windowRef.content = componentRef;\n }\n return {\n componentRef,\n nodes: [\n [],\n nodes // Content\n ]\n };\n }\n}\nWindowService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nWindowService.ctorParameters = () => [\n { type: ComponentFactoryResolver },\n { type: WindowContainerService, decorators: [{ type: Inject, args: [WindowContainerService,] }] }\n];\n\n/**\n * Provides an insertion point for the Dialogs which are created through the\n * Dialog service ([see example]({% slug api_dialog_dialogservice %}#toc-open)).\n * Created Dialogs will be mounted after that element.\n *\n * @example\n * ```html-no-run\n *
\n * ```\n */\nclass DialogContainerDirective {\n constructor(container, service) {\n service.container = container;\n }\n}\nDialogContainerDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDialogContainer]'\n },] },\n];\n/** @nocollapse */\nDialogContainerDirective.ctorParameters = () => [\n { type: ViewContainerRef },\n { type: DialogContainerService }\n];\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.propDecorators = {\n closeTitle: [{ type: Input }],\n restoreTitle: [{ type: Input }],\n maximizeTitle: [{ type: Input }],\n minimizeTitle: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass LocalizedMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective)\n }\n ],\n selector: `\n [kendoDialogTitleBarLocalizedMessages],\n [kendoWindowLocalizedMessages]\n `\n },] },\n];\n/** @nocollapse */\nLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug globalization_dialogs %}#toc-localization)).\n */\nclass CustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-dialog-messages, kendo-window-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * @hidden\n */\nconst SHARED_DIRECTIVES = [\n DialogActionsComponent,\n CustomMessagesComponent,\n LocalizedMessagesDirective\n];\n/**\n * @hidden\n */\nclass SharedModule {\n}\nSharedModule.decorators = [\n { type: NgModule, args: [{\n declarations: [SHARED_DIRECTIVES],\n exports: [SHARED_DIRECTIVES, CommonModule],\n imports: [CommonModule]\n },] },\n];\n\n/**\n * @hidden\n */\nconst DIALOG_DIRECTIVES = [\n DialogComponent,\n DialogTitleBarComponent\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Dialog component that includes all Dialog components and directives.\n * Imports `DialogModule` into the [root module]({{ site.data.urls.angular['ngmodules'] }}#angular-modularity)\n * of your application or into any other sub-module that will use the Dialog component.\n *\n * @example\n * ```ts-no-run\n * import { NgModule } from '@angular/core';\n * import { BrowserModule } from '@angular/platform-browser';\n * import { DialogModule } from '@progress/kendo-angular-dialog';\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * bootstrap: [AppComponent],\n * declarations: [AppComponent],\n * imports: [BrowserModule, DialogModule]\n * })\n * export class AppModule {\n * }\n * ```\n */\nclass DialogModule {\n}\nDialogModule.decorators = [\n { type: NgModule, args: [{\n declarations: [DIALOG_DIRECTIVES, DialogContainerDirective],\n entryComponents: [DIALOG_DIRECTIVES],\n exports: [DIALOG_DIRECTIVES, SHARED_DIRECTIVES, DialogContainerDirective],\n imports: [SharedModule],\n providers: [DialogContainerService, DialogService]\n },] },\n];\n\n/**\n * Provides an insertion point for the Windows which are created through the\n * Window service ([see example]({% slug api_dialog_windowservice %}#toc-open)).\n * Created Windows will be mounted after that element.\n *\n * @example\n * ```html-no-run\n *
\n * ```\n */\nclass WindowContainerDirective {\n constructor(container, service) {\n service.container = container;\n }\n}\nWindowContainerDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoWindowContainer]'\n },] },\n];\n/** @nocollapse */\nWindowContainerDirective.ctorParameters = () => [\n { type: ViewContainerRef },\n { type: WindowContainerService }\n];\n\nconst WINDOW_DIRECTIVES = [\n ResizeHandleDirective,\n WindowComponent,\n WindowTitleBarComponent,\n WindowCloseActionDirective,\n WindowMinimizeActionDirective,\n WindowMaximizeActionDirective,\n WindowRestoreActionDirective\n];\nconst ENTRY_COMPONENTS = [\n WindowComponent,\n WindowTitleBarComponent\n];\nconst exportedModules = [\n WindowComponent,\n WindowCloseActionDirective,\n WindowMinimizeActionDirective,\n WindowMaximizeActionDirective,\n WindowRestoreActionDirective,\n WindowTitleBarComponent\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Window component. Imports `WindowModule` into the\n * [root module]({{ site.data.urls.angular['ngmodules'] }}#angular-modularity)\n * of your application or into any other sub-module that will use the Window component.\n *\n * @example\n * ```ts-no-run\n * import { NgModule } from '@angular/core';\n * import { BrowserModule } from '@angular/platform-browser';\n * import { WindowModule } from '@progress/kendo-angular-window';\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * bootstrap: [AppComponent],\n * declarations: [AppComponent],\n * imports: [BrowserModule, WindowModule]\n * })\n * export class AppModule {\n * }\n * ```\n */\nclass WindowModule {\n}\nWindowModule.decorators = [\n { type: NgModule, args: [{\n declarations: [WINDOW_DIRECTIVES, WindowContainerDirective],\n entryComponents: [ENTRY_COMPONENTS],\n exports: [exportedModules, SHARED_DIRECTIVES, WindowContainerDirective],\n imports: [SharedModule, DraggableModule],\n providers: [WindowContainerService, WindowService]\n },] },\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Dialogs components.\n *\n * @example\n *\n * ```ts-no-run\n * import { DialogsModule } from '@progress/kendo-angular-dialog';\n *\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { NgModule } from '@angular/core';\n *\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * declarations: [AppComponent],\n * imports: [BrowserModule, DialogsModule],\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass DialogsModule {\n}\nDialogsModule.decorators = [\n { type: NgModule, args: [{\n exports: [DialogModule, WindowModule]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DIALOG_DIRECTIVES, DialogContainerDirective, DialogContainerService, CustomMessagesComponent, DIALOG_LOCALIZATION_SERVICE, LocalizedMessagesDirective, Messages, TitleBarLocalizationService, SHARED_DIRECTIVES, SharedModule, DragResizeService, NavigationService, WindowContainerDirective, WindowContainerService, ResizeHandleDirective, DialogComponent, DialogTitleBarComponent, DialogContentBase, DialogActionsComponent, DialogService, DialogCloseResult, DialogRef, DialogSettings, DialogAction, WindowComponent, WindowTitleBarComponent, WindowMaximizeActionDirective, WindowMinimizeActionDirective, WindowCloseActionDirective, WindowRestoreActionDirective, WindowSettings, WindowRef, WindowCloseResult, WindowService, DialogModule, WindowModule, DialogsModule };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { EventEmitter, Component, Renderer2, Input, Output, ViewChild, HostBinding, Directive, TemplateRef, Injectable, ElementRef, ChangeDetectorRef, NgZone, ViewChildren, forwardRef, isDevMode, ContentChild, ViewContainerRef, InjectionToken, Optional, Inject, KeyValueDiffers, HostListener, NgModule } from '@angular/core';\nimport { isDocumentAvailable, isChanged, KendoInput, ResizeSensorModule } from '@progress/kendo-angular-common';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { merge, fromEvent, Subject, Subscription, of, interval } from 'rxjs';\nimport { map, auditTime, tap, filter, partition, throttleTime, catchError, distinctUntilChanged, skipWhile, concatMap, take, takeUntil } from 'rxjs/operators';\nimport { PopupService, PopupModule } from '@progress/kendo-angular-popup';\nexport { PopupComponent } from '@progress/kendo-angular-popup';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @hidden\n */\nvar Keys;\n(function (Keys) {\n Keys[Keys[\"backspace\"] = 8] = \"backspace\";\n Keys[Keys[\"tab\"] = 9] = \"tab\";\n Keys[Keys[\"enter\"] = 13] = \"enter\";\n Keys[Keys[\"shift\"] = 16] = \"shift\";\n Keys[Keys[\"ctrl\"] = 17] = \"ctrl\";\n Keys[Keys[\"alt\"] = 18] = \"alt\";\n Keys[Keys[\"pause/break\"] = 19] = \"pause/break\";\n Keys[Keys[\"caps lock\"] = 20] = \"caps lock\";\n Keys[Keys[\"esc\"] = 27] = \"esc\";\n Keys[Keys[\"space\"] = 32] = \"space\";\n Keys[Keys[\"page up\"] = 33] = \"page up\";\n Keys[Keys[\"page down\"] = 34] = \"page down\";\n Keys[Keys[\"end\"] = 35] = \"end\";\n Keys[Keys[\"home\"] = 36] = \"home\";\n Keys[Keys[\"left\"] = 37] = \"left\";\n Keys[Keys[\"up\"] = 38] = \"up\";\n Keys[Keys[\"right\"] = 39] = \"right\";\n Keys[Keys[\"down\"] = 40] = \"down\";\n Keys[Keys[\"insert\"] = 45] = \"insert\";\n Keys[Keys[\"delete\"] = 46] = \"delete\";\n Keys[Keys[\"command\"] = 91] = \"command\";\n Keys[Keys[\"left command\"] = 91] = \"left command\";\n Keys[Keys[\"right command\"] = 93] = \"right command\";\n Keys[Keys[\"numpad *\"] = 106] = \"numpad *\";\n Keys[Keys[\"numpad +\"] = 107] = \"numpad +\";\n Keys[Keys[\"numpad -\"] = 109] = \"numpad -\";\n Keys[Keys[\"numpad .\"] = 110] = \"numpad .\";\n Keys[Keys[\"numpad /\"] = 111] = \"numpad /\";\n Keys[Keys[\"num lock\"] = 144] = \"num lock\";\n Keys[Keys[\"scroll lock\"] = 145] = \"scroll lock\";\n Keys[Keys[\"my computer\"] = 182] = \"my computer\";\n Keys[Keys[\"my calculator\"] = 183] = \"my calculator\";\n Keys[Keys[\";\"] = 186] = \";\";\n Keys[Keys[\"=\"] = 187] = \"=\";\n Keys[Keys[\",\"] = 188] = \",\";\n Keys[Keys[\"-\"] = 189] = \"-\";\n Keys[Keys[\".\"] = 190] = \".\";\n Keys[Keys[\"/\"] = 191] = \"/\";\n Keys[Keys[\"`\"] = 192] = \"`\";\n Keys[Keys[\"[\"] = 219] = \"[\";\n Keys[Keys[\"\\\\\"] = 220] = \"\\\\\";\n Keys[Keys[\"]\"] = 221] = \"]\";\n Keys[Keys[\"'\"] = 222] = \"'\";\n})(Keys || (Keys = {}));\n\n/* tslint:disable:no-null-keyword */\n/* tslint:disable:no-bitwise */\n/* tslint:disable:align */\n/**\n * @hidden\n */\nconst isPresent = (value) => value !== null && value !== undefined;\n/**\n * @hidden\n */\nconst isNumber = (value) => !isNaN(value);\n/**\n * @hidden\n */\nconst guid = () => {\n let id = \"\";\n let i;\n let random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += \"-\";\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\n/**\n * @hidden\n */\nconst combineStr = (begin, end) => {\n return begin.concat(end.substr(end.toLowerCase().indexOf(begin.toLowerCase()) + begin.length));\n};\n/**\n * @hidden\n */\nconst isWindowAvailable = () => typeof window !== 'undefined';\n/**\n * @hidden\n */\nconst isArray = (value) => Array.isArray(value);\n/**\n * @hidden\n */\nconst isObject = (value) => isPresent(value) && typeof value === 'object';\n/**\n * @hidden\n */\nconst isEmptyString = (value) => typeof value === 'string' && value.length === 0;\n/**\n * @hidden\n */\nconst resolveValuesInArray = (values, data = [], valueField) => values\n .map(value => {\n return data.find(item => item[valueField] === value);\n})\n .filter(value => value !== undefined);\n/**\n * @hidden\n */\nconst validateComplexValues = (values, valueField) => isArray(values) && values.filter(item => {\n return isObject(item) && item[valueField];\n});\n/**\n * @hidden\n */\nconst resolveAllValues = (value, data, valueField) => {\n const customValues = validateComplexValues(value, valueField) || [];\n const resolvedValues = resolveValuesInArray(value, data, valueField) || [];\n return resolvedValues.concat(customValues);\n};\n/**\n * @hidden\n */\nconst isObjectArray = (values) => {\n return isArray(values) && values.every(item => isObject(item));\n};\n/**\n * @hidden\n */\nconst selectedIndices = (values, data, valueField) => {\n const extractedValues = data.map(item => {\n return isPresent(item) && isPresent(item[valueField]) ? item[valueField] : item;\n });\n return values.reduce((arr, item) => {\n const value = isPresent(item) && isPresent(item[valueField]) ? item[valueField] : item;\n const index = extractedValues.indexOf(value);\n if (index !== -1) {\n arr.push(index);\n }\n return arr;\n }, []);\n};\n/**\n * @hidden\n */\nconst getter = (dataItem, field, usePrimitive = false) => {\n if (isPresent(dataItem)) {\n if (usePrimitive) {\n return field && isPresent(dataItem[field]) ? dataItem[field] : dataItem;\n }\n else {\n return field ? dataItem[field] : dataItem;\n }\n }\n};\n/**\n * @hidden\n */\nconst sameCharsOnly = (word, character) => {\n for (let idx = 0; idx < word.length; idx++) {\n if (word.charAt(idx) !== character) {\n return false;\n }\n }\n return true;\n};\n/**\n * @hidden\n */\nconst shuffleData = (data, splitIndex, defaultItem) => {\n let result = data;\n if (defaultItem) {\n result = [defaultItem].concat(result);\n }\n return result.slice(splitIndex).concat(result.slice(0, splitIndex));\n};\n/**\n * @hidden\n */\nconst matchText = (text, word, ignoreCase) => {\n if (!isPresent(text)) {\n return false;\n }\n let temp = String(text);\n if (ignoreCase) {\n temp = temp.toLowerCase();\n }\n return temp.indexOf(word) === 0;\n};\n/**\n * @hidden\n *\n * Checks whether the passed object has all of the listed properties.\n */\nconst hasProps = (obj, props) => {\n if (!isPresent(obj)) {\n return false;\n }\n return props.every(prop => obj.hasOwnProperty(prop));\n};\n\n/* tslint:disable:member-ordering */\n/**\n * @hidden\n */\nclass SearchBarComponent {\n constructor(localization, renderer) {\n this.localization = localization;\n this.valueChange = new EventEmitter();\n this.onBlur = new EventEmitter();\n this.onFocus = new EventEmitter();\n this.onClick = new EventEmitter();\n this.onNavigate = new EventEmitter();\n this.searchBarClass = true;\n this._userInput = \"\";\n this._previousValue = \"\";\n this._placeholder = \"\";\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.renderer = renderer;\n }\n get userInput() {\n return this._userInput;\n }\n set userInput(userInput) {\n this._userInput = userInput || \"\";\n }\n get value() {\n return this.input.nativeElement.value;\n }\n set placeholder(text) {\n this._placeholder = text || '';\n this.setInputSize();\n }\n get placeholder() {\n return this._placeholder;\n }\n ngOnInit() {\n this.localizationChangeSubscription = this.localization\n .changes.subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');\n }\n ngOnChanges(changes) {\n let previousUserInput;\n if (this.input && (changes.userInput || changes.suggestedText)) {\n if (changes.userInput && changes.userInput.previousValue) {\n if (this._previousValue === changes.userInput.previousValue) {\n previousUserInput = this._previousValue;\n }\n else {\n previousUserInput = changes.userInput.currentValue || \"\";\n }\n }\n else {\n previousUserInput = this._previousValue;\n }\n const caretIndex = this.input.nativeElement.selectionStart;\n const caretAtEnd = previousUserInput.length === caretIndex;\n this.writeInputValue(this.suggestedText ? combineStr(this.userInput, this.suggestedText) : this.userInput);\n if (this.suggestedText) {\n this.setInputSelection(this.userInput.length, this.suggestedText.length);\n }\n else if (caretAtEnd) {\n this.setInputSelection(this.userInput.length, this.userInput.length);\n }\n else {\n this.setInputSelection(caretIndex, caretIndex);\n }\n this._previousValue = this.userInput;\n }\n }\n ngOnDestroy() {\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n }\n writeInputValue(text) {\n if (isDocumentAvailable()) {\n this.renderer.setProperty(this.input.nativeElement, 'value', text);\n }\n }\n setInputSelection(start, end) {\n if (isDocumentAvailable() && this.input.nativeElement === document.activeElement) {\n try {\n this.input.nativeElement.setSelectionRange(start, end);\n }\n catch (e) {\n //Make sure that the element is in the DOM before you invoke its methods\n }\n }\n }\n handleInput(event) {\n const value = event.target.value;\n if (value !== this.userInput) {\n this._previousValue = value;\n this.valueChange.emit(value);\n }\n }\n handleFocus(event) {\n this.onFocus.emit(event);\n }\n handleBlur(event) {\n this.onBlur.emit(event);\n }\n handleKeydown(event) {\n const keyCode = event.keyCode;\n const keys = [Keys.up, Keys.down, Keys.left, Keys.right, Keys.enter,\n Keys.esc, Keys.delete, Keys.backspace, Keys.home, Keys.end];\n if (keys.indexOf(keyCode) > -1) {\n this.onNavigate.emit(event);\n }\n }\n focus() {\n if (isDocumentAvailable()) {\n this.input.nativeElement.focus();\n }\n }\n blur() {\n if (isDocumentAvailable()) {\n this.input.nativeElement.blur();\n }\n }\n setInputSize() {\n const lengthOf = x => x ? x.length : 0;\n const input = this.input.nativeElement;\n const placeholderLength = lengthOf(this.placeholder);\n const textLength = lengthOf(this.value);\n const size = Math.max(placeholderLength, textLength, 1);\n this.renderer.setAttribute(input, 'size', size.toString());\n }\n}\nSearchBarComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-searchbar',\n template: `\n \n `\n },] },\n];\n/** @nocollapse */\nSearchBarComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: Renderer2 }\n];\nSearchBarComponent.propDecorators = {\n id: [{ type: Input }],\n listId: [{ type: Input }],\n tagListId: [{ type: Input }],\n activeDescendant: [{ type: Input }],\n noDataLabel: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n tabIndex: [{ type: Input }],\n popupOpen: [{ type: Input }],\n role: [{ type: Input }],\n userInput: [{ type: Input }],\n suggestedText: [{ type: Input }],\n valueChange: [{ type: Output }],\n onBlur: [{ type: Output }],\n onFocus: [{ type: Output }],\n onClick: [{ type: Output }],\n onNavigate: [{ type: Output }],\n input: [{ type: ViewChild, args: [\"input\", { static: true },] }],\n searchBarClass: [{ type: HostBinding, args: ['class.k-searchbar',] }],\n placeholder: [{ type: Input }]\n};\n\n/* tslint:disable:max-line-length */\n/**\n * Renders the list item content. To define the item template, nest an `` tag\n * with the `kendoItemTemplate` directive inside the component tag. The template context is\n * set to the current component. To get a reference to the current data item, use the `let-dataItem` directive.\n *\n * - [Using `ItemTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-item-template)\n * - [Using `ItemTemplate` with the ComboBox]({% slug templates_combobox %}#toc-item-template)\n * - [Using `ItemTemplate` with the DropDownList]({% slug templates_ddl %}#toc-item-template)\n * - [Using `ItemTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-item-template)\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * {{dataItem}} option\n * \n * \n * `\n * })\n * class AppComponent {\n * public listItems: Array = [\"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\"];\n * }\n * ```\n */\nclass ItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nItemTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]'\n },] },\n];\n/** @nocollapse */\nItemTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/* tslint:disable:max-line-length */\n/**\n * Renders the header content of the list. To define the header template, nest an `` tag\n * with the `kendoHeaderTemplate` directive inside the component tag.\n *\n * - [Using `HeaderTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-header-template)\n * - [Using `HeaderTemplate` with the ComboBox]({% slug templates_combobox %}#toc-header-template)\n * - [Using `HeaderTemplate` with the DropDownList]({% slug templates_ddl %}#toc-header-template)\n * - [Using `HeaderTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-header-template)\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n *

Header template

\n *
\n *
\n * `\n * })\n * class AppComponent {\n * public listItems: Array = [\"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\"];\n * }\n * ```\n */\nclass HeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nHeaderTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDropDownListHeaderTemplate],[kendoComboBoxHeaderTemplate],[kendoAutoCompleteHeaderTemplate],[kendoMultiSelectHeaderTemplate]'\n },] },\n];\n/** @nocollapse */\nHeaderTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/* tslint:disable:max-line-length */\n/**\n * Renders the footer content of the list. To define the footer template, nest an `` tag\n * with the `kendoFooterTemplate` directive inside the component tag.\n *\n * - [Using `FooterTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-footer-template)\n * - [Using `FooterTemplate` with the ComboBox]({% slug templates_combobox %}#toc-footer-template)\n * - [Using `FooterTemplate` with the DropDownList]({% slug templates_ddl %}#toc-footer-template)\n * - [Using `FooterTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-footer-template)\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n *

Footer template

\n *
\n *
\n * `\n * })\n * class AppComponent {\n * public listItems: Array = [\"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\"];\n * }\n * ```\n */\nclass FooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nFooterTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDropDownListFooterTemplate],[kendoComboBoxFooterTemplate],[kendoAutoCompleteFooterTemplate],[kendoMultiSelectFooterTemplate]'\n },] },\n];\n/** @nocollapse */\nFooterTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/* tslint:disable:max-line-length */\n/**\n * Renders the group header content. To define the group template, nest an `` tag\n * with the `kendoGroupTemplate` directive inside the component tag. The template context is\n * set to the current component. To get a reference to the current data item, use the `let-groupName` directive.\n *\n * - [Using `GroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-group-template)\n * - [Using `GroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-group-template)\n * - [Using `GroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-group-template)\n * - [Using `GroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-group-template)\n *\n * @example\n * ```ts\n * import { groupBy } from '@progress/kendo-data-query';\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * Food type: {{groupName}} option\n * \n * \n * `\n * })\n * class AppComponent {\n * public data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n * public groupedData = groupBy(this.data, [{field: \"subcategory\"}]);\n * }\n * ```\n */\nclass GroupTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nGroupTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDropDownListGroupTemplate],[kendoComboBoxGroupTemplate],[kendoAutoCompleteGroupTemplate],[kendoMultiSelectGroupTemplate]'\n },] },\n];\n/** @nocollapse */\nGroupTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/* tslint:disable:max-line-length */\n/**\n * Renders the fixed group header content. To define the fixed group template, nest an `` tag\n * with the `kendoFixedGroupTemplate` directive inside the component tag. The template context is\n * set to the current component. To get a reference to the current data item, use the `let-groupName` directive.\n *\n * - [Using `FixedGroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-fixed-group-template)\n * - [Using `FixedGroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-fixed-group-template)\n * - [Using `FixedGroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-fixed-group-template)\n * - [Using `FixedGroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-fixed-group-template)\n *\n * @example\n * ```ts\n * import { groupBy } from '@progress/kendo-data-query';\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * Food type: {{groupName}} option\n * \n * \n * `\n * })\n * class AppComponent {\n * public data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n * public groupedData = groupBy(this.data, [{field: \"subcategory\"}]);\n * }\n * ```\n */\nclass FixedGroupTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nFixedGroupTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDropDownListFixedGroupTemplate],[kendoComboBoxFixedGroupTemplate],[kendoAutoCompleteFixedGroupTemplate],[kendoMultiSelectFixedGroupTemplate]'\n },] },\n];\n/** @nocollapse */\nFixedGroupTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * @hidden\n */\nclass SelectionService {\n constructor() {\n this.onSelect = new EventEmitter();\n this.onChange = new EventEmitter();\n this.onFocus = new EventEmitter();\n this.total = 0;\n this.selectedIndices = [];\n }\n getTotal() {\n return this.total;\n }\n isSelected(index) {\n return isPresent(this.selectedIndices.find(current => current === index));\n }\n isFocused(index) {\n return index === this.focused;\n }\n focus(index) {\n if (this.isFocused(index)) {\n return;\n }\n this.focused = index;\n this.onFocus.emit(index);\n }\n select(index) {\n if (this.isSelected(index)) {\n return;\n }\n this.selectedIndices = [index];\n this.focused = index;\n this.onSelect.emit({\n indices: [index],\n newSelection: isPresent(index)\n });\n }\n add(index) {\n if (this.isSelected(index)) {\n return;\n }\n this.selectedIndices.push(index);\n this.focused = index;\n this.onChange.emit({\n added: index,\n indices: this.selectedIndices.slice()\n });\n }\n unselect(index) {\n if (!this.isSelected(index)) {\n return;\n }\n const position = this.selectedIndices.indexOf(index);\n this.selectedIndices.splice(position, 1);\n this.focused = index;\n this.onChange.emit({\n indices: this.selectedIndices.slice(),\n removed: index\n });\n }\n change(index) {\n const newSelection = isPresent(index) && !this.isSelected(index);\n this.selectedIndices = [index];\n this.focused = index;\n this.onChange.emit({\n indices: [index],\n newSelection: newSelection\n });\n }\n resetSelection(index) {\n this.selectedIndices = index instanceof Array ? index : [index];\n this.focused = this.selectedIndices[this.selectedIndices.length - 1];\n }\n get selected() {\n return this.selectedIndices.slice();\n }\n get focused() {\n return this.focusedIndex;\n }\n set focused(index) {\n if (this.focusedIndex !== index) {\n this.focusedIndex = index;\n this.onFocus.emit(index);\n }\n }\n}\nSelectionService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nvar NavigationAction;\n(function (NavigationAction) {\n NavigationAction[NavigationAction[\"Undefined\"] = 0] = \"Undefined\";\n NavigationAction[NavigationAction[\"Open\"] = 1] = \"Open\";\n NavigationAction[NavigationAction[\"Close\"] = 2] = \"Close\";\n NavigationAction[NavigationAction[\"Enter\"] = 3] = \"Enter\";\n NavigationAction[NavigationAction[\"Tab\"] = 4] = \"Tab\";\n NavigationAction[NavigationAction[\"Esc\"] = 5] = \"Esc\";\n NavigationAction[NavigationAction[\"Delete\"] = 6] = \"Delete\";\n NavigationAction[NavigationAction[\"Backspace\"] = 7] = \"Backspace\";\n NavigationAction[NavigationAction[\"Home\"] = 8] = \"Home\";\n NavigationAction[NavigationAction[\"End\"] = 9] = \"End\";\n NavigationAction[NavigationAction[\"Up\"] = 10] = \"Up\";\n NavigationAction[NavigationAction[\"Down\"] = 11] = \"Down\";\n NavigationAction[NavigationAction[\"Left\"] = 12] = \"Left\";\n NavigationAction[NavigationAction[\"Right\"] = 13] = \"Right\";\n})(NavigationAction || (NavigationAction = {}));\n\n/**\n * @hidden\n */\nclass DataService {\n constructor() {\n this.grouped = false;\n this.groupIndices = [];\n }\n set data(data) {\n this._data = data;\n this.grouped = this.isGrouped(data);\n if (this.grouped) {\n this.groupIndices = this.getGroupIndices(data);\n this._flatData = this.flatten(data);\n }\n }\n get data() {\n if (this.grouped) {\n return this._flatData;\n }\n return this._data;\n }\n /**\n * @hidden\n * Used to get the actual items count, i.e. excluding the header items in case of grouping.\n */\n get itemsCount() {\n if (!isPresent(this.data) || this.data.length === 0) {\n return 0;\n }\n const items = this.grouped ? this._flatData.filter(item => !item.header) : this.data;\n return items.length;\n }\n /**\n * @hidden\n * Used to determine if the component received grouped data.\n */\n isGrouped(data) {\n // GroupResult { aggregates: AggregateResult, field: string, items: object[], value: any }\n // https://www.telerik.com/kendo-angular-ui/components/dataquery/api/GroupResult/\n return (isPresent(data) && data.length !== 0) && isPresent(data[0]) && hasProps(data[0], ['aggregates', 'field', 'items', 'value']);\n }\n /**\n * @hidden\n * Used to calculate the last item index of each group.\n */\n getGroupIndices(data) {\n let groupIndices = [];\n for (let i = 0; i <= data.length - 1; i++) {\n groupIndices[i] = (groupIndices[i - 1] || 0) + data[i].items.length;\n }\n return groupIndices;\n }\n /**\n * @hidden\n * Used to get a flat array containing all items matching certain criteria.\n */\n filter(predicate) {\n let result = [];\n if (this.isGrouped(this.data)) {\n for (let i = 0; i <= this.groupIndices.length - 1; i++) {\n const matches = this.data[i].items.filter(predicate);\n if (matches) {\n result = result.concat(matches);\n }\n }\n }\n else {\n result = this.data.filter(predicate);\n }\n return result;\n }\n /**\n * @hidden\n * Used to get the index of a given data item.\n */\n indexOf(item, startFrom = 0) {\n let predicate = (element) => {\n return element === item;\n };\n if (this.grouped) {\n predicate = (element) => {\n return element.value === item;\n };\n }\n return this.findIndex(predicate, startFrom);\n }\n /**\n * @hidden\n * Used to get the index of a data item based on an expression.\n */\n findIndex(predicate, startFrom = 0) {\n let index = -1;\n if (this.grouped) {\n const data = this._flatData.filter(item => !item.header && item.offsetIndex >= startFrom);\n index = data.findIndex(predicate);\n index = data[index] ? data[index].offsetIndex : -1;\n }\n else {\n const data = this.data.slice(startFrom);\n const itemIndex = data.findIndex(predicate);\n index = itemIndex !== -1 ? itemIndex + startFrom : -1;\n }\n return index;\n }\n /**\n * @hidden\n * Used to get the closest group header prior to an item index.\n */\n closestGroup(index) {\n for (let i = index; i >= 0; i--) {\n if (this._flatData[i].header) {\n return this._flatData[i];\n }\n }\n }\n /**\n * @hidden\n * Used to get the first item matching the criteria.\n */\n find(predicate) {\n const index = this.findIndex(predicate);\n return this.itemAt(index);\n }\n /**\n * @hidden\n * Used to get the true index in a flattened data array.\n */\n flatIndex(index) {\n if (this.itemsCount === 0) {\n return -1;\n }\n if (this.grouped) {\n const match = this._flatData.find((item) => !item.header && item.offsetIndex === index);\n if (match) {\n return match.index;\n }\n }\n else {\n return index;\n }\n return -1;\n }\n /**\n * @hidden\n * Used to get the item at the provided index.\n */\n itemAt(index) {\n let dataItem;\n if (this.itemsCount === 0) {\n return dataItem;\n }\n if (this.grouped) {\n const match = this._flatData.find((item) => !item.header && item.offsetIndex === index);\n if (match) {\n dataItem = match.value;\n }\n }\n else {\n dataItem = this.data[index];\n }\n return dataItem;\n }\n /**\n * @hidden\n * Used to get the group at the provided index.\n */\n groupAt(index) {\n if (this.itemsCount === 0 || !this.isGrouped) {\n return;\n }\n return this._flatData.find((item) => item.header && item.index === index);\n }\n /**\n * @hidden\n * Used to get the field by which the data is grouped.\n */\n groupField() {\n if (this.itemsCount === 0 || !this.isGrouped) {\n return;\n }\n return this._data[0].field;\n }\n /**\n * @hidden\n * Used to get the group to which a dataItem belongs.\n */\n itemGroup(item) {\n if (!item || this.itemsCount === 0 || !this.isGrouped) {\n return;\n }\n const fieldName = this.groupField();\n if (fieldName) {\n return item[fieldName];\n }\n }\n flatten(data, group = undefined, offset = 0, groupIndex = 0) {\n let flat = [];\n if (isPresent(group)) {\n flat.push({\n header: true,\n index: groupIndex + offset,\n offsetIndex: groupIndex,\n value: group\n });\n }\n for (let i = 0; i < data.length; i++) {\n let result = [];\n if (data[i].items) {\n result = this.flatten(data[i].items, data[i].value, offset, i);\n offset = offset + data[i].items.length;\n }\n else {\n result.push({\n header: false,\n index: groupIndex + offset + i + 1,\n offsetIndex: offset + i,\n value: data[i]\n });\n }\n flat = flat.concat(result);\n }\n return flat;\n }\n}\nDataService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nclass DisabledItemsService {\n constructor(dataService) {\n this.dataService = dataService;\n this.itemDisabled = null;\n }\n isIndexDisabled(index) {\n if (this.itemDisabled) {\n const item = this.dataService.itemAt(index);\n if (isPresent(item)) {\n return this.itemDisabled({ dataItem: item, index });\n }\n else if (isPresent(this.defaultItem)) {\n return this.itemDisabled({ dataItem: this.defaultItem, index: -1 });\n }\n }\n }\n isItemDisabled(item) {\n if (this.itemDisabled) {\n const index = this.dataService.indexOf(item);\n if (index !== -1) {\n return this.itemDisabled({ dataItem: item, index });\n }\n else if (isPresent(this.defaultItem)) {\n return this.itemDisabled({ dataItem: this.defaultItem, index: -1 });\n }\n }\n }\n}\nDisabledItemsService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nDisabledItemsService.ctorParameters = () => [\n { type: DataService }\n];\n\nconst MIN_INDEX = 0;\n/**\n * @hidden\n */\nclass NavigationEvent {\n /**\n * The index of the item to which the user navigated.\n */\n constructor(index, originalEvent) {\n this.index = index;\n this.originalEvent = originalEvent;\n }\n}\n/**\n * @hidden\n */\nclass NavigationService {\n constructor(disabledItemsService, selectionService) {\n this.disabledItemsService = disabledItemsService;\n this.selectionService = selectionService;\n this.open = new EventEmitter();\n this.close = new EventEmitter();\n this.enter = new EventEmitter();\n this.tab = new EventEmitter();\n this.esc = new EventEmitter();\n this.up = new EventEmitter();\n this.right = new EventEmitter();\n this.down = new EventEmitter();\n this.left = new EventEmitter();\n this.delete = new EventEmitter();\n this.backspace = new EventEmitter();\n this.home = new EventEmitter();\n this.end = new EventEmitter();\n }\n process(args) {\n const keyCode = args.originalEvent.keyCode;\n const altKey = args.originalEvent.altKey;\n let index;\n let action = NavigationAction.Undefined;\n if (altKey && keyCode === Keys.down) {\n action = NavigationAction.Open;\n }\n else if (altKey && keyCode === Keys.up) {\n action = NavigationAction.Close;\n }\n else if (keyCode === Keys.enter) {\n action = NavigationAction.Enter;\n }\n else if (keyCode === Keys.esc) {\n action = NavigationAction.Esc;\n }\n else if (keyCode === Keys.tab) {\n action = NavigationAction.Tab;\n }\n else if (keyCode === Keys.up) {\n index = this.next({ current: args.current, start: args.min, end: args.max, step: -1 });\n action = NavigationAction.Up;\n }\n else if (keyCode === Keys.left) {\n index = this.next({ current: args.current, start: args.min, end: args.max, step: -1 });\n action = NavigationAction.Left;\n }\n else if (keyCode === Keys.down) {\n index = this.next({ current: args.current, start: args.min, end: args.max, step: 1 });\n action = NavigationAction.Down;\n }\n else if (keyCode === Keys.right) {\n index = this.next({ current: args.current, start: args.min, end: args.max, step: 1 });\n action = NavigationAction.Right;\n }\n else if (keyCode === Keys.home) {\n index = this.isDisabled(MIN_INDEX) ? args.current : MIN_INDEX;\n action = NavigationAction.Home;\n }\n else if (keyCode === Keys.end) {\n index = this.isDisabled(args.max) ? args.current : args.max;\n action = NavigationAction.End;\n }\n else if (keyCode === Keys.delete) {\n action = NavigationAction.Delete;\n }\n else if (keyCode === Keys.backspace) {\n action = NavigationAction.Backspace;\n }\n const eventData = new NavigationEvent(index, args.originalEvent);\n if (action !== NavigationAction.Undefined) {\n this[NavigationAction[action].toLowerCase()].emit(eventData);\n }\n return action;\n }\n next(args) {\n const { current, start, end, step } = args;\n const nextIndex = !isPresent(current) ? start : this.clampIndex(current + step, start, end);\n const firstFocusableIndex = this.firstFocusableIndex(nextIndex, start, end, step);\n if (isPresent(firstFocusableIndex)) {\n return firstFocusableIndex;\n }\n if (this.selectionService.isSelected(current) && current >= start) {\n return current;\n }\n const inversedStep = -1 * step;\n return this.firstFocusableIndex(nextIndex, start, end, inversedStep);\n }\n clampIndex(index, min, max) {\n if (!isPresent(index) || index < min) {\n return min;\n }\n if (index > max) {\n return max;\n }\n return index;\n }\n firstFocusableIndex(startIndex, min, max, step) {\n while (min <= startIndex && startIndex <= max) {\n if (!this.isDisabled(startIndex)) {\n return startIndex;\n }\n startIndex += step;\n }\n return undefined;\n }\n isDisabled(index) {\n if (this.disabledItemsService) {\n return this.disabledItemsService.isIndexDisabled(index);\n }\n }\n}\nNavigationService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nNavigationService.ctorParameters = () => [\n { type: DisabledItemsService },\n { type: SelectionService }\n];\n\n/* tslint:disable:max-line-length */\n/**\n * Renders content when no data is available. To define the no-data template, nest a `` tag\n * with the `kendoNoDataTemplate` directive inside the component tag.\n *\n * - [Using `NoDataTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-no-data-template)\n * - [Using `NoDataTemplate` with the ComboBox]({% slug templates_combobox %}#toc-no-data-template)\n * - [Using `NoDataTemplate` with the DropDownList]({% slug templates_ddl %}#toc-no-data-template)\n * - [Using `NoDataTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-no-data-template)\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n *

No data!

\n *
\n *
\n * `\n * })\n * class AppComponent {\n * public listItems: Array = [];\n * }\n * ```\n */\nclass NoDataTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNoDataTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDropDownListNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate]'\n },] },\n];\n/** @nocollapse */\nNoDataTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * @hidden\n */\nclass PreventableEvent {\n constructor() {\n this.prevented = false;\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * If the event is prevented by any of its subscribers, returns `true`.\n *\n * @returns `true` if the default action was prevented. Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * Defines the mandatory properties of the `kendoDropDownFilter` directive\n * so that `kendoDropDownFilter` can be used with any of the DropDowns components\n * which implement the `FilterableDropDownComponentBase` class.\n *\n * @hidden\n */\nclass FilterableDropDownComponentBase {\n}\n\n/**\n * @hidden\n */\nclass ListItemDirective {\n constructor(element) {\n this.element = element;\n }\n}\nListItemDirective.decorators = [\n { type: Directive, args: [{\n selector: '\"li[role=option], li[role=group]\"' // tslint:disable-line\n },] },\n];\n/** @nocollapse */\nListItemDirective.ctorParameters = () => [\n { type: ElementRef }\n];\n\n/**\n * @hidden\n */\nclass ListComponent {\n /* tslint:disable:member-ordering */\n constructor(dataService, wrapper, selectionService, disabledItemsService, cdr, zone, renderer) {\n this.dataService = dataService;\n this.wrapper = wrapper;\n this.selectionService = selectionService;\n this.disabledItemsService = disabledItemsService;\n this.cdr = cdr;\n this.zone = zone;\n this.renderer = renderer;\n this.selected = [];\n this.focused = -1;\n this.show = true;\n this.multipleSelection = false;\n this.onClick = new EventEmitter();\n this.pageChange = new EventEmitter();\n this.startFrom = 0;\n this.lastLoaded = 0;\n this.lastScrollTop = 0;\n this.scrollToFocused = false;\n this.selectSubscription = merge(this.selectionService.onSelect.pipe(map((args) => args.indices[0])), this.selectionService.onFocus).subscribe(this.scrollToItem.bind(this));\n }\n set data(data) {\n this._data = data[0] && data[0].header ? data.slice(0) : data;\n }\n get data() {\n return this._data;\n }\n set items(items) {\n this._items = items;\n }\n get items() {\n return this._items;\n }\n get pageSize() {\n if (this.virtual.pageSize) {\n return this.virtual.pageSize;\n }\n let size = Math.round(this.height / this.virtual.itemHeight);\n return size;\n }\n get scrollHeight() {\n return (this.dataService.grouped ? this.virtual.total - 1 : this.virtual.total) * this.virtual.itemHeight;\n }\n ngOnChanges(changes) {\n if (isChanged('data', changes, false)) {\n if (this.lastLoaded <= 0) {\n this.lastLoaded = this.data.length - 1;\n this.scrollToFocused = !changes.data.isFirstChange();\n }\n }\n }\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n this.scrollSubscription = fromEvent(this.content.nativeElement, \"scroll\").pipe(auditTime(100), tap(this.prefetchData.bind(this)), tap(this.findCurrentGroup.bind(this))).subscribe(() => {\n this.lastScrollTop = this.content.nativeElement.scrollTop;\n });\n });\n }\n ngAfterViewChecked() {\n if (this.virtual) {\n this.positionItems();\n }\n if (this.items && this.scrollToFocused) {\n this.scrollToFocused = false;\n const scrollTarget = this.items.length && this.selectionService.focused === -1 ? 0 : this.selectionService.focused;\n this.scrollToItem(scrollTarget);\n }\n if (this.dataService.grouped) {\n this.findCurrentGroup();\n }\n }\n ngOnDestroy() {\n this.selectSubscription.unsubscribe();\n if (this.scrollSubscription) {\n this.scrollSubscription.unsubscribe();\n }\n }\n firstVisibleItem() {\n const content = this.content.nativeElement;\n const contentParent = content.offsetParent;\n const offsetY = (contentParent ? contentParent.offsetTop : 0) + content.offsetTop + 1;\n const offsetX = (contentParent ? contentParent.offsetLeft : 0) + content.offsetLeft + 1;\n const item = document.elementFromPoint(offsetX, offsetY);\n return item;\n }\n findCurrentGroup() {\n if (!this.dataService.grouped) {\n this.currentGroup = undefined;\n return;\n }\n const item = this.firstVisibleItem();\n if (item) {\n let index;\n if (item.getAttribute(\"role\") === \"group\") {\n index = parseInt(item.getAttribute(\"group-index\"), 10);\n this.currentGroup = this.dataService.groupAt(index).value;\n }\n else {\n index = parseInt(item.getAttribute(\"index\"), 10);\n this.currentGroup = this.dataService.itemGroup(this.dataService.itemAt(index));\n }\n }\n else {\n this.currentGroup = undefined;\n }\n this.cdr.detectChanges();\n }\n prefetchData() {\n if (!this.virtual) {\n return;\n }\n const visibleItems = Math.trunc(this.content.nativeElement.clientHeight / this.virtual.itemHeight);\n const offsetY = this.content.nativeElement.scrollTop;\n const start = Math.trunc(offsetY / this.virtual.itemHeight);\n const down = offsetY > this.lastScrollTop;\n const nextPage = (start + visibleItems >= this.lastLoaded) && this.lastLoaded < this.virtual.total - 1;\n const leftOver = this.pageSize - (this.lastLoaded - this.startFrom);\n const prevPage = this.lastLoaded - this.pageSize + visibleItems >= start - leftOver;\n if (down && nextPage) {\n this.changePage(start);\n }\n if (!down && prevPage) {\n this.changePage(start - this.pageSize + visibleItems + 1);\n }\n }\n changePage(start) {\n this.zone.run(() => {\n let end = this.pageSize + start;\n if (end > this.virtual.total) {\n start--;\n end = this.virtual.total;\n }\n if (start < 0) {\n start = 0;\n }\n this.startFrom = start;\n this.lastLoaded = end;\n this.pageChange.emit({ skip: start, take: this.pageSize });\n });\n }\n index(groupIndex, itemIndex) {\n return groupIndex > 0 ? (this.dataService.groupIndices[groupIndex - 1] + itemIndex) : itemIndex;\n }\n getText(dataItem) {\n return getter(dataItem, this.textField);\n }\n getValue(dataItem) {\n return getter(dataItem, this.valueField);\n }\n isDisabled(index) {\n return this.disabledItemsService.isIndexDisabled(index);\n }\n scrollToItem(index) {\n let flatIndex = index;\n if (this.dataService.grouped) {\n // takes into account the group header items\n flatIndex = this.dataService.flatIndex(index);\n /* The first group header item is not rendered in the list (see template), so subtract 1 when calulating the flat index.\n With virtualization enabled, the first group header could be in a previous page, in which case don't subtract anything. */\n const groupHeaderOffset = this.firstGroupHeaderInTargetedPage(flatIndex) ? -1 : 0;\n flatIndex += groupHeaderOffset;\n }\n if (this.virtual && flatIndex > -1) {\n this.scrollToIndex(flatIndex);\n return;\n }\n const items = this.items.toArray();\n if (isPresent(items[flatIndex]) && flatIndex !== -1) {\n this.scroll(items[flatIndex].element);\n }\n }\n scrollToIndex(index) {\n let content = this.content.nativeElement;\n let contentScrollTop = content.scrollTop;\n const itemOffsetTop = index * this.virtual.itemHeight;\n const itemOffsetHeight = this.virtual.itemHeight;\n const contentOffsetHeight = content.clientHeight;\n const bottomDistance = itemOffsetTop + itemOffsetHeight;\n if (contentScrollTop > itemOffsetTop) {\n contentScrollTop = itemOffsetTop;\n }\n else if (bottomDistance > (contentScrollTop + contentOffsetHeight)) {\n contentScrollTop = (bottomDistance - contentOffsetHeight);\n }\n content.scrollTop = contentScrollTop;\n }\n scroll(item) {\n if (!item) {\n return;\n }\n const nativeElement = item.nativeElement;\n let content = this.content.nativeElement, itemOffsetTop = nativeElement.offsetTop, itemOffsetHeight = nativeElement.offsetHeight, contentScrollTop = content.scrollTop, contentOffsetHeight = content.clientHeight, bottomDistance = itemOffsetTop + itemOffsetHeight;\n if (contentScrollTop > itemOffsetTop) {\n contentScrollTop = itemOffsetTop;\n }\n else if (bottomDistance > (contentScrollTop + contentOffsetHeight)) {\n contentScrollTop = (bottomDistance - contentOffsetHeight);\n }\n content.scrollTop = contentScrollTop;\n }\n positionItems() {\n this.items.forEach((item, index) => {\n const offsetY = (index + this.startFrom) * this.virtual.itemHeight;\n this.renderer.setStyle(item.element.nativeElement, \"transform\", `translateY(${offsetY}px`);\n });\n }\n /**\n * Indicates whether the first group header from the data set is in the targeted virtual page.\n */\n firstGroupHeaderInTargetedPage(itemIndex) {\n if (!isPresent(this.virtual)) {\n return true;\n }\n return this.virtual.skip === 0 && (this.virtual.pageSize > itemIndex);\n }\n}\nListComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-list',\n template: `\n
\n \n \n {{ currentGroup }} \n
\n
\n
    \n \n \n \n \n {{ getText(dataItem) }}\n \n \n \n 0\"\n role=\"group\"\n class='k-outer-group-header'\n [ngClass]=\"{ 'k-virtual-item': virtual }\"\n [ngStyle]=\"{\n 'height.px': virtual?.itemHeight,\n 'minHeight.px' : virtual?.itemHeight,\n 'boxSizing' : virtual ? 'border-box' : 'inherit'}\"\n [attr.group-index]=\"dataItem.index\"\n [attr.id]=\"optionPrefix + '-' + getValue(dataItem.value)\"\n [attr.tabIndex]=\"-1\">\n \n \n {{ dataItem.value }} \n \n \n \n \n {{ getText(dataItem.value) }}\n \n \n
\n
\n
\n
\n
\n `\n },] },\n];\n/** @nocollapse */\nListComponent.ctorParameters = () => [\n { type: DataService },\n { type: ElementRef },\n { type: SelectionService },\n { type: DisabledItemsService },\n { type: ChangeDetectorRef },\n { type: NgZone },\n { type: Renderer2 }\n];\nListComponent.propDecorators = {\n selected: [{ type: Input }],\n focused: [{ type: Input }],\n textField: [{ type: Input }],\n valueField: [{ type: Input }],\n height: [{ type: Input }],\n template: [{ type: Input }],\n groupTemplate: [{ type: Input }],\n fixedGroupTemplate: [{ type: Input }],\n show: [{ type: Input }],\n id: [{ type: Input }],\n optionPrefix: [{ type: Input }],\n multipleSelection: [{ type: Input }],\n virtual: [{ type: Input }],\n data: [{ type: Input }],\n onClick: [{ type: Output }],\n pageChange: [{ type: Output }],\n items: [{ type: ViewChildren, args: [ListItemDirective,] }],\n content: [{ type: ViewChild, args: ['content',] }],\n list: [{ type: ViewChild, args: ['list',] }]\n};\n\n/**\n * @hidden\n */\nconst DEFAULTS = {\n pageSize: 50,\n itemHeight: 28\n};\n/**\n * @hidden\n */\nconst normalizeVirtualizationSettings = (settings) => {\n if (settings === true) {\n return DEFAULTS;\n }\n if (!settings) {\n return null;\n }\n return Object.assign({ pageSize: DEFAULTS.pageSize }, settings);\n};\n\n/* tslint:disable:no-null-keyword */\nconst NO_VALUE = \"\";\n/**\n * @hidden\n */\nconst AUTOCOMPLETE_VALUE_ACCESSOR = {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => AutoCompleteComponent)\n};\n/**\n * Represents the [Kendo UI AutoComplete component for Angular]({% slug overview_autocomplete %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public placeholder: string = 'Type \"it\" for suggestions';\n * public listItems: Array = [\"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\"];\n * }\n * ```\n */\nclass AutoCompleteComponent {\n constructor(localization, dataService, popupService, selectionService, navigationService, disabledItemsService, _zone, cdr, renderer, wrapper) {\n this.localization = localization;\n this.dataService = dataService;\n this.popupService = popupService;\n this.selectionService = selectionService;\n this.navigationService = navigationService;\n this.disabledItemsService = disabledItemsService;\n this._zone = _zone;\n this.cdr = cdr;\n this.renderer = renderer;\n /**\n * Defines whether the first match from the suggestions list will be automatically focused.\n * By default, `highlightFirst` is set to `true`.\n */\n this.highlightFirst = true;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * The hint which is displayed when the component is empty.\n */\n this.placeholder = \"\";\n /**\n * Sets the height of the suggestions list. By default, `listHeight` is 200px.\n *\n * > The `listHeight` property affects only the list of suggestions and not the whole popup container.\n * > To set the height of the popup container, use `popupSettings.height`.\n */\n this.listHeight = 200;\n /**\n * @hidden\n *\n * If set to `true`, renders a button on hovering over the component.\n * Clicking this button resets the value of the component to `undefined` and triggers the `change` event.\n */\n this.clearButton = true;\n /**\n * Sets the disabled state of the component.\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the component.\n */\n this.readonly = false;\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n this.tabindex = 0;\n /**\n * Enables the [filtering]({% slug filtering_autocomplete %}) functionality.\n * If set to `true`, the component emits the `filterChange` event.\n */\n this.filterable = false;\n /**\n * Fires each time the value is changed—\n * when the component is blurred or the value is cleared through the **Clear** button\n * ([see example]({% slug overview_autocomplete %}#toc-events)).\n * When the value of the component is programmatically changed to `ngModel` or `formControl`\n * through its API or form binding, the `valueChange` event is not triggered because it\n * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time the user types in the input field.\n * You can filter the source based on the passed filtration value\n * ([see example]({% slug overview_autocomplete %}#toc-events)).\n */\n this.filterChange = new EventEmitter();\n /**\n * Fires each time the popup is about to open.\n * This event is preventable. If you cancel it, the popup will remain closed.\n */\n this.open = new EventEmitter();\n /**\n * Fires each time the popup is about to close.\n * This event is preventable. If you cancel it, the popup will remain open.\n */\n this.close = new EventEmitter();\n /**\n * Fires each time the user focuses the AutoComplete.\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the AutoComplete gets blurred.\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n this.widgetClasses = true;\n this.listBoxId = guid();\n this.optionPrefix = guid();\n this.onChangeCallback = (_value) => { };\n this.onTouchedCallback = (_) => { };\n this.popupMouseDownHandler = (event) => event.preventDefault();\n this._popupSettings = { animate: true };\n this._open = false;\n this._value = \"\";\n this._previousValue = NO_VALUE;\n this._filtering = false;\n this.valueChangeSubject = new Subject();\n this._isFocused = false;\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.wrapper = wrapper.nativeElement;\n this.data = [];\n this.subscribeEvents();\n this.selectionService.resetSelection([-1]);\n }\n get width() {\n let wrapperOffsetWidth = 0;\n if (isDocumentAvailable()) {\n wrapperOffsetWidth = this.wrapper.offsetWidth;\n }\n const width = this.popupSettings.width || wrapperOffsetWidth;\n const minWidth = isNaN(wrapperOffsetWidth) ? wrapperOffsetWidth : `${wrapperOffsetWidth}px`;\n const maxWidth = isNaN(width) ? width : `${width}px`;\n return { min: minWidth, max: maxWidth };\n }\n get height() {\n const popupHeight = this.popupSettings.height;\n return isPresent(popupHeight) ? `${popupHeight}px` : 'auto';\n }\n get listContainerClasses() {\n const containerClasses = ['k-list-container', 'k-reset'];\n if (this.popupSettings.popupClass) {\n containerClasses.push(this.popupSettings.popupClass);\n }\n return containerClasses;\n }\n get suggestion() {\n if (!this.text || !this.suggestedText) {\n this.suggestedText = undefined;\n return;\n }\n const hasMatch = this.suggestedText.toLowerCase().startsWith(this.text.toLowerCase());\n const shouldSuggest = this.suggest && !this.backspacePressed;\n if (shouldSuggest && hasMatch) {\n return this.suggestedText;\n }\n }\n get appendTo() {\n const { appendTo } = this.popupSettings;\n if (!appendTo || appendTo === 'root') {\n return undefined;\n }\n return appendTo === 'component' ? this.container : appendTo;\n }\n /**\n * Toggles the visibility of the popup.\n * If you use the `toggle` method to open or close the popup, the `open` and `close` events will not be fired.\n *\n * @param open - The state of the popup.\n */\n toggle(open) {\n Promise.resolve(null).then(() => {\n this._toggle(open);\n });\n }\n /**\n * Returns the current open state of the popup.\n */\n get isOpen() {\n return this._open;\n }\n /**\n * @hidden\n */\n togglePopup(open) {\n const isDisabled = this.disabled || this.readonly;\n const sameState = this.isOpen === open;\n if (isDisabled || sameState) {\n return;\n }\n const isDefaultPrevented = this.triggerPopupEvents(open);\n if (!isDefaultPrevented) {\n this._toggle(open);\n }\n }\n get activeDescendant() {\n if (!this.isOpen || !isPresent(this.selectionService.focused) || this.selectionService.focused === -1) {\n return null;\n }\n const dataItem = this.dataService.itemAt(this.selectionService.focused);\n return this.optionPrefix + \"-\" + getter(dataItem, this.valueField);\n }\n get noDataLabel() {\n if (this.data.length === 0) {\n return this.noDataText;\n }\n }\n get clearTitle() {\n return this.localization.get('clearTitle');\n }\n /**\n * Sets the data of the AutoComplete.\n *\n * > The data has to be provided in an array-like list.\n */\n set data(data) {\n this.dataService.data = data || [];\n if (this.virtual) {\n this.virtual.skip = 0;\n }\n this.setState(this.value);\n if (this.filterable) {\n this.selectionService.focused = this.isOpen && this.data.length && this.highlightFirst ? this.firstFocusableIndex(0) : -1;\n }\n if (this.suggest && this.dataService.itemsCount > 0) {\n this.suggestedText = getter(this.dataService.itemAt(0), this.valueField);\n }\n }\n get data() {\n const virtual = this.virtual;\n if (virtual) {\n const start = virtual.skip || 0;\n const end = start + virtual.pageSize;\n // Use length instead of itemsCount because of the grouping.\n virtual.total = this.dataService.data.length;\n return this.dataService.data.slice(start, end);\n }\n return this.dataService.data;\n }\n /**\n * Sets the value of the AutoComplete.\n */\n set value(newValue) {\n this.verifySettings(newValue);\n this._value = newValue || NO_VALUE;\n this.cdr.markForCheck();\n }\n get value() {\n return this._value || NO_VALUE;\n }\n /**\n * Configures the popup of the AutoComplete.\n *\n * The available options are:\n * - `animate: Boolean`—Controls the popup animation. By default, the open and close animations are enabled.\n * - `width: Number | String`—Sets the width of the popup container. By default, the width of the host element is used. If set to `auto`, the component automatically adjusts the width of the popup and no item labels are wrapped. The `auto` mode is not supported when virtual scrolling is enabled.\n * - `height: Number`—Sets the height of the popup container.\n * - `popupClass: String`—Specifies a list of CSS classes that are used to style the popup.\n * - `appendTo: \"root\" | \"component\" | ViewContainerRef`—Specifies the component to which the popup will be appended.\n */\n set popupSettings(settings) {\n this._popupSettings = Object.assign({ animate: true }, settings);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * Defines a Boolean function that is executed for each data item in the component\n * ([see examples]({% slug disableditems_autocomplete %})).\n * Determines whether the item will be disabled.\n */\n set itemDisabled(fn) {\n if (typeof fn !== 'function') {\n throw new Error(`itemDisabled must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this.disabledItemsService.itemDisabled = fn;\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n /**\n * Enables the [virtualization]({% slug virtualization_autocomplete %}) functionality.\n */\n set virtual(settings) {\n this._virtualSettings = normalizeVirtualizationSettings(settings);\n }\n get virtual() {\n return this._virtualSettings;\n }\n get isFocused() {\n return this._isFocused;\n }\n set isFocused(isFocused) {\n this._isFocused = isFocused;\n }\n get isDisabled() {\n return this.disabled;\n }\n get dir() {\n return this.direction;\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.wrapper, \"tabindex\");\n this.localizationChangeSubscription = this.localization\n .changes\n .subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n this.setMessages();\n });\n this.setMessages();\n }\n ngOnDestroy() {\n this.destroyPopup();\n this.unsubscribeEvents();\n clearTimeout(this.messagesTimeout);\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n }\n ngOnChanges(changes) {\n const virtual = this.virtual;\n const requestInitialData = virtual && changes.data && changes.data.isFirstChange();\n if (requestInitialData) {\n this.pageChange({ skip: 0, take: virtual.pageSize });\n }\n const STATE_PROPS = /(value|valueField)/g;\n if (STATE_PROPS.test(Object.keys(changes).join())) {\n this.setState(this.value);\n }\n }\n /**\n * Resets the value of the AutoComplete.\n * If you use the `reset` method to clear the value of the component,\n * the model will not update automatically and the `selectionChange` and `valueChange` events will not be fired.\n */\n reset() {\n this.setState(NO_VALUE);\n }\n /**\n * @hidden\n */\n clearValue(event) {\n event.stopImmediatePropagation();\n this.focus();\n this.change(NO_VALUE);\n if (this.filterable) {\n this.filterChange.emit('');\n }\n this.selectionService.resetSelection([]);\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.setState(value);\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onChangeCallback = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onTouchedCallback = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * Focuses the AutoComplete.\n */\n focus() {\n if (!this.disabled) {\n this.searchbar.focus();\n }\n }\n /**\n * Blurs the AutoComplete.\n */\n blur() {\n if (!this.disabled) {\n this.searchbar.blur();\n }\n }\n /**\n * @hidden\n */\n onResize() {\n if (this._open) {\n const popupWrapper = this.popupRef.popupElement;\n const { min, max } = this.width;\n popupWrapper.style.minWidth = min;\n popupWrapper.style.width = max;\n }\n }\n emitChange() {\n if (this.value === this._previousValue) {\n return;\n }\n this._previousValue = this.value;\n this.onChangeCallback(this.value);\n this.valueChange.emit(this.value);\n }\n verifySettings(newValue) {\n if (!isDevMode()) {\n return;\n }\n if (isPresent(newValue) && typeof newValue !== \"string\") {\n throw new Error(\"Expected value of type string. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/#toc-value\");\n }\n }\n search(text, startFrom = 0) {\n let index;\n if (text.length && this.dataService.itemsCount) {\n index = this.dataService.findIndex(this.findIndexPredicate(text), startFrom);\n }\n else {\n index = -1;\n }\n if (this.disabledItemsService.isIndexDisabled(index)) {\n if (index + 1 < this.dataService.itemsCount) {\n this.search(text, index + 1);\n }\n else {\n this.selectionService.focus(-1);\n }\n }\n else {\n this.selectionService.focus(index);\n if (this.suggest) {\n this.suggestedText = getter(this.dataService.itemAt(index), this.valueField);\n }\n }\n }\n navigate(index) {\n if (!this.isOpen) {\n return;\n }\n this.selectionService.focus(index);\n }\n /**\n * @hidden\n */\n handleNavigate(event) {\n const focused = isNaN(this.selectionService.focused) ? this.firstFocusableIndex(0) : this.selectionService.focused;\n if (this.disabled || this.readonly || isNaN(focused)) {\n return;\n }\n const action = this.navigationService.process({\n current: focused,\n max: this.dataService.itemsCount - 1,\n min: 0,\n originalEvent: event\n });\n if (action !== NavigationAction.Undefined &&\n action !== NavigationAction.Backspace &&\n action !== NavigationAction.Delete &&\n action !== NavigationAction.Home &&\n action !== NavigationAction.End &&\n action !== NavigationAction.Left &&\n action !== NavigationAction.Right &&\n ((action === NavigationAction.Enter && this.isOpen) || action !== NavigationAction.Enter)) {\n event.preventDefault();\n }\n }\n handleEnter(event) {\n const focused = this.selectionService.focused;\n let value;\n this._filtering = false;\n if (this.isOpen) {\n event.originalEvent.preventDefault();\n }\n if (focused >= 0) {\n value = getter(this.dataService.itemAt(focused), this.valueField);\n }\n else {\n const match = this.suggest && this.suggestedText && this.data.length &&\n getter(this.dataService.itemAt(0), this.valueField, true).toLowerCase() === this.searchbar.value.toLowerCase();\n if (this.isOpen && match) {\n value = this.suggestedText;\n }\n else {\n value = this.searchbar.value;\n }\n }\n this.change(value);\n }\n handleEscape() {\n this.togglePopup(false);\n this.selectionService.focused = -1;\n this.suggestedText = null;\n }\n /**\n * @hidden\n */\n searchBarChange(text) {\n const currentTextLength = isPresent(this.text) ? this.text.length : 0;\n this.backspacePressed = (text.length < currentTextLength) ? true : false;\n this.text = text;\n this.togglePopup(text.length > 0);\n this._filtering = true;\n if (!this.highlightFirst) {\n this.selectionService.focused = -1;\n }\n if (this.filterable) {\n this.filterChange.emit(text);\n }\n else if (this.highlightFirst) {\n this.search(text);\n }\n }\n /**\n * @hidden\n */\n handleFocus() {\n this.isFocused = true;\n this.onFocus.emit();\n }\n /**\n * @hidden\n */\n handleBlur() {\n this._filtering = false;\n const focused = this.filterable ? this.selectionService.focused : -1;\n let dataItem;\n let text;\n if (focused !== -1) {\n dataItem = this.dataService.itemAt(focused);\n text = getter(dataItem, this.valueField, true) || \"\";\n }\n else {\n text = this.searchbar.value;\n }\n const exactMatch = text === this.searchbar.value;\n const insensitiveMatch = text.toLowerCase() === this.searchbar.value.toLowerCase();\n if (!exactMatch && insensitiveMatch) {\n this.selectionService.resetSelection([]);\n }\n this.change(this.searchbar.value);\n this.togglePopup(false);\n this.isFocused = false;\n this.onBlur.emit();\n this.onTouchedCallback();\n }\n /**\n * @hidden\n */\n pageChange(event) {\n const virtual = this.virtual;\n virtual.skip = event.skip;\n }\n setState(newValue) {\n if (this._filtering) {\n return;\n }\n this.value = newValue;\n this._previousValue = this.value;\n this.text = this.value;\n }\n change(value) {\n this.togglePopup(false);\n this.valueChangeSubject.next(value);\n }\n subscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.valueChangeSubscription = this.valueChangeSubject.pipe(filter((candidate) => {\n return !(this.value === candidate && this.text === candidate);\n }))\n .subscribe((value) => {\n this.value = value;\n this.text = value;\n this.emitChange();\n });\n this.changeSubscription = this.selectionService.onChange.subscribe(this.handleItemChange.bind(this));\n this.focusSubscription = this.selectionService.onFocus.subscribe(this.handleItemFocus.bind(this));\n this.navigationSubscription = merge(this.navigationService.up, this.navigationService.down).subscribe((event) => this.navigate(event.index));\n this.closeSubscription = this.navigationService.close.subscribe(() => this.togglePopup(false));\n this.enterSubscription = this.navigationService.enter.subscribe(this.handleEnter.bind(this));\n this.escSubscription = this.navigationService.esc.subscribe(this.handleEscape.bind(this));\n }\n unsubscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.changeSubscription.unsubscribe();\n this.navigationSubscription.unsubscribe();\n this.closeSubscription.unsubscribe();\n this.enterSubscription.unsubscribe();\n this.escSubscription.unsubscribe();\n this.valueChangeSubscription.unsubscribe();\n this.focusSubscription.unsubscribe();\n }\n handleItemChange(event) {\n const index = event.indices.length ? event.indices[0] : undefined;\n this._filtering = false;\n this.selectionService.resetSelection([-1]);\n if (!isPresent(index)) {\n return;\n }\n let text = getter(this.dataService.itemAt(index), this.valueField);\n this.change(text);\n }\n handleItemFocus(_event) {\n const focused = this.selectionService.focused;\n const shouldSuggest = Boolean(this.suggest && this.data && this.data.length && focused >= 0);\n if (shouldSuggest) {\n this.suggestedText = getter(this.dataService.itemAt(focused), this.valueField);\n }\n }\n createPopup() {\n if (this.virtual) {\n this.virtual.skip = 0;\n }\n const horizontalAlign = this.direction === \"rtl\" ? \"right\" : \"left\";\n const anchorPosition = { horizontal: horizontalAlign, vertical: \"bottom\" };\n const popupPosition = { horizontal: horizontalAlign, vertical: \"top\" };\n this.popupRef = this.popupService.open({\n anchor: this.wrapper,\n animate: this.popupSettings.animate,\n appendTo: this.appendTo,\n content: this.popupTemplate,\n popupClass: this.listContainerClasses,\n positionMode: 'absolute',\n popupAlign: popupPosition,\n anchorAlign: anchorPosition\n });\n const popupWrapper = this.popupRef.popupElement;\n const { min, max } = this.width;\n popupWrapper.addEventListener('mousedown', this.popupMouseDownHandler);\n popupWrapper.style.minWidth = min;\n popupWrapper.style.width = max;\n popupWrapper.style.height = this.height;\n popupWrapper.setAttribute(\"dir\", this.direction);\n this.popupRef.popupOpen.subscribe(() => {\n this.cdr.detectChanges();\n this.optionsList.scrollToItem(this.selectionService.focused);\n });\n this.popupRef.popupAnchorViewportLeave.subscribe(() => this.togglePopup(false));\n }\n destroyPopup() {\n if (this.popupRef) {\n this.popupRef.popupElement\n .removeEventListener('mousedown', this.popupMouseDownHandler);\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n _toggle(open) {\n this._open = (open === undefined) ? !this._open : open;\n this.destroyPopup();\n if (this._open) {\n this.createPopup();\n }\n }\n triggerPopupEvents(open) {\n const eventArgs = new PreventableEvent();\n if (open) {\n this.open.emit(eventArgs);\n }\n else {\n this.close.emit(eventArgs);\n }\n return eventArgs.isDefaultPrevented();\n }\n firstFocusableIndex(index) {\n const maxIndex = this.data.length - 1;\n if (this.disabledItemsService.isIndexDisabled(index)) {\n return (index < maxIndex) ? this.firstFocusableIndex(index + 1) : undefined;\n }\n else {\n return index;\n }\n }\n findIndexPredicate(text) {\n if (this.dataService.grouped) {\n return (item) => {\n let itemText = getter(item.value, this.valueField);\n itemText = !isPresent(itemText) ? \"\" : itemText.toString().toLowerCase();\n return itemText.startsWith(text.toLowerCase());\n };\n }\n else {\n return (item) => {\n let itemText = getter(item, this.valueField);\n itemText = !isPresent(itemText) ? \"\" : itemText.toString().toLowerCase();\n return itemText.startsWith(text.toLowerCase());\n };\n }\n }\n setMessages() {\n this._zone.runOutsideAngular(() => {\n clearTimeout(this.messagesTimeout);\n this.messagesTimeout = setTimeout(() => {\n this.noDataText = this.localization.get('noDataText');\n this.cdr.detectChanges();\n });\n });\n }\n}\nAutoCompleteComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoAutoComplete',\n providers: [\n AUTOCOMPLETE_VALUE_ACCESSOR,\n DataService,\n SelectionService,\n NavigationService,\n DisabledItemsService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.autocomplete'\n },\n {\n provide: FilterableDropDownComponentBase, useExisting: forwardRef(() => AutoCompleteComponent)\n },\n {\n provide: KendoInput, useExisting: forwardRef(() => AutoCompleteComponent)\n }\n ],\n selector: 'kendo-autocomplete',\n template: `\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n
\n \n \n \n
{{ noDataText }}
\n
\n
\n \n \n \n
\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nAutoCompleteComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: DataService },\n { type: PopupService },\n { type: SelectionService },\n { type: NavigationService },\n { type: DisabledItemsService },\n { type: NgZone },\n { type: ChangeDetectorRef },\n { type: Renderer2 },\n { type: ElementRef }\n];\nAutoCompleteComponent.propDecorators = {\n highlightFirst: [{ type: Input }],\n focusableId: [{ type: Input }],\n data: [{ type: Input }],\n value: [{ type: Input }],\n valueField: [{ type: Input }],\n placeholder: [{ type: Input }],\n popupSettings: [{ type: Input }],\n listHeight: [{ type: Input }],\n loading: [{ type: Input }],\n clearButton: [{ type: Input }],\n suggest: [{ type: Input }],\n disabled: [{ type: Input }],\n itemDisabled: [{ type: Input }],\n readonly: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input, args: [\"tabIndex\",] }],\n filterable: [{ type: Input }],\n virtual: [{ type: Input }],\n valueChange: [{ type: Output }],\n filterChange: [{ type: Output }],\n open: [{ type: Output }],\n close: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n template: [{ type: ContentChild, args: [ItemTemplateDirective,] }],\n headerTemplate: [{ type: ContentChild, args: [HeaderTemplateDirective,] }],\n footerTemplate: [{ type: ContentChild, args: [FooterTemplateDirective,] }],\n noDataTemplate: [{ type: ContentChild, args: [NoDataTemplateDirective,] }],\n groupTemplate: [{ type: ContentChild, args: [GroupTemplateDirective,] }],\n fixedGroupTemplate: [{ type: ContentChild, args: [FixedGroupTemplateDirective,] }],\n container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef },] }],\n popupTemplate: [{ type: ViewChild, args: ['popupTemplate',] }],\n searchbar: [{ type: ViewChild, args: [SearchBarComponent,] }],\n optionsList: [{ type: ViewChild, args: ['optionsList',] }],\n widgetClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-autocomplete',] }, { type: HostBinding, args: ['class.k-header',] }],\n isFocused: [{ type: HostBinding, args: ['class.k-state-focused',] }],\n isDisabled: [{ type: HostBinding, args: ['class.k-state-disabled',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }]\n};\n\n/**\n * @hidden\n */\nconst TOUCH_ENABLED = new InjectionToken('dropdowns-touch-enabled');\n\n/**\n * @hidden\n */\n/* tslint:disable:max-line-length */\n/* tslint:disable:variable-name */\nconst MultiselectMessages = {\n 'array': 'Expected values of array type. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/#value-selection',\n 'object': 'Expected values of Object type. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/#value-selection',\n 'primitive': 'Expected values of primitive type. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/#value-selection',\n 'textAndValue': 'Expected textField and valueField options to be set. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/#toc-bind-to-arrays-of-complex-data'\n};\n/**\n * @hidden\n */\n/* tslint:disable:max-line-length */\n/* tslint:disable:variable-name */\nconst ComboBoxMessages = {\n 'object': 'Expected value of type Object. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/#toc-value-selection',\n 'primitive': 'Expected value of primitive type. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/#toc-value-selection',\n 'textAndValue': 'Expected textField and valueField options to be set. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/combobox/#toc-bind-to-arrays-of-complex-data',\n 'noItemHeight': 'Expected virtual.itemHeight of type number.'\n};\n/**\n * @hidden\n */\n/* tslint:disable:max-line-length */\n/* tslint:disable:variable-name */\nconst DropDownListMessages = {\n 'defaultItem': 'defaultItem and data items must be of same type. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/api/DropDownListComponent/#toc-defaultitem',\n 'object': 'Expected value of type Object. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/#toc-value-selection',\n 'primitive': 'Expected value of primitive type. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/#toc-value-selection',\n 'textAndValue': 'Expected textField and valueField options to be set. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/#toc-bind-to-arrays-of-complex-data'\n};\n\n/* tslint:disable:no-null-keyword */\n/**\n * @hidden\n */\nconst COMBOBOX_VALUE_ACCESSOR = {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => ComboBoxComponent)\n};\n/**\n * Represents the [Kendo UI ComboBox component for Angular]({% slug overview_combobox %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public listItems: Array = [\"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\"];\n * }\n * ```\n */\nclass ComboBoxComponent {\n constructor(localization, popupService, selectionService, navigationService, disabledItemsService, dataService, _zone, cdr, renderer, wrapper, touchEnabled) {\n this.localization = localization;\n this.popupService = popupService;\n this.selectionService = selectionService;\n this.navigationService = navigationService;\n this.disabledItemsService = disabledItemsService;\n this.dataService = dataService;\n this._zone = _zone;\n this.cdr = cdr;\n this.renderer = renderer;\n this.touchEnabled = touchEnabled;\n this.selected = [];\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Specifies whether the ComboBox allows user-defined values that are not present in the dataset\n * ([more information and examples]({% slug custom_values_combobox %})).\n * Defaults to `false`.\n */\n this.allowCustom = false;\n /**\n * A user-defined callback which returns normalized custom values.\n * Typically used when the data items are different from type `string`.\n * @param { Any } value - The custom value defined by the user.\n * @returns { Any }\n *\n * @example\n * ```ts\n * import { map } from 'rxjs/operators';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public listItems: Array<{ text: string, value: number }> = [\n * { text: \"Small\", value: 1 },\n * { text: \"Medium\", value: 2 },\n * { text: \"Large\", value: 3 }\n * ];\n *\n * public onValueChange(value) {\n * console.log(\"valueChange : \", value);\n * }\n *\n * public valueNormalizer = (text$: Observable) => text$.pipe(map((text: string) => {\n * return { ProductID: null, ProductName: text };\n * }));\n *\n * }\n * ```\n */\n this.valueNormalizer = (text) => text.pipe(map((userInput) => userInput));\n /**\n * The hint that is displayed when the component is empty.\n *\n */\n this.placeholder = \"\";\n /**\n * Sets the height of the suggestions list. By default, `listHeight` is 200px.\n *\n * > The `listHeight` property affects only the list of suggestions and not the whole popup container.\n * > To set the height of the popup container, use `popupSettings.height`.\n */\n this.listHeight = 200;\n /**\n * Enables the auto-completion of the text based on the first data item.\n */\n this.suggest = false;\n /**\n * If set to `true`, renders a button on hovering over the component.\n * Clicking this button resets the value of the component to `undefined` and triggers the `change` event.\n */\n this.clearButton = true;\n /**\n * Sets the disabled state of the component.\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the component.\n */\n this.readonly = false;\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n this.tabindex = 0;\n /**\n * Enables the [filtering]({% slug filtering_combobox %}) functionality.\n * If set to `true`, the component emits the `filterChange` event.\n */\n this.filterable = false;\n /**\n * Fires each time the value is changed—\n * when the component is blurred or the value is cleared through the **Clear** button\n * ([see example]({% slug overview_combobox %}#toc-events)).\n * When the value of the component is programmatically changed to `ngModel` or `formControl`\n * through its API or form binding, the `valueChange` event is not triggered because it\n * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time an item selection is changed\n * ([see example]({% slug overview_combobox %}#toc-events)).\n */\n this.selectionChange = new EventEmitter();\n /**\n * Fires each time the user types in the input field.\n * You can filter the source based on the passed filtration value\n * ([see example]({% slug overview_combobox %}#toc-events)).\n */\n this.filterChange = new EventEmitter();\n /**\n * Fires each time the popup is about to open.\n * This event is preventable. If you cancel it, the popup will remain closed.\n */\n this.open = new EventEmitter();\n /**\n * Fires each time the popup is about to close.\n * This event is preventable. If you cancel it, the popup will remain open.\n */\n this.close = new EventEmitter();\n /**\n * Fires each time the user focuses the ComboBox.\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the ComboBox gets blurred.\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n this.widgetClasses = true;\n this.isFocused = false;\n this.listBoxId = guid();\n this.optionPrefix = guid();\n this.onChangeCallback = (_) => { };\n this.onTouchedCallback = (_) => { };\n this._filtering = false;\n this._text = '';\n this.filterText = '';\n this._open = false;\n this._popupSettings = { animate: true };\n this.popupMouseDownHandler = (event) => event.preventDefault();\n this.customValueSubject = new Subject();\n this.valueSubject = new Subject();\n this.clearValueSubject = new Subject();\n this.selectionSubject = new Subject();\n this.subs = new Subscription();\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.wrapper = wrapper.nativeElement;\n this.data = [];\n }\n get width() {\n let wrapperOffsetWidth = 0;\n if (isDocumentAvailable()) {\n wrapperOffsetWidth = this.wrapper.offsetWidth;\n }\n const width = this.popupSettings.width || wrapperOffsetWidth;\n const minWidth = isNaN(wrapperOffsetWidth) ? wrapperOffsetWidth : `${wrapperOffsetWidth}px`;\n const maxWidth = isNaN(width) ? width : `${width}px`;\n return { min: minWidth, max: maxWidth };\n }\n get height() {\n const popupHeight = this.popupSettings.height;\n return isPresent(popupHeight) ? `${popupHeight}px` : 'auto';\n }\n set text(text) {\n this._text = isPresent(text) ? text.toString() : \"\";\n }\n get text() {\n return this._text;\n }\n /**\n * @hidden\n */\n togglePopup(open) {\n const isDisabled = this.disabled || this.readonly;\n const sameState = this.isOpen === open;\n if (isDisabled || sameState) {\n return;\n }\n const isDefaultPrevented = this.triggerPopupEvents(open);\n if (!isDefaultPrevented) {\n this._toggle(open);\n }\n }\n get activeDescendant() {\n if (!this.isOpen || !isPresent(this.selectionService.focused) || this.selectionService.focused === -1) {\n return null;\n }\n const dataItem = this.dataService.itemAt(this.selectionService.focused);\n return this.optionPrefix + \"-\" + (dataItem ? getter(dataItem, this.valueField) : \"\");\n }\n get noDataLabel() {\n if (this.data.length === 0) {\n return this.noDataText;\n }\n }\n get clearTitle() {\n return this.localization.get('clearTitle');\n }\n get appendTo() {\n const { appendTo } = this.popupSettings;\n if (!appendTo || appendTo === 'root') {\n return undefined;\n }\n return appendTo === 'component' ? this.container : appendTo;\n }\n /**\n * Sets the data of the ComboBox.\n *\n * > The data has to be provided in an array-like list.\n */\n set data(data) {\n this.dataService.data = data || [];\n if (this.virtual) {\n this.virtual.skip = 0;\n }\n this.setState();\n if (this._filtering) {\n const queryAndDataPresent = this.text.length > 0 && this.dataService.itemsCount > 0;\n const index = queryAndDataPresent ? this.firstFocusableIndex(0) : -1;\n this.selectionService.focused = index;\n }\n if (this.suggest && this.dataService.itemsCount && this.text) {\n this.suggestedText = getter(this.dataService.itemAt(0), this.textField);\n }\n }\n get data() {\n const virtual = this.virtual;\n if (virtual) {\n const start = virtual.skip || 0;\n const end = start + virtual.pageSize;\n // Use length instead of itemsCount because of the grouping.\n virtual.total = this.dataService.data.length;\n return this.dataService.data.slice(start, end);\n }\n return this.dataService.data;\n }\n /**\n * Sets the value of the ComboBox.\n * It can either be of the primitive (string, numbers) or of the complex (objects) type.\n * To define the type, use the `valuePrimitive` option.\n *\n * > All selected values which are not present in the dataset are considered custom values.\n * > When the `Enter` key is pressed or the component loses focus, custom values get dismissed unless `allowCustom` is set to `true`.\n */\n set value(newValue) {\n this.verifySettings(newValue);\n this._value = newValue;\n this.cdr.markForCheck();\n }\n get value() {\n return this._value;\n }\n /**\n * Configures the popup of the ComboBox.\n *\n * The available options are:\n * - `animate: Boolean`—Controls the popup animation. By default, the open and close animations are enabled.\n * - `width: Number | String`—Sets the width of the popup container. By default, the width of the host element is used. If set to `auto`, the component automatically adjusts the width of the popup and no item labels are wrapped. The `auto` mode is not supported when virtual scrolling is enabled.\n * - `height: Number`—Sets the height of the popup container.\n * - `popupClass: String`—Specifies a list of CSS classes that are used to style the popup.\n * - `appendTo: \"root\" | \"component\" | ViewContainerRef`—Specifies the component to which the popup will be appended.\n */\n set popupSettings(settings) {\n this._popupSettings = Object.assign({ animate: true }, settings);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * Defines a Boolean function that is executed for each data item in the component\n * ([see examples]({% slug disableditems_combobox %})). Determines whether the item will be disabled.\n */\n set itemDisabled(fn) {\n if (typeof fn !== 'function') {\n throw new Error(`itemDisabled must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this.disabledItemsService.itemDisabled = fn;\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n /**\n * Enables the [virtualization]({% slug virtualization_combobox %}) functionality.\n */\n set virtual(settings) {\n this._virtualSettings = normalizeVirtualizationSettings(settings);\n }\n get virtual() {\n return this._virtualSettings;\n }\n get clearable() {\n return this.clearButton;\n }\n get dir() {\n return this.direction;\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.wrapper, \"tabindex\");\n this.attachStreams();\n this.createSelectionStream();\n this.createValueStream();\n this.setMessages();\n }\n createValueStream() {\n const valueStream = this.valueSubject.pipe(filter((candidate) => {\n const valueFrom = this.prop(this.valueField, this.valuePrimitive);\n const textFrom = this.prop(this.textField, this.valuePrimitive);\n const current = valueFrom(this.value);\n const newValue = valueFrom(candidate);\n let newText = textFrom(candidate);\n if (!isPresent(this.value) && !isPresent(newValue)) {\n return false;\n }\n if (isPresent(newText)) {\n newText = newText.toString();\n }\n if (current === newValue && this.text === newText) {\n this.clearFilter();\n return false;\n }\n else {\n return true;\n }\n }), map((candidate) => {\n const valueFrom = this.prop(this.valueField, this.valuePrimitive);\n const textFrom = this.prop(this.textField, this.valuePrimitive);\n const newValue = valueFrom(candidate);\n const newText = textFrom(candidate);\n return {\n dataItem: candidate,\n text: newText,\n value: this.valuePrimitive ? newValue : candidate\n };\n }));\n const customValueStreams = partition(() => this.allowCustom)(this.customValueSubject.pipe(throttleTime(300)));\n const allowCustomValueStream = customValueStreams[0].pipe(tap(() => {\n this.loading = true;\n this.disabled = true;\n this.cdr.detectChanges();\n }), filter(() => {\n const valueFrom = this.prop(this.valueField, this.valuePrimitive);\n const hasChange = this.text !== valueFrom(this.value);\n this.loading = hasChange;\n this.disabled = hasChange;\n if (!hasChange) {\n this.clearFilter();\n }\n return hasChange;\n }), this.valueNormalizer, map((normalizedValue) => {\n return {\n custom: true,\n dataItem: normalizedValue,\n text: this.text,\n value: normalizedValue\n };\n }));\n const disableCustomValueStream = customValueStreams[1].pipe(map(() => {\n return {\n custom: true,\n dataItem: undefined,\n text: undefined,\n value: undefined\n };\n }));\n const clearValueStream = this.clearValueSubject.pipe(map(() => ({\n dataItem: undefined,\n text: undefined,\n value: undefined\n })));\n if (this.valueSubscription) {\n this.valueSubscription.unsubscribe();\n }\n const merged = merge(valueStream, allowCustomValueStream, disableCustomValueStream, clearValueStream);\n this.valueSubscription = merged.pipe(catchError(() => {\n this.dataItem = undefined;\n this.value = undefined;\n this.text = undefined;\n this.loading = false;\n this.disabled = false;\n this.emitSelectionChange(undefined);\n this.emitValueChange();\n this.createValueStream();\n return of(null);\n }))\n .subscribe((state) => {\n this.dataItem = state.dataItem;\n this.value = state.value;\n this.text = state.text;\n this.loading = false;\n this.disabled = false;\n this.clearFilter();\n if (state.custom) {\n this.selectionService.focused = -1;\n }\n this.emitSelectionChange(state.custom ? undefined : this.dataItem);\n this.emitValueChange();\n });\n }\n attachStreams() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.subs.add(this.localization\n .changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n this.setMessages();\n }));\n this.subs.add(merge(this.navigationService.up, this.navigationService.down, this.navigationService.home, this.navigationService.end)\n .pipe(filter((event) => isPresent(event.index)))\n .subscribe((event) => this.navigate(event.index)));\n this.subs.add(this.navigationService.open.subscribe(this.handleNavigationOpen.bind(this)));\n this.subs.add(this.navigationService.close.subscribe(() => this.togglePopup(false)));\n this.subs.add(this.navigationService.esc.subscribe(this.handleEscape.bind(this)));\n this.subs.add(this.navigationService.enter.pipe(tap((event) => {\n if (this.isOpen) {\n event.originalEvent.preventDefault();\n }\n }))\n .subscribe(this.handleEnter.bind(this)));\n this.subs.add(merge(this.selectionService.onChange, this.selectionService.onSelect.pipe(filter(_ => !this.isOpen)))\n .pipe(tap(_ => {\n this._filtering = false;\n this.togglePopup(false);\n }), map((event) => this.dataService.itemAt(event.indices[0])))\n .subscribe(dataItem => {\n this.change(dataItem);\n }));\n this.subs.add(this.selectionService.onSelect.pipe(filter(_ => this.isOpen), tap(_ => this._filtering = false), map((event) => this.dataService.itemAt(event.indices[0])))\n .subscribe(dataItem => {\n this.updateState({ dataItem });\n this.emitSelectionChange(dataItem);\n }));\n }\n ngOnDestroy() {\n this.destroyPopup();\n clearTimeout(this.messagesTimeout);\n this.subs.unsubscribe();\n [this.valueSubscription, this.selectionSubscription].forEach(sub => isPresent(sub) && sub.unsubscribe());\n }\n ngOnChanges(changes) {\n const virtual = this.virtual;\n const requestInitialData = virtual && changes.data && changes.data.isFirstChange();\n if (requestInitialData) {\n this.pageChange({ skip: 0, take: virtual.pageSize });\n }\n if (this.valuePrimitive === undefined) {\n this.valuePrimitive = this.valueField ? false : true;\n }\n this.verifySettings(this.value);\n if (isChanged(\"valueNormalizer\", changes)) {\n this.createValueStream();\n }\n if (isChanged(\"value\", changes)) {\n this.createSelectionStream();\n }\n if (this.valuePrimitive === undefined) {\n this.valuePrimitive = this.valueField ? false : true;\n }\n const STATE_PROPS = /(value|textField|valueField|valuePrimitive)/g;\n if (STATE_PROPS.test(Object.keys(changes).join())) {\n this.setState();\n }\n }\n /**\n * Focuses the ComboBox.\n */\n focus() {\n if (!this.disabled) {\n this.searchbar.focus();\n }\n }\n /**\n * Blurs the ComboBox.\n */\n blur() {\n if (!this.disabled) {\n this.searchbar.blur();\n }\n }\n /**\n * Toggles the visibility of the popup. If you use the `toggle` method to open or close the popup,\n * the `open` and `close` events will not be fired.\n *\n * @param open - The state of the popup.\n */\n toggle(open) {\n Promise.resolve(null).then(() => {\n this._toggle(open);\n this.cdr.markForCheck();\n });\n }\n /**\n * Returns the current open state of the popup.\n */\n get isOpen() {\n return this._open;\n }\n /**\n * Resets the value of the ComboBox.\n * If you use the `reset` method to clear the value of the component,\n * the model will not update automatically and the `selectionChange` and `valueChange` events will not be fired.\n */\n reset() {\n this.value = undefined;\n this.clearState();\n this.resetSelection();\n this.createSelectionStream();\n }\n /**\n * @hidden\n *\n * Used by the TextBoxContainer to determine if the floating label\n * should be rendered in the input when the component is not focused.\n */\n isEmpty() {\n const textEmpty = !isPresent(this.text) || isEmptyString(this.text);\n const valueEmpty = !isPresent(this.value) || isEmptyString(this.value);\n return textEmpty && valueEmpty;\n }\n /**\n * @hidden\n */\n clearValue(event) {\n event.stopImmediatePropagation();\n this.focus();\n this._filtering = true;\n this._previousDataItem = undefined;\n this.selectionService.resetSelection([]);\n this.clearValueSubject.next();\n this._filtering = false;\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.text = \"\";\n this.value = value === null ? undefined : value;\n this.setState();\n this.createSelectionStream();\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onChangeCallback = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onTouchedCallback = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n */\n get buttonClasses() {\n return this.loading ? 'k-i-loading' : this.iconClass || 'k-i-arrow-s';\n }\n /**\n * @hidden\n */\n onResize() {\n if (this.isOpen) {\n const popupWrapper = this.popupRef.popupElement;\n const { min, max } = this.width;\n popupWrapper.style.minWidth = min;\n popupWrapper.style.width = max;\n }\n }\n verifySettings(newValue) {\n const valueOrText = !isPresent(this.valueField) !== !isPresent(this.textField);\n if (!isDevMode()) {\n return;\n }\n if (this.valuePrimitive === true && isPresent(newValue) && typeof newValue === \"object\") {\n throw new Error(ComboBoxMessages.primitive);\n }\n if (this.valuePrimitive === false && isPresent(newValue) && typeof newValue !== \"object\") {\n throw new Error(ComboBoxMessages.object);\n }\n if (valueOrText) {\n throw new Error(ComboBoxMessages.textAndValue);\n }\n if (this.virtual && isNaN(this.virtual.itemHeight)) {\n throw new Error(ComboBoxMessages.noItemHeight);\n }\n }\n setState() {\n // Filtering in process, do nothing.\n if (this._filtering) {\n return;\n }\n const value = this.value;\n const valueField = this.valueField;\n const primitive = this.valuePrimitive;\n const resolved = this.findDataItem({ primitive, valueField, value });\n if (isPresent(resolved.dataItem)) {\n this.updateState({ dataItem: resolved.dataItem, confirm: true });\n this.resetSelection(resolved.index);\n }\n else if (isPresent(value) && this.allowCustom) {\n this.updateState({ dataItem: value });\n this.resetSelection(-1);\n }\n else if (this._previousDataItem && this.value) {\n this.updateState({ dataItem: this._previousDataItem });\n this.resetSelection();\n }\n else {\n this.clearState();\n this.resetSelection(-1);\n }\n }\n updateState({ dataItem, confirm = false }) {\n this.dataItem = dataItem;\n this.text = this.prop(this.textField, this.valuePrimitive)(dataItem);\n if (confirm) {\n this._previousDataItem = dataItem;\n }\n }\n clearState() {\n this.text = undefined;\n this.dataItem = undefined;\n }\n resetSelection(index) {\n const clear = !isPresent(index) || index < 0;\n this.selectionService.resetSelection(clear ? [] : [index]);\n this.selectionService.focused = index;\n }\n firstFocusableIndex(index) {\n const maxIndex = this.data.length - 1;\n if (this.disabledItemsService.isIndexDisabled(index)) {\n return (index < maxIndex) ? this.firstFocusableIndex(index + 1) : undefined;\n }\n else {\n return index;\n }\n }\n findIndexPredicate(text) {\n if (this.dataService.grouped) {\n return (item) => {\n let itemText = this.prop(this.textField, this.valuePrimitive)(item.value);\n itemText = !isPresent(itemText) ? \"\" : itemText.toString().toLowerCase();\n return itemText.startsWith(text.toLowerCase());\n };\n }\n else {\n return (item) => {\n let itemText = this.prop(this.textField, this.valuePrimitive)(item);\n itemText = !isPresent(itemText) ? \"\" : itemText.toString().toLowerCase();\n return itemText.startsWith(text.toLowerCase());\n };\n }\n }\n prop(field, usePrimitive) {\n return (dataItem) => {\n if (isPresent(dataItem)) {\n if (usePrimitive) {\n return field && isObject(dataItem) ? dataItem[field] : dataItem;\n }\n else {\n return dataItem[field];\n }\n }\n return null;\n };\n }\n findDataItem({ primitive, valueField, value }) {\n const result = {\n dataItem: null,\n index: -1\n };\n const prop = this.prop(valueField, primitive);\n let comparer;\n if (this.dataService.grouped) {\n comparer = (element) => {\n return prop(element.value) === prop(value);\n };\n }\n else {\n comparer = (element) => {\n return prop(element) === prop(value);\n };\n }\n const index = this.dataService.findIndex(comparer);\n result.dataItem = this.dataService.itemAt(index);\n result.index = index;\n return result;\n }\n search(text, startFrom = 0) {\n let index;\n if (text.length && this.dataService.itemsCount) {\n index = this.dataService.findIndex(this.findIndexPredicate(text), startFrom);\n }\n else {\n index = -1;\n }\n if (this.disabledItemsService.isIndexDisabled(index)) {\n if (index + 1 < this.dataService.itemsCount) {\n this.search(text, index + 1);\n }\n else {\n this.selectionService.focus(-1);\n }\n }\n else {\n this.selectionService.focus(index);\n if (this.suggest) {\n this.suggestedText = getter(this.dataService.itemAt(index), this.textField);\n }\n }\n }\n /**\n * @hidden\n */\n getSuggestion() {\n const hasSelected = !!this.selectionService.selected.length;\n const shouldSuggest = this.suggest && !this.backspacePressed && this.suggestedText && this.text;\n if (!hasSelected && shouldSuggest && this.suggestedText.toLowerCase().startsWith(this.text.toLowerCase())) {\n return this.suggestedText;\n }\n else {\n this.suggestedText = undefined;\n }\n }\n navigate(index) {\n if (this.dataService.itemsCount === 0) {\n return;\n }\n this.text = this.prop(this.textField, this.valuePrimitive)(this.dataService.itemAt(index));\n this.selectionService.select(index);\n }\n /**\n * @hidden\n */\n handleNavigate(event) {\n const hasSelected = isPresent(this.selectionService.selected[0]);\n const focused = isNaN(this.selectionService.focused) ? this.firstFocusableIndex(0) : this.selectionService.focused;\n let offset = 0;\n if (this.disabled || this.readonly) {\n return;\n }\n if (event.keyCode === Keys.home || event.keyCode === Keys.end) {\n return;\n }\n if (!hasSelected) {\n if (event.keyCode === Keys.down) {\n offset = -1;\n }\n else if (event.keyCode === Keys.up) {\n offset = 1;\n }\n }\n const action = this.navigationService.process({\n current: offset + focused,\n max: this.dataService.itemsCount - 1,\n min: 0,\n originalEvent: event\n });\n if (action !== NavigationAction.Undefined &&\n action !== NavigationAction.Left &&\n action !== NavigationAction.Right &&\n action !== NavigationAction.Backspace &&\n action !== NavigationAction.Delete &&\n ((action === NavigationAction.Enter && this.isOpen) || action !== NavigationAction.Enter)) {\n event.preventDefault();\n }\n }\n handleEnter() {\n const text = this.text;\n const focused = this.selectionService.focused;\n const hasFocused = isPresent(focused) && focused !== -1;\n const previousText = getter(this._previousDataItem, this.textField) || \"\";\n const focusedItemText = getter(this.dataService.itemAt(focused), this.textField);\n const textHasChanged = text !== previousText;\n this.togglePopup(false);\n this._filtering = false;\n if (this.allowCustom && textHasChanged) {\n if (text === focusedItemText || this.useSuggestion()) {\n this.selectionService.change(focused);\n }\n else {\n this.change(text, true);\n }\n }\n if (!this.allowCustom) {\n if (hasFocused) {\n this.selectionService.change(focused);\n }\n else if (textHasChanged) {\n this.change(text, true);\n }\n }\n }\n /**\n * @hidden\n */\n handleBlur() {\n this._filtering = false;\n const currentText = this.searchbar.value; // The value is updated, but the Angular `change` event is not emitted yet and `this.text` is not updated. Fails on suggested text.\n if (!currentText && !isPresent(this._previousDataItem) && !isPresent(this.dataItem)) {\n this.togglePopup(false);\n this.isFocused = false;\n this.onBlur.emit();\n this.onTouchedCallback();\n return;\n }\n const focused = this.selectionService.focused;\n let itemText;\n const isItemFocused = focused !== -1 && focused !== undefined;\n if (isItemFocused) {\n itemText = getter(this.dataService.itemAt(focused), this.textField);\n itemText = !isPresent(itemText) ? \"\" : itemText.toString().toLowerCase();\n }\n if (itemText === currentText.toLowerCase()) {\n this.selectionService.change(focused);\n }\n else {\n this.change(currentText, true);\n }\n this.togglePopup(false);\n this.isFocused = false;\n this.onBlur.emit();\n this.onTouchedCallback();\n }\n /**\n * @hidden\n */\n handleEscape() {\n this.togglePopup(false);\n // clear the focus only if the focused item is not selected\n const hasSelected = this.selectionService.selected.length > 0;\n if (!hasSelected) {\n this.suggestedText = null;\n this.selectionService.focused = -1;\n }\n }\n /**\n * @hidden\n */\n handleNavigationOpen() {\n this.restoreItemFocus();\n this.togglePopup(true);\n }\n /**\n * @hidden\n */\n searchBarChange(text) {\n const currentTextLength = this.text ? this.text.length : 0;\n this.backspacePressed = (text.length < currentTextLength) ? true : false;\n this.text = text;\n // Reset the selection prior to filter. If a match is present, it will be resolved. If a match is not present, it is not needed.\n this.selectionService.resetSelection([]);\n this.togglePopup(true);\n this._filtering = true;\n if (this.filterable && this.filterText !== text) {\n this.filterText = text;\n this.filterChange.emit(text);\n }\n else {\n this.search(text);\n }\n }\n /**\n * @hidden\n */\n handleFocus() {\n this.isFocused = true;\n this.onFocus.emit();\n }\n /**\n * @hidden\n */\n pageChange(event) {\n const virtual = this.virtual;\n virtual.skip = event.skip;\n }\n change(candidate, isCustom = false) {\n if (isCustom) {\n this.customValueSubject.next(candidate);\n }\n else {\n this.valueSubject.next(candidate);\n }\n }\n emitSelectionChange(dataItem) {\n this.selectionSubject.next(dataItem);\n }\n emitValueChange() {\n this.onChangeCallback(this.value);\n this.valueChange.emit(this.value);\n this._previousDataItem = this.dataItem;\n }\n /**\n * @hidden\n */\n selectClick() {\n if (!this.touchEnabled) {\n this.searchbar.focus();\n }\n if (!this.isOpen) {\n this.restoreItemFocus();\n }\n this.togglePopup(!this.isOpen);\n }\n get listContainerClasses() {\n const containerClasses = ['k-list-container', 'k-reset'];\n if (this.popupSettings.popupClass) {\n containerClasses.push(this.popupSettings.popupClass);\n }\n return containerClasses;\n }\n /**\n * Focuses the first match when there's text in the input field, but no focused item.\n */\n restoreItemFocus() {\n const hasFocus = isPresent(this.selectionService.focused) && this.selectionService.focused > -1;\n if (!hasFocus && this.text && this.dataService.itemsCount) {\n if (this.filterable) {\n this.selectionService.focused = this.firstFocusableIndex(0);\n }\n else {\n this.search(this.text);\n }\n }\n }\n useSuggestion() {\n if (!(this.suggest && isPresent(this.searchbar.value))) {\n return false;\n }\n const focusedDataItem = this.dataService.itemAt(this.selectionService.focused);\n const focusedItemText = this.prop(this.textField, this.valuePrimitive)(focusedDataItem);\n if (!isPresent(focusedItemText)) {\n return false;\n }\n return this.searchbar.value.toLowerCase() === focusedItemText.toLowerCase();\n }\n destroyPopup() {\n if (this.popupRef) {\n this.popupRef.popupElement\n .removeEventListener('mousedown', this.popupMouseDownHandler);\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n createPopup() {\n if (this.virtual) {\n this.virtual.skip = 0;\n }\n const horizontalAlign = this.direction === \"rtl\" ? \"right\" : \"left\";\n const anchorPosition = { horizontal: horizontalAlign, vertical: \"bottom\" };\n const popupPosition = { horizontal: horizontalAlign, vertical: \"top\" };\n this.popupRef = this.popupService.open({\n anchor: this.wrapper,\n animate: this.popupSettings.animate,\n appendTo: this.appendTo,\n content: this.popupTemplate,\n popupClass: this.listContainerClasses,\n positionMode: 'absolute',\n anchorAlign: anchorPosition,\n popupAlign: popupPosition\n });\n const popupWrapper = this.popupRef.popupElement;\n const { min, max } = this.width;\n popupWrapper.addEventListener('mousedown', this.popupMouseDownHandler);\n popupWrapper.style.minWidth = min;\n popupWrapper.style.width = max;\n popupWrapper.style.height = this.height;\n popupWrapper.setAttribute(\"dir\", this.direction);\n this.popupRef.popupOpen.subscribe(() => {\n this.cdr.detectChanges();\n this.optionsList.scrollToItem(this.selectionService.focused);\n });\n this.popupRef.popupAnchorViewportLeave.subscribe(() => this.togglePopup(false));\n }\n _toggle(open) {\n this._open = (open === undefined) ? !this._open : open;\n this.destroyPopup();\n if (this._open) {\n this.createPopup();\n }\n }\n triggerPopupEvents(open) {\n const eventArgs = new PreventableEvent();\n if (open) {\n this.open.emit(eventArgs);\n }\n else {\n this.close.emit(eventArgs);\n }\n return eventArgs.isDefaultPrevented();\n }\n clearFilter() {\n if (!(this.filterable && this.filterText)) {\n return;\n }\n this.filterText = '';\n this.filterChange.emit(this.filterText);\n }\n setMessages() {\n this._zone.runOutsideAngular(() => {\n clearTimeout(this.messagesTimeout);\n this.messagesTimeout = setTimeout(() => {\n this.noDataText = this.localization.get('noDataText');\n this.cdr.detectChanges();\n });\n });\n }\n createSelectionStream() {\n if (isPresent(this.selectionSubscription)) {\n this.selectionSubscription.unsubscribe();\n }\n this.selectionSubscription = this.selectionSubject\n .pipe(distinctUntilChanged())\n .subscribe(dataItem => this.selectionChange.emit(dataItem));\n }\n}\nComboBoxComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoComboBox',\n providers: [\n COMBOBOX_VALUE_ACCESSOR,\n DataService,\n SelectionService,\n NavigationService,\n DisabledItemsService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.combobox'\n },\n {\n provide: FilterableDropDownComponentBase, useExisting: forwardRef(() => ComboBoxComponent)\n },\n {\n provide: KendoInput, useExisting: forwardRef(() => ComboBoxComponent)\n }\n ],\n selector: 'kendo-combobox',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
{{ noDataText }}
\n
\n
\n \n \n \n
\n
\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nComboBoxComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: PopupService },\n { type: SelectionService },\n { type: NavigationService },\n { type: DisabledItemsService },\n { type: DataService },\n { type: NgZone },\n { type: ChangeDetectorRef },\n { type: Renderer2 },\n { type: ElementRef },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [TOUCH_ENABLED,] }] }\n];\nComboBoxComponent.propDecorators = {\n focusableId: [{ type: Input }],\n allowCustom: [{ type: Input }],\n data: [{ type: Input }],\n value: [{ type: Input }],\n textField: [{ type: Input }],\n valueField: [{ type: Input }],\n valuePrimitive: [{ type: Input }],\n valueNormalizer: [{ type: Input }],\n placeholder: [{ type: Input }],\n popupSettings: [{ type: Input }],\n listHeight: [{ type: Input }],\n iconClass: [{ type: Input }],\n loading: [{ type: Input }],\n suggest: [{ type: Input }],\n clearButton: [{ type: Input }],\n disabled: [{ type: Input }],\n itemDisabled: [{ type: Input }],\n readonly: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input, args: [\"tabIndex\",] }],\n filterable: [{ type: Input }],\n virtual: [{ type: Input }],\n valueChange: [{ type: Output }],\n selectionChange: [{ type: Output }],\n filterChange: [{ type: Output }],\n open: [{ type: Output }],\n close: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n template: [{ type: ContentChild, args: [ItemTemplateDirective,] }],\n headerTemplate: [{ type: ContentChild, args: [HeaderTemplateDirective,] }],\n footerTemplate: [{ type: ContentChild, args: [FooterTemplateDirective,] }],\n noDataTemplate: [{ type: ContentChild, args: [NoDataTemplateDirective,] }],\n groupTemplate: [{ type: ContentChild, args: [GroupTemplateDirective,] }],\n fixedGroupTemplate: [{ type: ContentChild, args: [FixedGroupTemplateDirective,] }],\n container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef },] }],\n popupTemplate: [{ type: ViewChild, args: ['popupTemplate',] }],\n searchbar: [{ type: ViewChild, args: [SearchBarComponent,] }],\n optionsList: [{ type: ViewChild, args: ['optionsList',] }],\n widgetClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-combobox',] }, { type: HostBinding, args: ['class.k-header',] }],\n clearable: [{ type: HostBinding, args: ['class.k-combobox-clearable',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }]\n};\n\n/* tslint:disable:max-line-length */\n/**\n * Renders the selected value of the DropDownList\n * ([see example]({% slug templates_ddl %}#toc-value-template)).\n * The template context is set to the current component.\n * To get a reference to the current data item, use the `let-dataItem` directive.\n *\n * > The `ValueTemplate` directive can only be used with the DropDownList component.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * {{dataItem}} option\n * \n * \n * `\n * })\n * class AppComponent {\n * public listItems: Array = [\"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\"];\n * }\n * ```\n */\nclass ValueTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nValueTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDropDownListValueTemplate]'\n },] },\n];\n/** @nocollapse */\nValueTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/* tslint:disable:max-line-length */\n/**\n * @hidden\n */\nconst DROPDOWNLIST_VALUE_ACCESSOR = {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DropDownListComponent)\n};\n/**\n * Represents the [Kendo UI DropDownList component for Angular]({% slug overview_ddl %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public listItems: Array = [\"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\"];\n * }\n * ```\n */\nclass DropDownListComponent {\n constructor(localization, popupService, selectionService, navigationService, disabledItemsService, dataService, _zone, renderer, hostElement, cdr, touchEnabled) {\n this.localization = localization;\n this.popupService = popupService;\n this.selectionService = selectionService;\n this.navigationService = navigationService;\n this.disabledItemsService = disabledItemsService;\n this.dataService = dataService;\n this._zone = _zone;\n this.renderer = renderer;\n this.hostElement = hostElement;\n this.cdr = cdr;\n this.touchEnabled = touchEnabled;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Sets the height of the options list. By default, `listHeight` is 200px.\n *\n * > The `listHeight` property affects only the list of options and not the whole popup container.\n * > To set the height of the popup container, use `popupSettings.height`.\n */\n this.listHeight = 200;\n /**\n * Sets the disabled state of the component.\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the component.\n */\n this.readonly = false;\n /**\n * Enables the [filtering]({% slug filtering_ddl %}) functionality of the DropDownList.\n */\n this.filterable = false;\n /**\n * Enables a case-insensitive search. When filtration is disabled, use this option.\n */\n this.ignoreCase = true;\n /**\n * Sets the delay before an item search is performed. When filtration is disabled, use this option.\n */\n this.delay = 500;\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n this.tabindex = 0;\n /**\n * Fires each time the value is changed ([see example]({% slug overview_ddl %}#toc-events)).\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time the user types in the input field\n * ([see example]({% slug overview_ddl %}#toc-events)).\n * You can filter the source based on the passed filtration value.\n * When the value of the component is programmatically changed to `ngModel` or `formControl`\n * through its API or form binding, the `valueChange` event is not triggered because it\n * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.\n */\n this.filterChange = new EventEmitter();\n /**\n * Fires each time the item selection is changed\n * ([see example]({% slug overview_ddl %}#toc-events)).\n */\n this.selectionChange = new EventEmitter();\n /**\n * Fires each time the popup is about to open\n * ([see example]({% slug openstate_ddl %}#toc-preventing-opening-and-closing)).\n * This event is preventable. If you cancel it, the popup will remain closed.\n */\n this.open = new EventEmitter();\n /**\n * Fires each time the popup is about to close\n * ([see example]({% slug openstate_ddl %}#toc-preventing-opening-and-closing)).\n * This event is preventable. If you cancel it, the popup will remain open.\n */\n this.close = new EventEmitter();\n /**\n * Fires each time the user focuses the DropDownList.\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the DropDownList gets blurred.\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n this.widgetClasses = true;\n this.groupIndices = [];\n this.listBoxId = guid();\n this.optionPrefix = guid();\n this.filterText = \"\";\n this.isFocused = false;\n this.onTouchedCallback = (_) => { };\n this.onChangeCallback = (_) => { };\n this.word = \"\";\n this.last = \"\";\n this.filterFocused = new EventEmitter();\n this.filterBlurred = new EventEmitter();\n this.wrapperFocused = new EventEmitter();\n this.wrapperBlurred = new EventEmitter();\n this.selectionSubscription = new Subscription();\n this._open = false;\n this._popupSettings = { animate: true };\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.data = [];\n this.subscribeEvents();\n this.hostElement = hostElement.nativeElement;\n this.popupMouseDownHandler = this.onMouseDown.bind(this);\n }\n get width() {\n const wrapperWidth = isDocumentAvailable() ? this.wrapper.nativeElement.offsetWidth : 0;\n const width = this.popupSettings.width || wrapperWidth;\n const minWidth = isNaN(wrapperWidth) ? wrapperWidth : `${wrapperWidth}px`;\n const maxWidth = isNaN(width) ? width : `${width}px`;\n return { min: minWidth, max: maxWidth };\n }\n get height() {\n const popupHeight = this.popupSettings.height;\n return isPresent(popupHeight) ? `${popupHeight}px` : 'auto';\n }\n get widgetTabIndex() {\n if (this.disabled) {\n return undefined;\n }\n const providedTabIndex = Number(this.tabIndex);\n const defaultTabIndex = 0;\n return !isNaN(providedTabIndex) ? providedTabIndex : defaultTabIndex;\n }\n get ariaExpanded() {\n return this.isOpen;\n }\n get ariaOwns() {\n if (!this.isOpen) {\n return;\n }\n return this.listBoxId;\n }\n get ariaActivedescendant() {\n if (!isPresent(this.dataItem)) {\n return;\n }\n return this.optionPrefix + \"-\" + getter(this.dataItem, this.valueField);\n }\n get noDataLabel() {\n if (this.dataService.itemsCount === 0) {\n return this.noDataText;\n }\n }\n get appendTo() {\n const { appendTo } = this.popupSettings;\n if (!appendTo || appendTo === 'root') {\n return undefined;\n }\n return appendTo === 'component' ? this.container : appendTo;\n }\n /**\n * Sets the data of the DropDownList.\n *\n * > The data has to be provided in an array-like list.\n */\n set data(data) {\n this.dataService.data = data || [];\n if (this.virtual) {\n this.virtual.skip = 0;\n }\n this.setState();\n }\n get data() {\n const virtual = this.virtual;\n if (virtual) {\n const start = virtual.skip || 0;\n const end = start + virtual.pageSize;\n // Use length instead of itemsCount because of the grouping.\n virtual.total = this.dataService.data.length;\n return this.dataService.data.slice(start, end);\n }\n return this.dataService.data;\n }\n /**\n * Sets the value of the DropDownList.\n * It can either be of the primitive (string, numbers) or of the complex (objects) type.\n * To define the type, use the `valuePrimitive` option.\n *\n * > All selected values which are not present in the source are ignored.\n */\n set value(newValue) {\n this._value = newValue;\n this.cdr.markForCheck();\n }\n get value() {\n return this._value;\n }\n /**\n * Configures the popup of the DropDownList.\n *\n * The available options are:\n * - `animate: Boolean`—Controls the popup animation. By default, the open and close animations are enabled.\n * - `width: Number | String`—Sets the width of the popup container. By default, the width of the host element is used. If set to `auto`, the component automatically adjusts the width of the popup and no item labels are wrapped. The `auto` mode is not supported when virtual scrolling is enabled.\n * - `height: Number`—Sets the height of the popup container.\n * - `popupClass: String`—Specifies a list of CSS classes that are used to style the popup.\n * - `appendTo: \"root\" | \"component\" | ViewContainerRef`—Specifies the component to which the popup will be appended.\n */\n set popupSettings(settings) {\n this._popupSettings = Object.assign({ animate: true }, settings);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * Defines a Boolean function that is executed for each data item in the component\n * ([see examples]({% slug disableditems_ddl %})). Determines whether the item will be disabled.\n */\n set itemDisabled(fn) {\n if (typeof fn !== 'function') {\n throw new Error(`itemDisabled must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this.disabledItemsService.itemDisabled = fn;\n }\n /**\n * Enables the [virtualization]({% slug virtualization_ddl %}) functionality.\n */\n set virtual(settings) {\n this._virtualSettings = normalizeVirtualizationSettings(settings);\n }\n get virtual() {\n return this._virtualSettings;\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n /**\n * @hidden\n */\n blurComponent() {\n this.wrapperBlurred.emit();\n }\n /**\n * @hidden\n */\n blurFilterInput() {\n this.filterBlurred.emit();\n }\n /**\n * @hidden\n */\n focusComponent() {\n this.wrapperFocused.emit();\n if (!this.isFocused) {\n this.isFocused = true;\n this.onFocus.emit();\n }\n }\n /**\n * @hidden\n */\n keydown(event) {\n const firstIndex = isPresent(this.defaultItem) ? -1 : 0;\n let focused = isNaN(this.selectionService.focused) ? this.firstFocusableIndex(firstIndex) : this.selectionService.focused;\n let offset = 0;\n if (this.disabled || this.readonly) {\n return;\n }\n const isHomeEnd = event.keyCode === Keys.home || event.keyCode === Keys.end;\n const isFilterFocused = this.filterable && this.isFocused && this.isOpen;\n if (isFilterFocused && isHomeEnd) {\n return;\n }\n const hasSelected = isPresent(this.selectionService.selected[0]);\n const focusedItemNotSelected = isPresent(this.selectionService.focused) && !this.selectionService.isSelected(this.selectionService.focused);\n if (!hasSelected || focusedItemNotSelected) {\n if (event.keyCode === Keys.down || event.keyCode === Keys.right) {\n offset = -1;\n }\n else if (event.keyCode === Keys.up || event.keyCode === Keys.left) {\n offset = 1;\n }\n }\n const eventData = event;\n const action = this.navigationService.process({\n current: focused + offset,\n max: this.dataService.itemsCount - 1,\n min: this.defaultItem ? -1 : 0,\n originalEvent: eventData\n });\n const leftRightKeys = (action === NavigationAction.Left) || (action === NavigationAction.Right);\n if (action !== NavigationAction.Undefined &&\n action !== NavigationAction.Tab &&\n action !== NavigationAction.Backspace &&\n action !== NavigationAction.Delete &&\n !(leftRightKeys && this.filterable) &&\n action !== NavigationAction.Enter //enter when popup is opened is handled before `handleEnter`\n ) {\n eventData.preventDefault();\n }\n }\n /**\n * @hidden\n */\n keypress(event) {\n if (this.disabled || this.readonly || this.filterable) {\n return;\n }\n this.onKeyPress(event);\n }\n /**\n * @hidden\n */\n click() {\n this.focus();\n this.togglePopup(!this.isOpen);\n }\n /**\n * @hidden\n */\n onResize() {\n if (this._open) {\n const popupWrapper = this.popupRef.popupElement;\n const { min, max } = this.width;\n popupWrapper.style.minWidth = min;\n popupWrapper.style.width = max;\n }\n }\n get dir() {\n return this.direction;\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.hostElement, \"tabindex\");\n this.localizationChangesSubscription = this.localization\n .changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n this.setMessages();\n });\n this.setMessages();\n this.assignAriaDescribedBy();\n }\n /**\n * @hidden\n * Used by the TextBoxContainer to determine if the component is empty.\n */\n isEmpty() {\n const value = this.value;\n return !(value === 0 || value === false || value || this.defaultItem);\n }\n /**\n * @hidden\n */\n onFilterFocus() {\n this.filterFocused.emit();\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this.destroyPopup();\n this.unsubscribeEvents();\n clearTimeout(this.messagesTimeout);\n if (this.localizationChangesSubscription) {\n this.localizationChangesSubscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n ngOnChanges(_changes) {\n const virtual = this.virtual;\n const requestInitialData = virtual && _changes.data && _changes.data.isFirstChange();\n if (requestInitialData) {\n this.pageChange({ skip: 0, take: virtual.pageSize });\n }\n if (this.valuePrimitive === undefined) {\n this.valuePrimitive = this.valueField ? false : true;\n }\n if (_changes.hasOwnProperty(\"value\")) {\n this.verifySettings(_changes.value.currentValue);\n if (!isPresent(this.value)) {\n this._previousDataItem = undefined;\n }\n }\n if (_changes.hasOwnProperty(\"defaultItem\")) {\n this.disabledItemsService.defaultItem = this.defaultItem;\n }\n const STATE_PROPS = /(value|textField|valueField|valuePrimitive|defaultItem|itemDisabled)/g;\n if (STATE_PROPS.test(Object.keys(_changes).join())) {\n this.setState();\n }\n }\n /**\n * Focuses the DropDownList.\n */\n focus() {\n if (!this.disabled) {\n this.wrapper.nativeElement.focus();\n }\n }\n /**\n * Blurs the DropDownList.\n */\n blur() {\n if (!this.disabled) {\n this.wrapper.nativeElement.blur();\n }\n }\n /**\n * Toggles the visibility of the popup\n * ([see example]({% slug openstate_ddl %}#toc-setting-the-initially-opened-component)).\n * If you use the `toggle` method to open or close the popup, the `open` and `close` events will not be fired.\n *\n * @param open - The state of the popup.\n */\n toggle(open) {\n // The Promise is required to open the popup on load.\n // Otherwise, the \"Expression has changed...\" type error will be thrown.\n Promise.resolve(null).then(() => {\n this._toggle(open);\n });\n }\n _toggle(open) {\n this._open = (open === undefined) ? !this._open : open;\n this.destroyPopup();\n if (this._open) {\n this.createPopup();\n }\n }\n triggerPopupEvents(open) {\n const eventArgs = new PreventableEvent();\n if (open) {\n this.open.emit(eventArgs);\n }\n else {\n this.close.emit(eventArgs);\n }\n return eventArgs.isDefaultPrevented();\n }\n /**\n * @hidden\n */\n togglePopup(open) {\n const isDisabled = this.disabled || this.readonly;\n const sameState = this.isOpen === open;\n if (isDisabled || sameState) {\n return;\n }\n const isDefaultPrevented = this.triggerPopupEvents(open);\n if (!isDefaultPrevented) {\n if (!open && this.filterable && this.isFocused) {\n this.focus();\n }\n this._toggle(open);\n }\n }\n /**\n * Returns the current open state of the popup.\n */\n get isOpen() {\n return this._open;\n }\n /**\n * Resets the value of the DropDownList.\n * If you use the `reset` method to clear the value of the component,\n * the model will not update automatically and the `selectionChange` and `valueChange` events will not be fired.\n */\n reset() {\n this._previousDataItem = undefined;\n this.value = undefined;\n this.setState();\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.verifySettings(value);\n this.value = value === null ? undefined : value;\n if (!isPresent(value)) {\n this._previousDataItem = undefined;\n }\n this.setState();\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onChangeCallback = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onTouchedCallback = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n */\n get buttonClasses() {\n return this.loading ? 'k-i-loading' : this.iconClass || 'k-i-arrow-s';\n }\n /**\n * @hidden\n */\n get listContainerClasses() {\n const containerClasses = ['k-list-container', 'k-reset'];\n if (this.popupSettings.popupClass) {\n containerClasses.push(this.popupSettings.popupClass);\n }\n return containerClasses;\n }\n /**\n * @hidden\n */\n get isDisabledDefaultItem() {\n return this.disabledItemsService.isItemDisabled(this.defaultItem);\n }\n /**\n * @hidden\n */\n getText() {\n return this.text;\n }\n /**\n * @hidden\n */\n getDefaultItemText() {\n return getter(this.defaultItem, this.textField);\n }\n createPopup() {\n if (this.virtual) {\n this.virtual.skip = 0;\n }\n const horizontalAlign = this.direction === \"rtl\" ? \"right\" : \"left\";\n const anchorPosition = { horizontal: horizontalAlign, vertical: \"bottom\" };\n const popupPosition = { horizontal: horizontalAlign, vertical: \"top\" };\n this.popupRef = this.popupService.open({\n anchor: this.wrapper,\n anchorAlign: anchorPosition,\n animate: this.popupSettings.animate,\n appendTo: this.appendTo,\n content: this.popupTemplate,\n popupAlign: popupPosition,\n popupClass: this.listContainerClasses,\n positionMode: 'absolute'\n });\n const popupWrapper = this.popupRef.popupElement;\n const { min, max } = this.width;\n popupWrapper.addEventListener('mousedown', this.popupMouseDownHandler);\n popupWrapper.style.minWidth = min;\n popupWrapper.style.width = max;\n popupWrapper.style.height = this.height;\n popupWrapper.setAttribute(\"dir\", this.direction);\n this.popupRef.popupOpen.subscribe(() => {\n this.cdr.detectChanges();\n this.optionsList.scrollToItem(this.selectionService.focused);\n });\n if (!this.filterable) {\n this.popupRef.popupAnchorViewportLeave.subscribe(() => this.togglePopup(false));\n }\n }\n destroyPopup() {\n if (this.popupRef) {\n this.popupRef.popupElement\n .removeEventListener('mousedown', this.popupMouseDownHandler);\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n updateState({ dataItem, confirm = false }) {\n this.dataItem = dataItem;\n this.text = this.prop(this.textField, this.valuePrimitive)(dataItem);\n if (confirm) {\n this._previousDataItem = dataItem;\n }\n }\n clearState() {\n this.text = undefined;\n this.dataItem = undefined;\n }\n resetSelection(index) {\n const clear = !isPresent(index);\n this.selectionService.resetSelection(clear ? [] : [index]);\n this.selectionService.focused = clear ? this.firstFocusableIndex(0) : index;\n }\n onSelectionChange({ dataItem }) {\n this.updateState({ dataItem });\n this.selectionChange.emit(dataItem);\n // reassigning the value label ID as aria-deascibedby forces firefox/nvda, forefox/jaws to read\n // the new value when the popup is closed and the value is changed with the arrow keys (up/down)\n this.assignAriaDescribedBy();\n }\n subscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n // Item selection when the popup is open.\n this.selectionSubscription.add(this.selectionService.onSelect.pipe(filter(_ => this.isOpen), map(this.itemFromEvent.bind(this)))\n .subscribe(this.onSelectionChange.bind(this)));\n // Item selection when the popup is closed | clicked | enter, and so on.\n this.selectionSubscription.add(merge(this.selectionService.onSelect.pipe(filter(_ => !this.isOpen)), this.selectionService.onChange).pipe(map(this.itemFromEvent.bind(this)), tap(_ => this.togglePopup(false)))\n .subscribe(({ dataItem, value: newValue, newSelection }) => {\n if (newSelection) {\n this.onSelectionChange({ dataItem });\n }\n const shouldUsePrevious = !isPresent(dataItem) && this._previousDataItem;\n const shouldUseNewValue = newValue !== this.prop(this.valueField, this.valuePrimitive)(this.value);\n if (shouldUsePrevious) {\n this.updateState({ dataItem: this._previousDataItem });\n this.resetSelection();\n }\n else if (shouldUseNewValue) {\n this.value = this.valuePrimitive ? newValue : dataItem;\n this._previousDataItem = dataItem;\n this.emitChange(this.value);\n }\n this.clearFilter();\n }));\n this.navigationSubscription = merge(this.navigationService.up, this.navigationService.down, this.navigationService.left.pipe(skipWhile(() => this.filterable)), this.navigationService.right.pipe(skipWhile(() => this.filterable)), this.navigationService.home, this.navigationService.end)\n .pipe(filter((event) => !isNaN(event.index)))\n .subscribe((event) => this.selectionService.select(event.index));\n this.openSubscription = this.navigationService.open.subscribe(() => this.togglePopup(true));\n this.closeSubscription = this.navigationService.close.subscribe(() => {\n this.togglePopup(false);\n this.focus();\n });\n this.enterSubscription = this.navigationService.enter\n .pipe(tap((event) => event.originalEvent.preventDefault()))\n .subscribe(this.handleEnter.bind(this));\n this.escSubscription = this.navigationService.esc\n .subscribe(this.handleEscape.bind(this));\n this.filterBlurredSubscription = this.filterBlurred.pipe(concatMap(() => interval(10).pipe(take(1), takeUntil(this.wrapperFocused))))\n .subscribe(() => {\n this.wrapperBlurred.emit();\n });\n this._zone.runOutsideAngular(() => {\n this.componentBlurredSubscription =\n merge(this.wrapperBlurred.pipe(concatMap(() => interval(10).pipe(take(1), takeUntil(this.filterFocused)))), this.navigationService.tab).pipe(tap(event => event instanceof NavigationEvent && this.focus()), filter(() => this.isFocused))\n .subscribe(() => this._zone.run(() => {\n this.componentBlur();\n }));\n });\n }\n unsubscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.navigationSubscription.unsubscribe();\n this.openSubscription.unsubscribe();\n this.closeSubscription.unsubscribe();\n this.enterSubscription.unsubscribe();\n this.escSubscription.unsubscribe();\n this.componentBlurredSubscription.unsubscribe();\n this.filterBlurredSubscription.unsubscribe();\n if (this.selectionSubscription) {\n this.selectionSubscription.unsubscribe();\n }\n }\n itemFromEvent(event) {\n const index = event.indices[0];\n let dataItem = this.dataService.itemAt(index);\n dataItem = isPresent(dataItem) ? dataItem : this.currentOrDefault(index);\n const value = this.prop(this.valueField, this.valuePrimitive)(dataItem);\n const newSelection = event.newSelection;\n return {\n dataItem,\n index,\n newSelection,\n value\n };\n }\n currentOrDefault(selectedIndex) {\n const defaultItemIndex = -1;\n if (isPresent(this.dataItem) && selectedIndex !== defaultItemIndex) {\n return this.dataItem;\n }\n else {\n return this.defaultItem;\n }\n }\n firstFocusableIndex(index) {\n const maxIndex = this.dataService.itemsCount - 1;\n if (this.disabledItemsService.isIndexDisabled(index)) {\n return (index < maxIndex) ? this.firstFocusableIndex(index + 1) : undefined;\n }\n else {\n return index;\n }\n }\n handleEnter() {\n if (this.isOpen) {\n this.selectionService.change(this.selectionService.focused);\n this.focus();\n }\n else {\n this.togglePopup(true);\n }\n }\n handleEscape() {\n if (isPresent(this.selectionService.selected[0])) {\n this.selectionService.change(this.selectionService.selected[0]);\n }\n else {\n this.togglePopup(false);\n this.clearFilter();\n }\n this.focus();\n }\n clearFilter() {\n if (!(this.filterable && this.filterText)) {\n return;\n }\n this.filterText = \"\";\n this.cdr.markForCheck();\n this.filterChange.emit(this.filterText);\n }\n verifySettings(newValue) {\n const valueOrText = !isPresent(this.valueField) !== !isPresent(this.textField);\n if (!isDevMode()) {\n return;\n }\n if (this.defaultItem && this.valueField && typeof this.defaultItem !== \"object\") {\n throw new Error(DropDownListMessages.defaultItem);\n }\n if (this.valuePrimitive === true && isPresent(newValue) && typeof newValue === \"object\") {\n throw new Error(DropDownListMessages.primitive);\n }\n if (this.valuePrimitive === false && isPresent(newValue) && typeof newValue !== \"object\") {\n throw new Error(DropDownListMessages.object);\n }\n if (valueOrText) {\n throw new Error(DropDownListMessages.textAndValue);\n }\n }\n componentBlur() {\n this.isFocused = false;\n if (isPresent(this.selectionService.selected[0])) {\n this.selectionService.change(this.selectionService.selected[0]);\n }\n else {\n this.togglePopup(false);\n this.clearFilter();\n }\n this.onBlur.emit();\n this.onTouchedCallback();\n }\n /**\n * @hidden\n */\n onMouseDown(event) {\n const tagName = event.target.tagName.toLowerCase();\n if (tagName !== \"input\") {\n event.preventDefault();\n }\n }\n onKeyPress(event) {\n if (event.which === 0 || event.keyCode === Keys.enter) {\n return;\n }\n let character = String.fromCharCode(event.charCode || event.keyCode);\n if (this.ignoreCase) {\n character = character.toLowerCase();\n }\n if (character === \" \") {\n event.preventDefault();\n }\n this.word += character;\n this.last = character;\n this.search();\n }\n search() {\n clearTimeout(this.typingTimeout);\n if (!this.filterable) {\n this.typingTimeout = setTimeout(() => { this.word = \"\"; }, this.delay);\n this.selectNext();\n }\n }\n selectNext() {\n let data = this.dataService\n .filter((item) => isPresent(item) && !item.header && !this.disabledItemsService.isItemDisabled(item))\n .map((item) => {\n if (this.dataService.grouped) {\n return { item: item.value, itemIndex: item.offsetIndex };\n }\n return { item: item, itemIndex: this.dataService.indexOf(item) };\n });\n const isInLoop = sameCharsOnly(this.word, this.last);\n let dataLength = data.length;\n let hasSelected = !isNaN(this.selectionService.selected[0]);\n let startIndex = !hasSelected ? 0 : this.selectionService.selected[0];\n let text, index, defaultItem;\n if (this.defaultItem && !this.disabledItemsService.isItemDisabled(this.defaultItem)) {\n defaultItem = { item: this.defaultItem, itemIndex: -1 };\n dataLength += 1;\n startIndex += 1;\n }\n startIndex += isInLoop && hasSelected ? 1 : 0;\n data = shuffleData(data, startIndex, defaultItem);\n index = 0;\n for (; index < dataLength; index++) {\n text = getter(data[index].item, this.textField);\n const loopMatch = Boolean(isInLoop && matchText(text, this.last, this.ignoreCase));\n const nextMatch = Boolean(matchText(text, this.word, this.ignoreCase));\n if (loopMatch || nextMatch) {\n index = data[index].itemIndex;\n break;\n }\n }\n if (index !== dataLength) {\n this.navigate(index);\n }\n }\n emitChange(value) {\n this.onChangeCallback(value);\n this.valueChange.emit(value);\n }\n navigate(index) {\n this.selectionService.select(index);\n }\n prop(field, usePrimitive) {\n return (dataItem) => {\n if (isPresent(dataItem)) {\n if (usePrimitive) {\n return field && isObject(dataItem) ? dataItem[field] : dataItem;\n }\n else {\n return dataItem[field];\n }\n }\n return null;\n };\n }\n findDataItem({ primitive, valueField, value }) {\n const result = {\n dataItem: null,\n index: -1\n };\n const prop = this.prop(valueField, primitive);\n let comparer;\n if (this.dataService.grouped) {\n comparer = (element) => {\n return prop(element.value) === prop(value);\n };\n }\n else {\n comparer = (element) => {\n return prop(element) === prop(value);\n };\n }\n const index = this.dataService.findIndex(comparer);\n result.dataItem = this.dataService.itemAt(index);\n result.index = index;\n return result;\n }\n setState() {\n const value = this.value;\n const valueField = this.valueField;\n const textField = this.textField;\n const primitive = this.valuePrimitive;\n if (this.defaultItem) {\n const defaultValue = this.prop(valueField, primitive)(this.defaultItem);\n const currentValue = this.prop(valueField, primitive)(value);\n if (!isPresent(value) || (currentValue === defaultValue)) {\n this.updateState({ dataItem: this.defaultItem, confirm: true });\n this.resetSelection(-1);\n if (this.filterable && this.filterText && this.dataService.itemsCount) {\n this.selectionService.focused = this.firstFocusableIndex(0);\n }\n return;\n }\n }\n const resolved = this.findDataItem({ primitive, valueField, value });\n // The data and value are of same shape,\n // for example, value: 'foo', data: ['foo', 'bar']\n // or value: { value: 1, text: 'foo' }, data: [{ value: 1, text: 'foo' }].\n const ofSameType = !(primitive && textField);\n if (resolved.dataItem) {\n this.updateState({ dataItem: resolved.dataItem, confirm: true });\n this.resetSelection(resolved.index);\n }\n else if (isPresent(value) && ofSameType) {\n this.updateState({ dataItem: value });\n this.resetSelection();\n }\n else if (this._previousDataItem) {\n this.updateState({ dataItem: this._previousDataItem });\n this.resetSelection();\n }\n else {\n this.clearState();\n this.resetSelection();\n }\n }\n /**\n * @hidden\n */\n handleFilter(event) {\n this.filterChange.emit(event.target.value);\n }\n /**\n * @hidden\n */\n pageChange(event) {\n const virtual = this.virtual;\n virtual.skip = event.skip;\n }\n setMessages() {\n this._zone.runOutsideAngular(() => {\n clearTimeout(this.messagesTimeout);\n this.messagesTimeout = setTimeout(() => {\n this.noDataText = this.localization.get('noDataText');\n this.cdr.detectChanges();\n });\n });\n }\n assignAriaDescribedBy() {\n const currentValue = this.wrapper.nativeElement.getAttribute('aria-describedby') || '';\n const trimmed = currentValue.replace(this.valueLabelId, '').trim();\n // reset the value label ID to force readers to read the new value\n this.valueLabelId = guid();\n // add to the current value - don't replace it\n const newValue = `${this.valueLabelId} ${trimmed}`.trim();\n this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-describedby', newValue);\n }\n}\nDropDownListComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoDropDownList',\n providers: [\n DROPDOWNLIST_VALUE_ACCESSOR,\n DataService,\n SelectionService,\n NavigationService,\n DisabledItemsService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.dropdownlist'\n },\n {\n provide: FilterableDropDownComponentBase, useExisting: forwardRef(() => DropDownListComponent)\n },\n {\n provide: KendoInput, useExisting: forwardRef(() => DropDownListComponent)\n }\n ],\n selector: 'kendo-dropdownlist',\n template: `\n \n \n \n \n \n \n {{ getText() }}\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n
\n {{ getDefaultItemText() }}\n
\n
\n \n
\n \n \n
\n
\n \n \n \n \n \n \n \n
\n \n \n \n
{{ noDataText }}
\n
\n
\n \n \n \n
\n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nDropDownListComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: PopupService },\n { type: SelectionService },\n { type: NavigationService },\n { type: DisabledItemsService },\n { type: DataService },\n { type: NgZone },\n { type: Renderer2 },\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [TOUCH_ENABLED,] }] }\n];\nDropDownListComponent.propDecorators = {\n focusableId: [{ type: Input }],\n iconClass: [{ type: Input }],\n loading: [{ type: Input }],\n data: [{ type: Input }],\n value: [{ type: Input }],\n textField: [{ type: Input }],\n valueField: [{ type: Input }],\n popupSettings: [{ type: Input }],\n listHeight: [{ type: Input }],\n defaultItem: [{ type: Input }],\n disabled: [{ type: Input }],\n itemDisabled: [{ type: Input }],\n readonly: [{ type: Input }],\n filterable: [{ type: Input }],\n virtual: [{ type: Input }],\n ignoreCase: [{ type: Input }],\n delay: [{ type: Input }],\n valuePrimitive: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input, args: [\"tabIndex\",] }],\n valueChange: [{ type: Output }],\n filterChange: [{ type: Output }],\n selectionChange: [{ type: Output }],\n open: [{ type: Output }],\n close: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n itemTemplate: [{ type: ContentChild, args: [ItemTemplateDirective,] }],\n groupTemplate: [{ type: ContentChild, args: [GroupTemplateDirective,] }],\n fixedGroupTemplate: [{ type: ContentChild, args: [FixedGroupTemplateDirective,] }],\n valueTemplate: [{ type: ContentChild, args: [ValueTemplateDirective,] }],\n headerTemplate: [{ type: ContentChild, args: [HeaderTemplateDirective,] }],\n footerTemplate: [{ type: ContentChild, args: [FooterTemplateDirective,] }],\n noDataTemplate: [{ type: ContentChild, args: [NoDataTemplateDirective,] }],\n container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef },] }],\n popupTemplate: [{ type: ViewChild, args: ['popupTemplate',] }],\n wrapper: [{ type: ViewChild, args: ['wrapper', { static: true },] }],\n optionsList: [{ type: ViewChild, args: ['optionsList',] }],\n widgetClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-dropdown',] }, { type: HostBinding, args: ['class.k-header',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }]\n};\n\n/* tslint:disable:max-line-length */\n/**\n * Renders the content of the custom list item in the MultiSelect\n * ([see example]({% slug templates_multiselect %}#toc-customizing-the-item-content)).\n * The template context is set to the current component.\n * To get a reference to the current text that is typed by the\n * user, use the `let-customItem` directive.\n *\n * > The `CustomItemTemplate` directive can only be used with the MultiSelect component.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * New Item: {{customItem}}\n * \n * \n * `\n * })\n * class AppComponent {\n * public listItems: Array = [\"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\"];\n * }\n * ```\n *\n */\nclass CustomItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nCustomItemTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoMultiSelectCustomItemTemplate]'\n },] },\n];\n/** @nocollapse */\nCustomItemTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/* tslint:disable:max-line-length */\n/**\n * Renders the selected tag value of the MultiSelect\n * ([see example]({% slug templates_multiselect %}#toc-tag-template)).\n * The template context is set to the current component.\n * To get a reference to the current data item, use the `let-dataItem` directive.\n *\n * > The `TagTemplate` directive can only be used with the MultiSelect component.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * {{dataItem}} option\n * \n * \n * `\n * })\n * class AppComponent {\n * public items: Array = [\"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\"];\n * }\n * ```\n */\nclass TagTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nTagTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoMultiSelectTagTemplate]'\n },] },\n];\n/** @nocollapse */\nTagTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/* tslint:disable:max-line-length */\n/**\n * Renders the grouped tag values in the MultiSelect\n * ([see example]({% slug summarytagmode_multiselect %})).\n * The template context is set to the current component.\n * To get a reference to the current grouped\n * data items collection, use the `let-dataItems` directive.\n *\n * > The `GroupTagTemplate` directive can only be used with the MultiSelect component.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * {{dataItems.length}} item(s) selected\n * \n * \n * `\n * })\n * class AppComponent {\n * public items: Array = [\"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\"];\n * }\n * ```\n */\nclass GroupTagTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nGroupTagTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoMultiSelectGroupTagTemplate]'\n },] },\n];\n/** @nocollapse */\nGroupTagTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Arguments for the `removeTag` event. The `removeTag` event fires when a tag is about\n * to the removed. If you cancel the event, the removal is prevented.\n */\nclass RemoveTagEvent extends PreventableEvent {\n /**\n * Constructs the event arguments for the `remove` event.\n * @param dataItem - The data item or an array of data items that will be removed.\n */\n constructor(dataItem) {\n super();\n this.dataItem = dataItem;\n }\n}\n\n/* tslint:disable:max-line-length */\nconst MULTISELECT_VALUE_ACCESSOR = {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => MultiSelectComponent)\n};\n/**\n * Represents the [Kendo UI MultiSelect component for Angular]({% slug overview_multiselect %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public listItems: Array = [\"Item 1\", \"Item 2\", \"Item 3\", \"Item 4\"];\n * }\n * ```\n */\nclass MultiSelectComponent {\n constructor(localization, popupService, dataService, selectionService, navigationService, disabledItemsService, cdr, differs, renderer, hostElement, _zone, touchEnabled) {\n this.localization = localization;\n this.popupService = popupService;\n this.dataService = dataService;\n this.selectionService = selectionService;\n this.navigationService = navigationService;\n this.disabledItemsService = disabledItemsService;\n this.cdr = cdr;\n this.differs = differs;\n this.renderer = renderer;\n this.hostElement = hostElement;\n this._zone = _zone;\n this.touchEnabled = touchEnabled;\n this.listBoxId = guid();\n this.tagListId = guid();\n this.tagPrefix = \"tag-\" + guid();\n this.optionPrefix = \"option-\" + guid();\n this.focusedTagIndex = undefined;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Determines whether to close the options list of the MultiSelect after the item selection is finished\n * ([see example]({% slug openstate_multiselect %}#toc-keeping-the-options-list-open-while-on-focus)).\n * @default true\n */\n this.autoClose = true;\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n this.tabindex = 0;\n /**\n * Sets the disabled state of the component.\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the component.\n */\n this.readonly = false;\n /**\n * Enables the [filtering]({% slug filtering_multiselect %}) functionality of the MultiSelect.\n */\n this.filterable = false;\n /**\n * Sets the height of the suggestions list. By default, `listHeight` is 200px.\n *\n * > The `listHeight` property affects only the list of suggestions and not the whole popup container.\n * > To set the height of the popup container, use `popupSettings.height`.\n */\n this.listHeight = 200;\n /**\n * If set to `true`, renders a button on hovering over the component.\n * Clicking this button resets the value of the component to an empty array and triggers the `change` event.\n */\n this.clearButton = true;\n /**\n * A user-defined callback function which receives an array of selected data items and maps them to an array of tags.\n *\n * @param { Any[] } dataItems - The selected data items from the list.\n * @returns { Any[] } - The tags that will be rendered by the component.\n */\n this.tagMapper = (tags) => tags || [];\n /**\n * Specifies whether the MultiSelect allows user-defined values that are not present in the dataset\n * ([more information and examples]({% slug custom_values_multiselect %})).\n * Defaults to `false`.\n */\n this.allowCustom = false;\n /**\n * A user-defined callback function which returns normalized custom values.\n * Typically used when the data items are different from type `string`.\n *\n * @param { Any } value - The custom value that is defined by the user.\n * @returns { Any }\n *\n * @example\n * ```ts\n * import { map } from 'rxjs/operators';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public listItems: Array<{ text: string, value: number }> = [\n * { text: \"Small\", value: 1 },\n * { text: \"Medium\", value: 2 },\n * { text: \"Large\", value: 3 }\n * ];\n *\n * public onValueChange(value) {\n * console.log(\"valueChange : \", value);\n * }\n *\n * public valueNormalizer = (text$: Observable) => text$.pipe(map((text: string) => {\n * return {\n * value: Math.floor(Math.random() * (1000 - 100) + 1000), //generate unique valueField\n * text: text };\n * }));\n *\n * }\n * ```\n */\n this.valueNormalizer = (text) => text.pipe(map((userInput) => {\n const comparer = (item) => typeof item === 'string' && userInput.toLowerCase() === item.toLowerCase();\n const matchingValue = this.value.find(comparer);\n if (matchingValue) {\n return matchingValue;\n }\n const matchingItem = this.dataService.find(comparer);\n return matchingItem ? matchingItem : userInput;\n }));\n /**\n * Fires each time the user types in the input field.\n * You can filter the source based on the passed filtration value.\n */\n this.filterChange = new EventEmitter();\n /**\n * Fires each time the value is changed—\n * when the component is blurred or the value is cleared through the **Clear** button\n * ([see example]({% slug overview_multiselect %}#toc-events)).\n * When the value of the component is programmatically changed to `ngModel` or `formControl`\n * through its API or form binding, the `valueChange` event is not triggered because it\n * might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time the popup is about to open\n * ([see example]({% slug openstate_multiselect %}#toc-preventing-opening-and-closing)).\n * This event is preventable. If you cancel it, the popup will remain closed.\n */\n this.open = new EventEmitter();\n /**\n * Fires each time the popup is about to close\n * ([see example]({% slug openstate_multiselect %}#toc-preventing-opening-and-closing)).\n * This event is preventable. If you cancel it, the popup will remain open.\n */\n this.close = new EventEmitter();\n /**\n * Fires each time the user focuses the MultiSelect.\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the MultiSelect gets blurred.\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time a tag is about to be removed.\n * This event is preventable. If you cancel it, the tag will not be removed.\n */\n this.removeTag = new EventEmitter();\n this.widgetClasses = true;\n this.onChangeCallback = (_) => { };\n this.onTouchedCallback = (_) => { };\n this._placeholder = '';\n this._open = false;\n this._value = [];\n this._popupSettings = { animate: true };\n this.isFocused = false;\n this.selectedDataItems = [];\n this.customValueSubject = new Subject();\n this.observableSubscriptions = new Subscription();\n this.hostElement = hostElement.nativeElement;\n this.popupMouseDownHandler = this.onMouseDown.bind(this);\n this.data = [];\n this.direction = this.localization.rtl ? 'rtl' : 'ltr';\n this.subscribeEvents();\n }\n /**\n * Focuses the MultiSelect.\n */\n focus() {\n if (!this.disabled) {\n this.searchbar.focus();\n }\n }\n /**\n * @hidden\n */\n onSearchBarFocus() {\n if (!this.isFocused) {\n this.isFocused = true;\n this.onFocus.emit();\n }\n }\n /**\n * Blurs the MultiSelect.\n */\n blur() {\n if (!this.disabled) {\n this.searchbar.blur();\n }\n }\n /**\n * @hidden\n */\n onSearchBarBlur() {\n if (this.isFocused) {\n this.closePopup();\n this.isFocused = false;\n if (!this.allowCustom) {\n this.clearFilter();\n }\n this.onBlur.emit();\n this.onTouchedCallback();\n }\n }\n /**\n * @hidden\n */\n wrapperMousedown(event) {\n const inputElement = this.searchbar.input.nativeElement;\n if (event.button === 0) {\n if (this.isFocused && this.isOpen && event.target === inputElement) {\n return;\n }\n if (!this.touchEnabled || (this.touchEnabled && event.target.tagName !== 'SPAN')) {\n this.searchbar.focus();\n }\n this.togglePopup(!this.isOpen);\n event.preventDefault();\n }\n }\n /**\n * @hidden\n */\n onMouseDown(event) {\n event.preventDefault();\n }\n /**\n * @hidden\n */\n onResize() {\n if (this._open) {\n const popupWrapper = this.popupRef.popupElement;\n const { min, max } = this.width;\n popupWrapper.style.minWidth = min;\n popupWrapper.style.width = max;\n }\n }\n get appendTo() {\n const { appendTo } = this.popupSettings;\n if (!appendTo || appendTo === 'root') {\n return undefined;\n }\n return appendTo === 'component' ? this.container : appendTo;\n }\n /**\n * Sets the data of the MultiSelect.\n *\n * > The data has to be provided in an array-like list of items.\n */\n set data(data) {\n this.dataService.data = data || [];\n if (this.virtual) {\n this.virtual.skip = 0;\n }\n this.setState(this.value);\n }\n get data() {\n const virtual = this.virtual;\n if (virtual) {\n const start = virtual.skip || 0;\n const end = start + virtual.pageSize;\n //Use length instead of itemsCount because of grouping\n virtual.total = this.dataService.data.length;\n return this.dataService.data.slice(start, end);\n }\n return this.dataService.data;\n }\n /**\n * Sets the value of the MultiSelect. It can be either of the primitive (string, numbers) or of the complex (objects) type.\n * To define the type, use the `valuePrimitive` option.\n *\n * > All selected values which are not present in the source are ignored.\n */\n set value(values) {\n this._value = values ? values : [];\n if (!this.differ && this.value) {\n this.differ = this.differs.find(this.value).create();\n }\n }\n get value() {\n return this._value;\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n /**\n * The hint which is displayed when the component is empty.\n * When the values are selected, it disappears.\n */\n set placeholder(text) {\n this._placeholder = text || '';\n }\n get placeholder() {\n return this.selectedDataItems.length ? '' : this._placeholder;\n }\n /**\n * Defines a Boolean function that is executed for each data item in the component\n * ([see examples]({% slug disableditems_multiselect %})). Determines whether the item will be disabled.\n */\n set itemDisabled(fn) {\n if (typeof fn !== 'function') {\n throw new Error(`itemDisabled must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this.disabledItemsService.itemDisabled = fn;\n }\n /**\n * Enables the [virtualization]({% slug virtualization_multiselect %}) functionality.\n */\n set virtual(settings) {\n this._virtualSettings = normalizeVirtualizationSettings(settings);\n }\n get virtual() {\n return this._virtualSettings;\n }\n /**\n * Configures the popup of the MultiSelect.\n *\n * The available options are:\n * - `animate: Boolean`—Controls the popup animation. By default, the open and close animations are enabled.\n * - `width: Number | String`—Sets the width of the popup container. By default, the width of the host element is used. If set to `auto`, the component automatically adjusts the width of the popup and no item labels are wrapped. The `auto` mode is not supported when virtual scrolling is enabled.\n * - `height: Number`—Sets the height of the popup container.\n * - `popupClass: String`—Specifies a list of CSS classes that are used to style the popup.\n * - `appendTo: \"root\" | \"component\" | ViewContainerRef`—Specifies the component to which the popup will be appended.\n */\n set popupSettings(settings) {\n this._popupSettings = Object.assign({ animate: true }, settings);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n get dir() {\n return this.direction;\n }\n get focusedClass() {\n return this.isFocused;\n }\n get disabledClass() {\n return this.disabled;\n }\n get listContainerClasses() {\n const containerClasses = ['k-list-container', 'k-reset'];\n if (this.popupSettings.popupClass) {\n containerClasses.push(this.popupSettings.popupClass);\n }\n return containerClasses;\n }\n get width() {\n let wrapperOffsetWidth = 0;\n if (isDocumentAvailable()) {\n wrapperOffsetWidth = this.wrapper.nativeElement.offsetWidth;\n }\n const width = this.popupSettings.width || wrapperOffsetWidth;\n const minWidth = isNaN(wrapperOffsetWidth) ? wrapperOffsetWidth : `${wrapperOffsetWidth}px`;\n const maxWidth = isNaN(width) ? width : `${width}px`;\n return { min: minWidth, max: maxWidth };\n }\n get height() {\n const popupHeight = this.popupSettings.height;\n return isPresent(popupHeight) ? `${popupHeight}px` : 'auto';\n }\n get activeDescendant() {\n const focusedTagIndex = this.focusedTagIndex;\n const focusedListIndex = this.selectionService.focused;\n let prefix;\n let item;\n if (isPresent(focusedTagIndex) && !this.isOpen) {\n item = this.tags[focusedTagIndex];\n prefix = this.tagPrefix;\n }\n else if (isPresent(focusedListIndex) && focusedListIndex !== -1 && this.isOpen) {\n item = this.dataService.itemAt(focusedListIndex);\n prefix = this.optionPrefix;\n }\n else {\n return null;\n }\n return prefix + \"-\" + this.prop(this.valueField, this.valuePrimitive)(item);\n }\n get noDataLabel() {\n if (this.dataService.itemsCount === 0) {\n return this.noDataText;\n }\n }\n get clearTitle() {\n return this.localization.get('clearTitle');\n }\n /**\n * @hidden\n */\n verifySettings() {\n const valueOrText = !isPresent(this.valueField) !== !isPresent(this.textField);\n if (!isDevMode() || this.value.length === 0) {\n return;\n }\n if (!isArray(this.value)) {\n throw new Error(MultiselectMessages.array);\n }\n if (this.valuePrimitive === true && isObjectArray(this.value)) {\n throw new Error(MultiselectMessages.primitive);\n }\n if (this.valuePrimitive === false && !isObjectArray(this.value)) {\n throw new Error(MultiselectMessages.object);\n }\n if (valueOrText) {\n throw new Error(MultiselectMessages.textAndValue);\n }\n }\n /**\n * @hidden\n */\n change(event) {\n const isCustomItem = (isPresent(event.added) || isPresent(event.removed)) && (event.added === -1 || event.removed === -1);\n if (isCustomItem) {\n this.addCustomValue(this.text);\n return; // The change is emited asynchronosly.\n }\n // Existing items.\n if (isPresent(event.added)) {\n const dataItem = this.dataService.itemAt(event.added);\n const newItem = (this.valuePrimitive && isPresent(dataItem) && isPresent(dataItem[this.valueField])) ? dataItem[this.valueField] : dataItem;\n this.value = [...this.value, newItem];\n this.cdr.markForCheck();\n }\n if (isPresent(event.removed)) {\n const dataItem = this.dataService.itemAt(event.removed);\n const prop = this.prop(this.valueField, this.valuePrimitive);\n const filter$$1 = (item) => prop(item) !== prop(dataItem);\n this.value = this.value.filter(filter$$1);\n this.selectedDataItems = this.selectedDataItems.filter(filter$$1);\n this.tags = this.tagMapper(this.selectedDataItems.slice());\n this.cdr.detectChanges();\n }\n this.emitValueChange();\n }\n /**\n * @hidden\n */\n setState(value) {\n const objectArray = isObjectArray(value);\n let data = this.dataService.data;\n if (this.dataService.grouped) {\n data = data.filter(item => !item.header).map(item => item.value);\n }\n const selection = selectedIndices(this.value, data, this.valueField);\n this.selectionService.resetSelection(selection);\n if (this.isOpen && this.selectionService.focused === undefined) {\n this.selectionService.focused = this.dataService.itemsCount ? this.firstFocusableIndex(0) : this.allowCustom ? -1 : undefined;\n }\n if (!this.text) {\n if (!(isPresent(value) && value.length)) {\n this.selectedDataItems = [];\n }\n if (this.valuePrimitive && !this.valueField) {\n this.selectedDataItems = value.slice();\n }\n if (objectArray || this.valuePrimitive && this.valueField) {\n this.selectedDataItems = resolveAllValues(value, data, this.valueField);\n }\n if (this.selectedDataItems.length < value.length) {\n const prop = this.prop(this.valueField, this.valuePrimitive);\n const dataItems = value\n .map(current => {\n const dataItem = this.selectedDataItems.find(item => prop(item) === prop(current));\n return isPresent(dataItem) ? dataItem : this.resolveDataItemFromTags(current);\n })\n .filter(dataItem => isPresent(dataItem));\n this.selectedDataItems = dataItems;\n }\n }\n this.tags = this.tagMapper(this.selectedDataItems.slice(0));\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n handleFilter(text) {\n this.text = text;\n if (text && !this.isOpen) {\n this.openPopup();\n }\n if (this.filterable) {\n this.filterChange.emit(text);\n }\n else {\n this.searchTextAndFocus(text);\n }\n this.searchbar.setInputSize();\n }\n /**\n * @hidden\n */\n pageChange(event) {\n const virtual = this.virtual;\n virtual.skip = event.skip;\n }\n /**\n * @hidden\n */\n clearFilter() {\n if (this.filterable && this.text) {\n this.filterChange.emit(\"\");\n }\n this.text = \"\";\n /* Clearing the value from the input as the setInputSize calculation will be incorrect otherwise.\n Calling cdr.detectChanges to clear the input value as a result of property binding\n causes JAWS to read outdated tag values in IE upon tag selection for some reason. */\n this.searchbar.input.nativeElement.value = \"\";\n this.searchbar.setInputSize();\n }\n /**\n * @hidden\n */\n handleNavigate(event) {\n const navigateInput = this.text && event.keyCode !== Keys.down && event.keyCode !== Keys.up;\n const selectValue = this.text && event.keyCode === Keys.enter || event.keyCode === Keys.esc;\n const deleteTag = !this.text && event.keyCode === Keys.backspace && this.tags.length > 0;\n if (deleteTag) {\n this.handleBackspace();\n return;\n }\n if (this.disabled || navigateInput && !selectValue) {\n return;\n }\n const eventData = event;\n const focused = isNaN(this.selectionService.focused) ? -1 : this.selectionService.focused;\n const action = this.navigationService.process({\n current: focused,\n max: this.dataService.itemsCount - 1,\n min: this.allowCustom && this.text ? -1 : 0,\n open: this.isOpen,\n originalEvent: eventData\n });\n if (action !== NavigationAction.Undefined &&\n ((action === NavigationAction.Enter && this.isOpen) || action !== NavigationAction.Enter)) {\n event.preventDefault();\n }\n }\n /**\n * @hidden\n */\n handleRemoveTag(tagData) {\n const eventArgs = new RemoveTagEvent(tagData);\n if (this.disabled || this.readonly) {\n return;\n }\n this.focus();\n this.removeTag.emit(eventArgs);\n if (eventArgs.isDefaultPrevented()) {\n return;\n }\n if (tagData instanceof Array) {\n this.removeGroupTag(tagData);\n }\n else {\n this.removeSingleTag(tagData);\n }\n this.cdr.detectChanges();\n }\n /**\n * @hidden\n */\n clearAll(event) {\n event.stopImmediatePropagation();\n this.clearFilter();\n this.reset();\n this.emitValueChange();\n }\n /**\n * @hidden\n */\n addCustomValue(text) {\n this.customValueSubject.next(text);\n }\n ngAfterContentChecked() {\n this.verifySettings();\n }\n ngDoCheck() {\n if (this.differ) {\n const valueChanges = this.differ.diff(this.value);\n if (valueChanges && !this.valueChangeDetected) {\n this.selectedDataItems = this.getSelectedDataItems(valueChanges);\n this.tags = this.tagMapper(this.selectedDataItems.slice(0));\n if (!(this.tags && this.dataService.data)) {\n return;\n }\n const isValueCustom = (value) => this.dataService.indexOf(value) === -1;\n const isValueSelected = (value) => this.selectionService.isSelected(this.dataService.indexOf(value));\n const reselectionRequired = this.selectedDataItems.some(value => !(isValueCustom(value) || isValueSelected(value)));\n if (reselectionRequired) {\n this.setState(this.value);\n }\n }\n }\n this.valueChangeDetected = false;\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.hostElement, \"tabindex\");\n this.createCustomValueStream();\n this.localizationChangeSubscription = this.localization\n .changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n this.setMessages();\n });\n this.setMessages();\n }\n ngOnChanges(changes) {\n const virtual = this.virtual;\n const requestInitialData = virtual && changes.data && changes.data.isFirstChange();\n if (requestInitialData) {\n this.pageChange({ skip: 0, take: virtual.pageSize });\n }\n if (this.valuePrimitive === undefined) {\n this.valuePrimitive = !this.valueField;\n }\n if (isChanged(\"valueNormalizer\", changes)) {\n this.createCustomValueStream();\n }\n const STATE_PROPS = /(data|textField|valueField|valuePrimitive|value)/g;\n if (changes.hasOwnProperty(\"value\")) {\n this.valueChangeDetected = true;\n }\n if (STATE_PROPS.test(Object.keys(changes).join())) {\n this.setState(this.value);\n }\n }\n ngAfterViewInit() {\n this.searchbar.setInputSize();\n }\n ngOnDestroy() {\n this._toggle(false);\n this.unsubscribeEvents();\n clearTimeout(this.messagesTimeout);\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n }\n /**\n * Toggles the visibility of the popup\n * ([see example]({% slug openstate_multiselect %}#toc-setting-the-initially-opened-component)).\n * If you use the `toggle` method to open or close the popup, the respective `open` and `close` events will not be fired.\n *\n * @param open - The state of the popup.\n */\n toggle(open) {\n // The Promise is required for opening the popup on load.\n // Otherwise, the \"Expression has changed...\" type error will be thrown.\n Promise.resolve(null).then(() => {\n this._toggle((open === undefined) ? !this._open : open);\n this.cdr.markForCheck();\n });\n }\n /**\n * Returns the current open state of the popup.\n */\n get isOpen() {\n return this._open;\n }\n /**\n * Resets the value of the MultiSelect.\n * If you use the `reset` method to clear the value of the component,\n * the model will not update automatically and the `selectionChange` and `valueChange` events will not be fired.\n */\n reset() {\n this.text = \"\";\n this.value = [];\n this.selectedDataItems = [];\n this.setState([]);\n this.cdr.markForCheck();\n }\n // NG MODEL BINDINGS\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = value || [];\n this.setState(this.value);\n this.verifySettings();\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onChangeCallback = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onTouchedCallback = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n */\n onTagMapperChange() {\n this.tags = this.tagMapper(this.selectedDataItems.slice(0));\n this.cdr.markForCheck();\n }\n prop(field, usePrimitive) {\n return (dataItem) => {\n if (isPresent(dataItem)) {\n if (usePrimitive) {\n return field && isObject(dataItem) ? dataItem[field] : dataItem;\n }\n else {\n return dataItem[field];\n }\n }\n return null;\n };\n }\n subscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n const isOpen = () => this.isOpen;\n const isClosed = () => !this.isOpen;\n const isTagFocused = () => !this.isOpen && this.focusedTagIndex !== undefined;\n [\n this.selectionService.onChange.subscribe(this.handleItemChange.bind(this)),\n this.navigationService.esc.subscribe(this.closePopup.bind(this)),\n this.navigationService.enter.pipe(filter(isOpen)).subscribe(this.handleEnter.bind(this)),\n this.navigationService.open.subscribe(this.openPopup.bind(this)),\n this.navigationService.close.subscribe(this.handleClose.bind(this)),\n this.navigationService.up.pipe(filter(isOpen)).subscribe((event) => this.handleUp(event.index)),\n this.navigationService.home.pipe(filter(() => isClosed)).subscribe(this.handleHome.bind(this)),\n this.navigationService.end.pipe(filter(() => isClosed)).subscribe(this.handleEnd.bind(this)),\n this.navigationService.backspace.pipe(filter(isTagFocused)).subscribe(this.handleBackspace.bind(this)),\n this.navigationService.delete.pipe(filter(isTagFocused)).subscribe(this.handleDelete.bind(this)),\n this.navigationService.left.subscribe(this.handleLeftKey.bind(this)),\n this.navigationService.right.subscribe(this.handleRightKey.bind(this)),\n this.navigationService.down.subscribe((event) => this.handleDownKey(event.index))\n ].forEach(s => this.observableSubscriptions.add(s));\n }\n unsubscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.observableSubscriptions.unsubscribe();\n if (this.customValueSubscription) {\n this.customValueSubscription.unsubscribe();\n }\n }\n removeGroupTag(dataItems) {\n const prop = this.prop(this.valueField, this.valuePrimitive);\n let data = this.dataService.data;\n if (this.dataService.grouped) {\n data = data.filter(item => !item.header).map(item => item.value);\n }\n const dataItemValues = new Set(dataItems.map(item => prop(item)));\n this.value = this.value.filter(value => !dataItemValues.has(prop(value)));\n this.selectedDataItems = this.selectedDataItems.filter(value => !dataItemValues.has(prop(value)));\n const selection = selectedIndices(this.value, data, this.valueField);\n this.selectionService.resetSelection(selection);\n this.tags = this.tagMapper(this.selectedDataItems.slice(0));\n this.cdr.markForCheck();\n this.emitValueChange();\n }\n removeSingleTag(dataItem) {\n const prop = this.prop(this.valueField, this.valuePrimitive);\n let data = this.dataService.data;\n if (this.dataService.grouped) {\n data = data.filter(item => !item.header).map(item => item.value);\n }\n const index = selectedIndices([dataItem], data, this.valueField)[0];\n if (isNumber(index)) {\n this.selectionService.unselect(index);\n this.togglePopup(false);\n }\n else { // the deleted item is not present in the source\n const filter$$1 = item => prop(item) !== prop(dataItem);\n this.value = this.value.filter(filter$$1);\n this.selectedDataItems = this.selectedDataItems.filter(filter$$1);\n this.tags = this.tagMapper(this.selectedDataItems.slice(0));\n this.cdr.markForCheck();\n this.emitValueChange();\n }\n }\n createCustomValueStream() {\n if (this.customValueSubscription) {\n this.customValueSubscription.unsubscribe();\n }\n this.customValueSubscription = this.customValueSubject.pipe(tap(() => {\n this.loading = true;\n this.disabled = true;\n this.cdr.detectChanges();\n }), this.valueNormalizer, catchError(() => {\n this.loading = false;\n this.disabled = false;\n this.clearFilter();\n if (this.autoClose) {\n this.togglePopup(false);\n this.nextTick(() => {\n this.searchbar.focus();\n });\n }\n this.createCustomValueStream();\n return of(null);\n }))\n .subscribe((normalizedValue) => {\n this.loading = false;\n this.disabled = false;\n this.clearFilter();\n if (isPresent(normalizedValue)) { //if valueNormalizer returns `null` or `undefined` custom value is discarded\n const newValue = this.valuePrimitive ? getter(normalizedValue, this.valueField) : normalizedValue;\n const itemIndex = this.dataService.indexOf(newValue);\n const customItem = itemIndex === -1;\n if (this.value.indexOf(newValue) === -1) {\n if (!customItem) {\n this.selectionService.add(itemIndex);\n }\n else {\n this.value = [...this.value, newValue];\n }\n this.selectedDataItems = [...this.selectedDataItems, normalizedValue];\n }\n else {\n if (!customItem && this.selectionService.isSelected(itemIndex)) {\n this.selectionService.unselect(itemIndex);\n }\n else {\n this.value.splice(this.value.indexOf(newValue), 1);\n this.selectedDataItems = this.selectedDataItems.filter(item => getter(item, this.valueField) !== newValue);\n }\n }\n this.tags = this.tagMapper(this.selectedDataItems.slice(0));\n this.emitValueChange();\n }\n if (this.autoClose) {\n this.togglePopup(false);\n this.nextTick(() => {\n this.searchbar.focus();\n });\n }\n });\n }\n handleItemChange(event) {\n this.change(event);\n if (this.autoClose) {\n this.togglePopup(false);\n }\n if (isPresent(event.added) && event.added !== -1) {\n this.clearFilter();\n }\n }\n handleEnter(event) {\n const service = this.selectionService;\n const focusedIndex = this.selectionService.focused;\n if (this.isOpen) {\n event.originalEvent.preventDefault();\n }\n if (focusedIndex === -1) {\n if (this.allowCustom && this.text) {\n this.addCustomValue(this.text);\n }\n return; // Clear filter & close are done at customValueSubscription due to race conditions.\n }\n if (service.isSelected(focusedIndex)) {\n service.unselect(focusedIndex);\n }\n else {\n service.add(focusedIndex);\n }\n this.clearFilter();\n if (this.autoClose) {\n this.togglePopup(false);\n }\n }\n handleClose() {\n this.closePopup();\n this.searchbar.focus();\n }\n handleEnd() {\n this.focusedTagIndex = this.tags.length - 1;\n }\n handleHome() {\n this.focusedTagIndex = 0;\n }\n handleUp(index) {\n this.selectionService.focused = index;\n }\n handleBackspace() {\n if (this.focusedTagIndex !== undefined) {\n this.handleDelete();\n }\n else {\n this.handleRemoveTag(this.tags[this.tags.length - 1]);\n this.searchbar.focus();\n }\n }\n handleDelete() {\n this.handleRemoveTag(this.tags[this.focusedTagIndex]);\n if (this.focusedTagIndex === this.tags.length) {\n this.focusedTagIndex = undefined;\n }\n }\n handleLeftKey() {\n if (this.direction === 'rtl') {\n if (this.focusedTagIndex === 0) {\n this.focusedTagIndex = undefined;\n }\n if (this.focusedTagIndex === undefined) {\n return;\n }\n }\n if (this.focusedTagIndex === undefined || this.focusedTagIndex < 0) {\n this.focusedTagIndex = this.tags.length - 1;\n }\n else if (this.focusedTagIndex !== 0) {\n this.focusedTagIndex--;\n }\n }\n handleDownKey(index) {\n if (this.isOpen) {\n this.selectionService.focused = index || this.firstFocusableIndex(0);\n }\n else {\n this.openPopup();\n }\n }\n handleRightKey() {\n const last = this.tags.length - 1;\n if (this.direction === 'rtl') {\n if (this.focusedTagIndex === undefined) {\n this.focusedTagIndex = 0;\n return;\n }\n if (this.focusedTagIndex === last) {\n return;\n }\n }\n if (this.focusedTagIndex === last) {\n this.focusedTagIndex = undefined;\n }\n else if (this.focusedTagIndex < last) {\n this.focusedTagIndex++;\n }\n }\n findIndex(text, startsFrom = 0) {\n let itemText;\n text = text.toLowerCase();\n let index = this.dataService.findIndex(item => {\n if (this.dataService.grouped) {\n itemText = this.prop(this.textField, this.valuePrimitive)(item.value);\n }\n else {\n itemText = this.prop(this.textField, this.valuePrimitive)(item);\n }\n itemText = !isPresent(itemText) ? \"\" : itemText.toString().toLowerCase();\n return text && itemText.startsWith(text);\n }, startsFrom);\n if (this.disabledItemsService.isIndexDisabled(index)) {\n return (index + 1 > this.dataService.itemsCount) ? -1 : this.findIndex(text, index + 1);\n }\n else {\n return index;\n }\n }\n searchTextAndFocus(text) {\n const index = this.findIndex(text);\n this.selectionService.focused = index;\n }\n closePopup() {\n this.togglePopup(false);\n this.focusedTagIndex = undefined;\n }\n openPopup() {\n this.togglePopup(true);\n this.focusedTagIndex = undefined;\n }\n togglePopup(open) {\n const isDisabled = this.disabled || this.readonly;\n const sameState = this.isOpen === open;\n if (isDisabled || sameState) {\n return;\n }\n const isDefaultPrevented = this.triggerPopupEvents(open);\n if (!isDefaultPrevented) {\n this._toggle(open);\n }\n }\n triggerPopupEvents(open) {\n const eventArgs = new PreventableEvent();\n if (open) {\n this.open.emit(eventArgs);\n }\n else {\n this.close.emit(eventArgs);\n }\n return eventArgs.isDefaultPrevented();\n }\n _toggle(open) {\n this._open = (open === undefined) ? !this._open : open;\n this.destroyPopup();\n if (this._open) {\n this.createPopup();\n }\n }\n destroyPopup() {\n if (this.popupRef) {\n this.popupRef.popupElement\n .removeEventListener('mousedown', this.popupMouseDownHandler);\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n createPopup() {\n if (this.virtual) {\n this.virtual.skip = 0;\n }\n const horizontalAlign = this.direction === \"rtl\" ? \"right\" : \"left\";\n const anchorPosition = { horizontal: horizontalAlign, vertical: \"bottom\" };\n const popupPosition = { horizontal: horizontalAlign, vertical: \"top\" };\n this.popupRef = this.popupService.open({\n anchor: this.wrapper,\n anchorAlign: anchorPosition,\n animate: this.popupSettings.animate,\n appendTo: this.appendTo,\n content: this.popupTemplate,\n popupAlign: popupPosition,\n popupClass: this.listContainerClasses,\n positionMode: 'absolute'\n });\n const popupWrapper = this.popupRef.popupElement;\n const { min, max } = this.width;\n popupWrapper.addEventListener('mousedown', this.popupMouseDownHandler);\n popupWrapper.style.minWidth = min;\n popupWrapper.style.width = max;\n popupWrapper.style.height = this.height;\n popupWrapper.setAttribute(\"dir\", this.direction);\n this.popupRef.popupOpen.subscribe(() => {\n this.cdr.detectChanges();\n this.optionsList.scrollToItem(this.selectionService.focused);\n });\n this.popupRef.popupAnchorViewportLeave.subscribe(() => {\n this.togglePopup(false);\n });\n }\n emitValueChange() {\n this.onChangeCallback(this.value);\n this.valueChange.emit(this.value);\n }\n getSelectedDataItems(valueChanges) {\n const isBoundToComplexData = isObjectArray(this.data);\n const prop = this.prop(this.valueField, this.valuePrimitive);\n let currentValue;\n let index;\n let selectedDataItems = [];\n valueChanges.forEachItem((value) => {\n currentValue = value.currentValue;\n if (this.dataService.grouped) {\n index = this.dataService.findIndex((item) => {\n return prop(item.value) === prop(currentValue);\n });\n }\n else {\n index = this.dataService.findIndex((item) => {\n return prop(item) === prop(currentValue);\n });\n }\n if (index !== -1) {\n selectedDataItems.push(this.dataService.itemAt(index));\n }\n else if (isPresent(value) && !(isBoundToComplexData && this.valuePrimitive)) { //value is not present in the data\n selectedDataItems.push(currentValue);\n }\n else { // value is primitive, dataItem is an object, dataItem is not present in the current data set\n const item = this.resolveDataItemFromTags(currentValue);\n if (isPresent(item)) {\n selectedDataItems.push(item);\n }\n }\n });\n return selectedDataItems;\n }\n resolveDataItemFromTags(value) {\n if (!(this.tags && this.tags.length && isPresent(value))) {\n return undefined;\n }\n // Flattening the tags array in case of a summary tag occurrence.\n const tags = this.tags.reduce((acc, tag) => {\n const items = isArray(tag) ? tag : [tag];\n acc.push(...items);\n return acc;\n }, []);\n const prop = this.prop(this.valueField, this.valuePrimitive);\n return tags.find(tag => prop(tag) === prop(value));\n }\n firstFocusableIndex(index) {\n const maxIndex = this.dataService.itemsCount;\n if (this.disabledItemsService.isIndexDisabled(index)) {\n const nextIndex = index + 1;\n return (nextIndex < maxIndex) ? this.firstFocusableIndex(nextIndex) : undefined;\n }\n else {\n return index;\n }\n }\n nextTick(f) {\n this._zone.runOutsideAngular(() => {\n // Use `setTimeout` instead of a resolved promise\n // because the latter does not wait long enough.\n setTimeout(() => this._zone.run(f));\n });\n }\n setMessages() {\n this._zone.runOutsideAngular(() => {\n clearTimeout(this.messagesTimeout);\n this.messagesTimeout = setTimeout(() => {\n this.noDataText = this.localization.get('noDataText');\n this.cdr.detectChanges();\n });\n });\n }\n}\nMultiSelectComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoMultiSelect',\n providers: [\n MULTISELECT_VALUE_ACCESSOR,\n DataService,\n SelectionService,\n NavigationService,\n DisabledItemsService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.multiselect'\n },\n {\n provide: FilterableDropDownComponentBase, useExisting: forwardRef(() => MultiSelectComponent)\n },\n {\n provide: KendoInput, useExisting: forwardRef(() => MultiSelectComponent)\n }\n ],\n selector: 'kendo-multiselect',\n template: `\n \n \n
\n \n \n \n \n \n \n
\n \n \n \n \n \n
\n
\n \n \n {{ text }}\n \n
\n
\n \n \n \n \n
\n \n \n \n
{{ noDataText }}
\n
\n
\n \n \n \n
\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nMultiSelectComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: PopupService },\n { type: DataService },\n { type: SelectionService },\n { type: NavigationService },\n { type: DisabledItemsService },\n { type: ChangeDetectorRef },\n { type: KeyValueDiffers },\n { type: Renderer2 },\n { type: ElementRef },\n { type: NgZone },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [TOUCH_ENABLED,] }] }\n];\nMultiSelectComponent.propDecorators = {\n focusableId: [{ type: Input }],\n autoClose: [{ type: Input }],\n loading: [{ type: Input }],\n data: [{ type: Input }],\n value: [{ type: Input }],\n valueField: [{ type: Input }],\n textField: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input, args: [\"tabIndex\",] }],\n placeholder: [{ type: Input }],\n disabled: [{ type: Input }],\n itemDisabled: [{ type: Input }],\n readonly: [{ type: Input }],\n filterable: [{ type: Input }],\n virtual: [{ type: Input }],\n popupSettings: [{ type: Input }],\n listHeight: [{ type: Input }],\n valuePrimitive: [{ type: Input }],\n clearButton: [{ type: Input }],\n tagMapper: [{ type: Input }],\n allowCustom: [{ type: Input }],\n valueNormalizer: [{ type: Input }],\n filterChange: [{ type: Output }],\n valueChange: [{ type: Output }],\n open: [{ type: Output }],\n close: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n removeTag: [{ type: Output }],\n container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef },] }],\n searchbar: [{ type: ViewChild, args: [SearchBarComponent,] }],\n popupTemplate: [{ type: ViewChild, args: ['popupTemplate',] }],\n wrapper: [{ type: ViewChild, args: ['wrapper',] }],\n optionsList: [{ type: ViewChild, args: ['optionsList',] }],\n template: [{ type: ContentChild, args: [ItemTemplateDirective,] }],\n customItemTemplate: [{ type: ContentChild, args: [CustomItemTemplateDirective,] }],\n groupTemplate: [{ type: ContentChild, args: [GroupTemplateDirective,] }],\n fixedGroupTemplate: [{ type: ContentChild, args: [FixedGroupTemplateDirective,] }],\n headerTemplate: [{ type: ContentChild, args: [HeaderTemplateDirective,] }],\n footerTemplate: [{ type: ContentChild, args: [FooterTemplateDirective,] }],\n tagTemplate: [{ type: ContentChild, args: [TagTemplateDirective,] }],\n groupTagTemplate: [{ type: ContentChild, args: [GroupTagTemplateDirective,] }],\n noDataTemplate: [{ type: ContentChild, args: [NoDataTemplateDirective,] }],\n widgetClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-multiselect',] }, { type: HostBinding, args: ['class.k-header',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n focusedClass: [{ type: HostBinding, args: ['class.k-state-focused',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }]\n};\n\n/* tslint:disable:max-line-length */\n/**\n * @hidden\n */\nclass TagListComponent {\n constructor() {\n this.removeTag = new EventEmitter();\n }\n tagProp(tag, prop) {\n return prop && isObject(tag) ? tag[prop] : tag;\n }\n deleteTag(event, tag) {\n event.preventDefault();\n event.stopImmediatePropagation();\n if (!this.disabled && event.which === 1) {\n this.removeTag.emit(tag);\n }\n }\n itemId(tag) {\n if (tag) { //because of custom values\n return this.tagPrefix + \"-\" + this.tagProp(tag, this.valueField);\n }\n }\n isGroupTag(tag) {\n return tag instanceof Array;\n }\n}\nTagListComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-taglist',\n template: `\n
    \n
  • \n \n \n \n \n \n {{ tag.length }} {{ tag.length === 1 ? 'item' : 'items' }} selected\n \n \n \n \n \n \n {{ tagProp(tag, textField) }}\n \n \n\n \n \n \n \n
  • \n
\n `\n },] },\n];\nTagListComponent.propDecorators = {\n tags: [{ type: Input }],\n textField: [{ type: Input }],\n valueField: [{ type: Input }],\n focused: [{ type: Input }],\n template: [{ type: Input }],\n groupTemplate: [{ type: Input }],\n disabled: [{ type: Input }],\n tagPrefix: [{ type: Input }],\n id: [{ type: Input }],\n removeTag: [{ type: Output }]\n};\n\n/**\n * @hidden\n */\nclass TemplateContextDirective {\n constructor(viewContainerRef) {\n this.viewContainerRef = viewContainerRef;\n }\n set templateContext(context) {\n if (this.insertedViewRef) {\n this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.insertedViewRef));\n this.insertedViewRef = undefined;\n }\n if (context.templateRef) {\n this.insertedViewRef = this.viewContainerRef.createEmbeddedView(context.templateRef, context);\n }\n }\n}\nTemplateContextDirective.decorators = [\n { type: Directive, args: [{\n selector: '[templateContext]' // tslint:disable-line\n },] },\n];\n/** @nocollapse */\nTemplateContextDirective.ctorParameters = () => [\n { type: ViewContainerRef }\n];\nTemplateContextDirective.propDecorators = {\n templateContext: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass SelectableDirective {\n constructor(selectionService) {\n // @HostBinding('attr.offset-index')\n // @Input() public offsetIndex: number;\n this.multipleSelection = false;\n this.selectionService = selectionService;\n }\n get focusedClassName() {\n return this.selectionService.isFocused(this.index);\n }\n get selectedClassName() {\n return this.selectionService.isSelected(this.index);\n }\n onClick(event) {\n event.stopPropagation();\n if (this.multipleSelection) {\n if (this.selectionService.isSelected(this.index)) {\n this.selectionService.unselect(this.index);\n }\n else {\n this.selectionService.add(this.index);\n }\n }\n else {\n this.selectionService.change(this.index);\n }\n }\n}\nSelectableDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDropDownsSelectable]'\n },] },\n];\n/** @nocollapse */\nSelectableDirective.ctorParameters = () => [\n { type: SelectionService }\n];\nSelectableDirective.propDecorators = {\n index: [{ type: HostBinding, args: ['attr.index',] }, { type: Input }],\n height: [{ type: HostBinding, args: ['style.height.px',] }, { type: HostBinding, args: ['style.minHeight.px',] }, { type: Input }],\n multipleSelection: [{ type: Input }],\n focusedClassName: [{ type: HostBinding, args: ['class.k-state-focused',] }],\n selectedClassName: [{ type: HostBinding, args: ['class.k-state-selected',] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }]\n};\n\n/**\n * A directive which configures the MultiSelect to show one single summary tag for all selected data items.\n * When a number is provided, the summary tag is displayed after the given amount of data items are selected\n * ([more information and examples]({% slug summarytagmode_multiselect %})).\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nclass SummaryTagDirective {\n constructor(multiSelectComponent) {\n this.multiSelectComponent = multiSelectComponent;\n /**\n * A numeric value that indicates the number of selected data items after which the summary tag will appear.\n */\n this.showAfter = 0; // tslint:disable-line:no-input-rename\n this.createTagMapper();\n }\n ngOnChanges(changes) {\n if (isPresent(changes.showAfter)) {\n this.createTagMapper();\n this.multiSelectComponent.onTagMapperChange();\n }\n }\n createTagMapper() {\n this.multiSelectComponent.tagMapper = (tags) => {\n if (tags.length > this.showAfter) {\n let result;\n result = tags.slice(0, this.showAfter);\n result.push(tags.slice(this.showAfter, tags.length));\n return result;\n }\n else {\n return tags;\n }\n };\n }\n}\nSummaryTagDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoMultiSelectSummaryTag]'\n },] },\n];\n/** @nocollapse */\nSummaryTagDirective.ctorParameters = () => [\n { type: MultiSelectComponent }\n];\nSummaryTagDirective.propDecorators = {\n showAfter: [{ type: Input, args: ['kendoMultiSelectSummaryTag',] }]\n};\n\nconst DEFAULT_FILTER_SETTINGS = {\n caseSensitive: false,\n operator: 'startsWith'\n};\n/**\n * Implements an event handler for the `filterChange` event of a DropDowns component\n * which performs simple data filtering.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public data: Array = [\"Albania\", \"Andorra\", \"Armenia\", \"Austria\", \"Azerbaijan\"];\n * }\n * ```\n */\nclass FilterDirective {\n constructor(component) {\n this.component = component;\n /**\n * @hidden\n *\n * Sets whether the filtering functionality is enabled on component init.\n */\n this.filterable = true;\n this._data = [];\n this._filterSettings = DEFAULT_FILTER_SETTINGS;\n }\n /**\n * The initial data that will be used as a source array for the filtering operations.\n */\n set data(data) {\n this._data = data || [];\n }\n get data() {\n return this._data;\n }\n /**\n * The configuration object which sets the behavior of the `kendoDropDownFilter` directive.\n */\n set filterSettings(settings) {\n this._filterSettings = Object.assign({}, DEFAULT_FILTER_SETTINGS, settings);\n }\n get filterSettings() {\n return this._filterSettings;\n }\n ngOnInit() {\n this.component.filterable = this.filterable;\n this.filterChangeSubscription = this.component.filterChange\n .subscribe(query => this.component.data = this.getFilteredData(query));\n }\n ngOnDestroy() {\n this.filterChangeSubscription.unsubscribe();\n }\n getFilteredData(query) {\n const field = this.component.textField || this.component.valueField;\n return this.data.filter(item => this.checkItem(getter(item, field), query));\n }\n checkItem(target, query) {\n target = this.normalizeValue(target);\n query = this.normalizeValue(query);\n return this.filterSettings.operator === 'contains' ? target.indexOf(query) !== -1 : target.indexOf(query) === 0;\n }\n normalizeValue(value) {\n const normalizedValue = isPresent(value) ? value.toString() : '';\n return this.filterSettings.caseSensitive ? normalizedValue : normalizedValue.toLowerCase();\n }\n}\nFilterDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDropDownFilter]'\n },] },\n];\n/** @nocollapse */\nFilterDirective.ctorParameters = () => [\n { type: FilterableDropDownComponentBase }\n];\nFilterDirective.propDecorators = {\n data: [{ type: Input }],\n filterSettings: [{ type: Input, args: ['kendoDropDownFilter',] }],\n filterable: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.propDecorators = {\n noDataText: [{ type: Input }],\n clearTitle: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass LocalizedMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: `\n [kendoDropDownListLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages]\n `\n },] },\n];\n/** @nocollapse */\nLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug rtl_dropdowns %}#toc-messages)).\n */\nclass CustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent)\n }\n ],\n selector: 'kendo-dropdownlist-messages, kendo-combobox-messages, kendo-autocomplete-messages, kendo-multiselect-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\nconst SHARED_DIRECTIVES = [\n HeaderTemplateDirective,\n FooterTemplateDirective,\n ItemTemplateDirective,\n GroupTemplateDirective,\n FixedGroupTemplateDirective,\n NoDataTemplateDirective,\n LocalizedMessagesDirective,\n CustomMessagesComponent,\n FilterDirective\n];\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `ItemTemplateDirective`—The item template directive.\n * - `HeaderTemplateDirective`—The header template directive.\n * - `FooterTemplateDirective`—The footer template directive.\n * - `NoDataTemplateDirective`—The noData template directive.\n */\nclass SharedDirectivesModule {\n}\nSharedDirectivesModule.decorators = [\n { type: NgModule, args: [{\n declarations: [SHARED_DIRECTIVES],\n exports: [SHARED_DIRECTIVES]\n },] },\n];\n\nconst INTERNAL_DIRECTIVES = [\n ListComponent,\n ListItemDirective,\n SelectableDirective,\n SearchBarComponent,\n TemplateContextDirective\n];\n/**\n * @hidden\n */\nclass SharedModule {\n}\nSharedModule.decorators = [\n { type: NgModule, args: [{\n declarations: [INTERNAL_DIRECTIVES],\n exports: [INTERNAL_DIRECTIVES, CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule],\n imports: [CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule]\n },] },\n];\n\nconst AUTOCOMPLETE_DIRECTIVES = [\n AutoCompleteComponent\n];\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `AutoCompleteComponent`—The AutoComplete component class.\n * - `ItemTemplateDirective`—The item template directive.\n * - `HeaderTemplateDirective`—The header template directive.\n * - `FooterTemplateDirective`—The footer template directive.\n */\nclass AutoCompleteModule {\n}\nAutoCompleteModule.decorators = [\n { type: NgModule, args: [{\n declarations: [AUTOCOMPLETE_DIRECTIVES],\n exports: [AUTOCOMPLETE_DIRECTIVES, SharedDirectivesModule],\n imports: [SharedModule]\n },] },\n];\n\n/* tslint:disable:object-literal-sort-keys */\nconst agentRxs = {\n wp: /(Windows Phone(?: OS)?)\\s(\\d+)\\.(\\d+(\\.\\d+)?)/,\n fire: /(Silk)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n android: /(Android|Android.*(?:Opera|Firefox).*?\\/)\\s*(\\d+)\\.(\\d+(\\.\\d+)?)/,\n iphone: /(iPhone|iPod).*OS\\s+(\\d+)[\\._]([\\d\\._]+)/,\n ipad: /(iPad).*OS\\s+(\\d+)[\\._]([\\d_]+)/,\n meego: /(MeeGo).+NokiaBrowser\\/(\\d+)\\.([\\d\\._]+)/,\n webos: /(webOS)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n blackberry: /(BlackBerry|BB10).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n playbook: /(PlayBook).*?Tablet\\s*OS\\s*(\\d+)\\.(\\d+(\\.\\d+)?)/,\n windows: /(MSIE)\\s+(\\d+)\\.(\\d+(\\.\\d+)?)/,\n tizen: /(tizen).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/i,\n sailfish: /(sailfish).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*firefox/i,\n ffos: /(Mobile).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*Firefox/\n};\nconst osRxs = {\n ios: /^i(phone|pad|pod)$/i,\n android: /^android|fire$/i,\n blackberry: /^blackberry|playbook/i,\n windows: /windows/,\n wp: /wp/,\n flat: /sailfish|ffos|tizen/i,\n meego: /meego/\n};\nconst desktopBrowserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\nconst mobileBrowserRxs = {\n omini: /Opera\\sMini/i,\n omobile: /Opera\\sMobi/i,\n firefox: /Firefox|Fennec/i,\n mobilesafari: /version\\/.*safari/i,\n ie: /MSIE|Windows\\sPhone/i,\n chrome: /chrome|crios/i,\n webkit: /webkit/i\n};\nconst testRx = (agent, rxs, dflt) => {\n for (let rx in rxs) {\n if (rxs.hasOwnProperty(rx) && rxs[rx].test(agent)) {\n return rx;\n }\n }\n return dflt !== undefined ? dflt : agent;\n};\n/**\n * @hidden\n */\nconst detectMobileOS = (ua) => {\n let minorVersion;\n let match = [];\n for (let agent in agentRxs) {\n if (agentRxs.hasOwnProperty(agent)) {\n match = ua.match(agentRxs[agent]);\n if (!match) {\n continue;\n }\n if (agent === 'windows' && 'plugins' in window.navigator) {\n return null;\n } // Break if not Metro/Mobile Windows\n const os = {};\n os.device = agent;\n os.browser = testRx(ua, mobileBrowserRxs, 'default');\n os.name = testRx(agent, osRxs);\n os[os.name] = true;\n os.majorVersion = match[2];\n os.minorVersion = match[3].replace('_', '.');\n minorVersion = os.minorVersion.replace('.', '').substr(0, 2);\n os.flatVersion = os.majorVersion + minorVersion +\n (new Array(3 - (minorVersion.length < 3 ? minorVersion.length : 2)).join('0'));\n os.cordova = typeof window.PhoneGap !== undefined\n || typeof window.cordova !== undefined; // Use file protocol to detect appModes.\n os.appMode = window.navigator.standalone\n || (/file|local|wmapp/).test(window.location.protocol)\n || os.cordova; // Use file protocol to detect appModes.\n return os;\n }\n }\n return null;\n};\n/**\n * @hidden\n */\nconst detectDesktopBrowser = (ua) => {\n let browserInfo = null;\n let match = [];\n for (let agent in desktopBrowserRxs) {\n if (desktopBrowserRxs.hasOwnProperty(agent)) {\n match = ua.match(desktopBrowserRxs[agent]);\n if (match) {\n browserInfo = {};\n browserInfo[agent] = true;\n browserInfo[match[1].toLowerCase().split(' ')[0].split('/')[0]] = true;\n browserInfo.version = parseInt(document.documentMode || match[2], 10);\n break;\n }\n }\n }\n return browserInfo;\n};\nconst userAgent = isWindowAvailable() && window.navigator ? window.navigator.userAgent : null;\n/**\n * @hidden\n */\nconst browser = userAgent ? detectDesktopBrowser(userAgent) : null;\n/**\n * @hidden\n */\nconst mobileOS = userAgent ? detectMobileOS(userAgent) : null;\n/**\n * @hidden\n */\nconst touch = isWindowAvailable() && 'ontouchstart' in window;\n/**\n * @hidden\n */\nconst msPointers = browser && !browser.chrome && window.MSPointerEvent;\n/**\n * @hidden\n */\nconst pointers = browser && !browser.chrome && window.PointerEvent;\n/**\n * @hidden\n */\nconst touchEnabled = mobileOS && (touch || msPointers || pointers);\n\nconst COMBOBOX_DIRECTIVES = [\n ComboBoxComponent\n];\nconst ɵ0$1 = touchEnabled;\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `ComboBoxComponent`—The ComboBox component class.\n * - `ItemTemplateDirective`—The item template directive.\n * - `HeaderTemplateDirective`—The header template directive.\n * - `FooterTemplateDirective`—The footer template directive.\n */\nclass ComboBoxModule {\n}\nComboBoxModule.decorators = [\n { type: NgModule, args: [{\n declarations: [COMBOBOX_DIRECTIVES],\n exports: [COMBOBOX_DIRECTIVES, SharedDirectivesModule],\n imports: [SharedModule],\n providers: [{ provide: TOUCH_ENABLED, useValue: ɵ0$1 }]\n },] },\n];\n\n/**\n * @hidden\n */\nclass FilterInputDirective {\n constructor(element, zone) {\n this.element = element;\n this.zone = zone;\n }\n ngOnChanges() {\n if (this.focused) {\n this.nextTick(() => this.element.nativeElement.focus());\n }\n }\n nextTick(fn) {\n this.zone.runOutsideAngular(() => setTimeout(fn));\n }\n}\nFilterInputDirective.decorators = [\n { type: Directive, args: [{\n selector: '[filterInput]' // tslint:disable-line\n },] },\n];\n/** @nocollapse */\nFilterInputDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone }\n];\nFilterInputDirective.propDecorators = {\n focused: [{ type: Input, args: ['filterInput',] }]\n};\n\nconst DROPDOWNLIST_DIRECTIVES = [\n DropDownListComponent,\n ValueTemplateDirective,\n FilterInputDirective\n];\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `DropDownListComponent`—The DropDownList component class.\n * - `ItemTemplateDirective`—The item template directive.\n * - `ValueTemplateDirective`—The value template directive.\n * - `HeaderTemplateDirective`—The header template directive.\n * - `FooterTemplateDirective`—The footer template directive.\n */\nclass DropDownListModule {\n}\nDropDownListModule.decorators = [\n { type: NgModule, args: [{\n declarations: [DROPDOWNLIST_DIRECTIVES],\n exports: [DROPDOWNLIST_DIRECTIVES, SharedDirectivesModule],\n imports: [SharedModule]\n },] },\n];\n\nconst MULTISELECT_DIRECTIVES = [\n MultiSelectComponent,\n TagListComponent,\n TagTemplateDirective,\n GroupTagTemplateDirective,\n SummaryTagDirective,\n CustomItemTemplateDirective\n];\nconst ɵ0$2 = touchEnabled;\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `MultiSelectComponent`—The MultiSelect component class.\n * - `SummaryTagDirective`—The MultiSelect summary tag directive.\n * - `ItemTemplateDirective`—The item template directive.\n * - `CustomItemTemplateDirective`—The custom item template directive.\n * - `TagTemplateDirective`—The tag template directive.\n * - `SummaryTagTemplateDirective`—The summary tag template directive.\n * - `HeaderTemplateDirective`—The header template directive.\n * - `FooterTemplateDirective`—The footer template directive.\n * - `NoDataTemplateDirective`—The no-data template directive.\n */\nclass MultiSelectModule {\n}\nMultiSelectModule.decorators = [\n { type: NgModule, args: [{\n declarations: [MULTISELECT_DIRECTIVES],\n exports: [MULTISELECT_DIRECTIVES, SharedDirectivesModule],\n imports: [SharedModule],\n providers: [{ provide: TOUCH_ENABLED, useValue: ɵ0$2 }]\n },] },\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Dropdowns components.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Dropdowns module\n * import { DropDownsModule } from '@progress/kendo-angular-dropdowns';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare the app component\n * imports: [BrowserModule, DropDownsModule], // import the Dropdowns module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass DropDownsModule {\n}\nDropDownsModule.decorators = [\n { type: NgModule, args: [{\n exports: [AutoCompleteModule, ComboBoxModule, DropDownListModule, MultiSelectModule]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AUTOCOMPLETE_VALUE_ACCESSOR, COMBOBOX_VALUE_ACCESSOR, DataService, DisabledItemsService, DROPDOWNLIST_VALUE_ACCESSOR, FilterInputDirective, FilterableDropDownComponentBase, ListItemDirective, CustomMessagesComponent, LocalizedMessagesDirective, Messages, NavigationService, SearchBarComponent, SelectionService, browser, detectDesktopBrowser, detectMobileOS, mobileOS, msPointers, pointers, touch, touchEnabled, NoDataTemplateDirective, TagTemplateDirective, TOUCH_ENABLED, isWindowAvailable, AutoCompleteComponent, ComboBoxComponent, DropDownListComponent, MultiSelectComponent, TagListComponent, ItemTemplateDirective, GroupTemplateDirective, FixedGroupTemplateDirective, CustomItemTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, TemplateContextDirective, GroupTagTemplateDirective, SelectableDirective, SummaryTagDirective, FilterDirective, DropDownsModule, MultiSelectModule, SharedModule, AutoCompleteModule, ComboBoxModule, DropDownListModule, SharedDirectivesModule, ListComponent, PreventableEvent };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { Input, ContentChildren, QueryList, Component, NgZone, Directive, TemplateRef, Optional, forwardRef, SkipSelf, Host, ContentChild, NgModule } from '@angular/core';\nimport { saveAs } from '@progress/kendo-file-saver';\nimport { IntlService, ExcelExporter, Workbook } from '@progress/kendo-ooxml';\nexport * from '@progress/kendo-ooxml';\nimport { toString } from '@telerik/kendo-intl';\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\n\n/* tslint:disable align */\n/* tslint:disable:no-use-before-declare */\nconst compileTemplate = (templateRef, context, updateContext) => {\n let embeddedView = templateRef.createEmbeddedView(context);\n const result = (data) => {\n updateContext(context, data);\n embeddedView.detectChanges();\n return embeddedView.rootNodes.reduce((content, rootNode) => {\n return content + rootNode.textContent;\n }, '').trim();\n };\n result.destroy = () => {\n embeddedView.destroy();\n embeddedView = null;\n };\n return result;\n};\nconst updateGroupHeaderContext = (context, data) => {\n context.$implicit = context.group = data;\n context.field = data.field;\n context.value = data.value;\n context.aggregates = data.aggregates;\n};\nconst updateGroupFooterContext = (context, data) => {\n context.group = data.group;\n context.$implicit = context.aggregates = data;\n};\nconst updateFooterContext = (context, data) => {\n context.aggregates = data.aggregates;\n};\n/**\n * @hidden\n */\nconst toExporterColumns = (sourceColumns) => {\n const exporterColumns = [];\n let columnIndex = 0;\n const addColumns = (columns, result, level) => {\n columns.forEach((column) => {\n if (column.level === level) {\n const exporterColumn = new ExporterColumn(column, columnIndex);\n result.push(exporterColumn);\n if (column.children && column.children.some(c => c !== column)) {\n const children = exporterColumn.columns = [];\n addColumns(column.children, children, level + 1);\n }\n else {\n columnIndex++;\n }\n }\n });\n };\n addColumns(sourceColumns, exporterColumns, 0);\n return exporterColumns;\n};\n/**\n * @hidden\n */\nconst destroyColumns = (columns) => {\n if (columns) {\n columns.forEach(column => {\n column.destroy();\n });\n }\n};\n/**\n * @hidden\n */\nclass ExporterColumn {\n constructor(column, columnIndex) {\n this.title = column.title;\n this.field = column.field;\n this.hidden = column.hidden;\n this.locked = column.locked;\n this.width = column.width;\n this.headerCellOptions = column.headerCellOptions;\n this.cellOptions = column.cellOptions;\n this.groupHeaderCellOptions = column.groupHeaderCellOptions;\n this.groupFooterCellOptions = column.groupFooterCellOptions;\n this.footerCellOptions = column.footerCellOptions;\n if (column.footerTemplate) {\n this.footerTemplate = compileTemplate(column.footerTemplate.templateRef, {\n $implicit: column,\n column: column,\n columnIndex: columnIndex\n }, updateFooterContext);\n }\n if (column.groupFooterTemplate) {\n this.groupFooterTemplate = compileTemplate(column.groupFooterTemplate.templateRef, {\n column: column,\n field: column.field\n }, updateGroupFooterContext);\n }\n if (column.groupHeaderTemplate) {\n this.groupHeaderTemplate = compileTemplate(column.groupHeaderTemplate.templateRef, {}, updateGroupHeaderContext);\n }\n if (column.groupHeaderColumnTemplate) {\n this.groupHeaderColumnTemplate = compileTemplate(column.groupHeaderColumnTemplate.templateRef, {}, updateGroupHeaderContext);\n }\n }\n destroy() {\n if (this.footerTemplate) {\n this.footerTemplate.destroy();\n }\n if (this.groupFooterTemplate) {\n this.groupFooterTemplate.destroy();\n }\n if (this.groupHeaderTemplate) {\n this.groupHeaderTemplate.destroy();\n }\n if (this.groupHeaderColumnTemplate) {\n this.groupHeaderColumnTemplate.destroy();\n }\n destroyColumns(this.columns);\n }\n}\n\nIntlService.register({ toString });\n/**\n *\n * @hidden\n */\nconst workbookOptions = (options) => {\n const columns = toExporterColumns(options.columns);\n const exporter = new ExcelExporter({\n columns: columns,\n data: options.data,\n filterable: options.filterable,\n groups: options.group,\n paddingCellOptions: options.paddingCellOptions,\n headerPaddingCellOptions: options.headerPaddingCellOptions,\n collapsible: options.collapsible,\n hierarchy: options.hierarchy,\n aggregates: options.aggregates\n });\n const result = exporter.workbook();\n result.creator = options.creator;\n result.date = options.date;\n result.rtl = options.rtl;\n destroyColumns(columns);\n return result;\n};\n/**\n * @hidden\n */\nconst toDataURL = (options) => {\n const workbook = new Workbook(options);\n return workbook.toDataURL();\n};\n/**\n * @hidden\n */\nconst isWorkbookOptions = (value) => {\n return value && value.sheets;\n};\n\n/**\n * @hidden\n */\nclass ColumnBase {\n constructor(parent) {\n this.parent = parent;\n }\n /**\n * @hidden\n */\n get level() {\n return this.parent ? this.parent.level + 1 : 0;\n }\n}\nColumnBase.propDecorators = {\n title: [{ type: Input }],\n width: [{ type: Input }],\n locked: [{ type: Input }],\n hidden: [{ type: Input }],\n headerCellOptions: [{ type: Input }],\n children: [{ type: ContentChildren, args: [ColumnBase,] }]\n};\n\n// tslint:disable:max-line-length\n/**\n * Represents the [Kendo UI Excel Export component for Angular]({% slug overview_excelexport %}).\n * Configures the settings for the Excel export of the Kendo UI Grid.\n */\nclass ExcelExportComponent {\n constructor(localization, zone) {\n this.localization = localization;\n this.zone = zone;\n /**\n * Specifies the name of the file that is exported to Excel.\n * @default \"Export.xlsx\"\n */\n this.fileName = 'Export.xlsx';\n /**\n * @hidden\n */\n this.columns = new QueryList();\n this.saveFile = this.saveFile.bind(this);\n }\n /**\n * Saves the data to Excel.\n *\n * @param exportData - An optional parameter. Can be the data that will be exported or [`WorkbookOptions`]({% slug api_excel-export_workbookoptions %}).\n */\n save(exportData) {\n this.toDataURL(exportData).then(this.saveFile);\n }\n /**\n * Based on the specified columns and data, returns\n * [`WorkbookOptions`]({% slug api_excel-export_workbookoptions %})\n * ([see example]({% slug customrowsandcells_excelexport %})).\n *\n * @param exportData - The optional data to be exported.\n * @returns {WorkbookOptions} - The workbook options.\n */\n workbookOptions(exportData) {\n const currentData = this.getExportData(exportData);\n const options = workbookOptions({\n columns: this.columns,\n data: currentData.data,\n group: currentData.group,\n filterable: this.filterable,\n creator: this.creator,\n date: this.date,\n rtl: this.localization.rtl,\n paddingCellOptions: this.paddingCellOptions,\n headerPaddingCellOptions: this.headerPaddingCellOptions,\n collapsible: this.collapsible\n });\n return options;\n }\n /**\n * Returns a promise which will be resolved with the file data URI\n * ([see example]({% slug filesaving_excelexport %})).\n *\n * @param exportData - The optional data or [`WorkbookOptions`]({% slug api_excel-export_workbookoptions %}) that will be used to generate the data URI.\n * @returns {Promise} - The promise that will be resolved by the file data URI.\n */\n toDataURL(exportData) {\n const options = isWorkbookOptions(exportData) ?\n exportData :\n this.workbookOptions(exportData);\n return this.zone.runOutsideAngular(() => toDataURL(options));\n }\n getExportData(exportData) {\n let result;\n if (exportData) {\n if (Array.isArray(exportData)) {\n result = {\n data: exportData\n };\n }\n else {\n result = exportData;\n }\n }\n else {\n result = {\n data: this.data,\n group: this.group\n };\n }\n return result;\n }\n saveFile(dataURL) {\n saveAs(dataURL, this.fileName, {\n forceProxy: this.forceProxy,\n proxyURL: this.proxyURL\n });\n }\n}\nExcelExportComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoExcelExport',\n selector: 'kendo-excelexport',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.excelexport'\n }\n ],\n template: ``\n },] },\n];\n/** @nocollapse */\nExcelExportComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: NgZone }\n];\nExcelExportComponent.propDecorators = {\n fileName: [{ type: Input }],\n filterable: [{ type: Input }],\n collapsible: [{ type: Input }],\n creator: [{ type: Input }],\n date: [{ type: Input }],\n forceProxy: [{ type: Input }],\n proxyURL: [{ type: Input }],\n data: [{ type: Input }],\n group: [{ type: Input }],\n paddingCellOptions: [{ type: Input }],\n headerPaddingCellOptions: [{ type: Input }],\n columns: [{ type: ContentChildren, args: [ColumnBase, { descendants: true },] }]\n};\n\n/**\n * Represents the group header cell template of the Excel Export column component\n * ([see example]({% slug columns_excel-export %}#toc-group-header-template)).\n * Enables you to customize the content of the group header item.\n */\nclass GroupHeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nGroupHeaderTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoExcelExportGroupHeaderTemplate]'\n },] },\n];\n/** @nocollapse */\nGroupHeaderTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents the group header column template of the Excel Export column component\n * ([see example]({% slug columns_excel-export %}#toc-group-header-column-template)).\n */\nclass GroupHeaderColumnTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nGroupHeaderColumnTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoExcelExportGroupHeaderColumnTemplate]'\n },] },\n];\n/** @nocollapse */\nGroupHeaderColumnTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents the group footer cell template of the Excel Export column component\n * ([see example]({% slug columns_excel-export %}#toc-group-footer-template)).\n * Enables you to customize the group footer cell of the column.\n */\nclass GroupFooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nGroupFooterTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoExcelExportGroupFooterTemplate]'\n },] },\n];\n/** @nocollapse */\nGroupFooterTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents the footer cell template of the Excel Export column component\n * ([see example]({% slug columns_excel-export %}#toc-footer-template)).\n * Enables you to customize the footer cell of the column.\n */\nclass FooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nFooterTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoExcelExportFooterTemplate]'\n },] },\n];\n/** @nocollapse */\nFooterTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents the columns of the Kendo UI Excel Export component for Angular.\n */\nclass ColumnComponent extends ColumnBase {\n constructor(parent) {\n super(parent);\n }\n}\nColumnComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: ColumnBase,\n useExisting: forwardRef(() => ColumnComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-excelexport-column',\n template: ``\n },] },\n];\n/** @nocollapse */\nColumnComponent.ctorParameters = () => [\n { type: ColumnBase, decorators: [{ type: SkipSelf }, { type: Host }, { type: Optional }] }\n];\nColumnComponent.propDecorators = {\n field: [{ type: Input }],\n cellOptions: [{ type: Input }],\n groupHeaderCellOptions: [{ type: Input }],\n groupFooterCellOptions: [{ type: Input }],\n footerCellOptions: [{ type: Input }],\n groupHeaderTemplate: [{ type: ContentChild, args: [GroupHeaderTemplateDirective,] }],\n groupHeaderColumnTemplate: [{ type: ContentChild, args: [GroupHeaderColumnTemplateDirective,] }],\n groupFooterTemplate: [{ type: ContentChild, args: [GroupFooterTemplateDirective,] }],\n footerTemplate: [{ type: ContentChild, args: [FooterTemplateDirective,] }]\n};\n\n/**\n * Represents the column group component of the Kendo UI Excel Export component.\n */\nclass ColumnGroupComponent extends ColumnBase {\n constructor(parent) {\n super(parent);\n this.parent = parent;\n }\n}\nColumnGroupComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: ColumnBase,\n useExisting: forwardRef(() => ColumnGroupComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-excelexport-column-group',\n template: ``\n },] },\n];\n/** @nocollapse */\nColumnGroupComponent.ctorParameters = () => [\n { type: ColumnBase, decorators: [{ type: SkipSelf }, { type: Host }, { type: Optional }] }\n];\n\nconst declarations = [\n ExcelExportComponent,\n ColumnComponent,\n ColumnGroupComponent,\n FooterTemplateDirective,\n GroupFooterTemplateDirective,\n GroupHeaderTemplateDirective,\n GroupHeaderColumnTemplateDirective\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Excel Export component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the ExcelExportModule module\n * import { ExcelExportModule } from '@progress/kendo-angular-excel-export';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, ExcelExportModule], // import ExcelExportModule module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass ExcelExportModule {\n}\nExcelExportModule.decorators = [\n { type: NgModule, args: [{\n declarations: [declarations],\n exports: [declarations]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { GroupHeaderColumnTemplateDirective, ExcelExportComponent, ExcelExportModule, ColumnBase, ColumnComponent, ColumnGroupComponent, FooterTemplateDirective, GroupFooterTemplateDirective, GroupHeaderTemplateDirective, workbookOptions, toDataURL, isWorkbookOptions };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { EventEmitter, Directive, TemplateRef, Optional, QueryList, Input, ContentChildren, ContentChild, InjectionToken, Component, forwardRef, SkipSelf, Host, Injectable, NgZone, ChangeDetectorRef, Output, Inject, isDevMode, Renderer2, SecurityContext, ElementRef, ViewEncapsulation, HostBinding, ViewChild, ViewChildren, Self, ViewContainerRef, Pipe, NgModule, ComponentFactoryResolver, ChangeDetectionStrategy, HostListener } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { merge, of, fromEvent, Subject, Subscription, zip, from, interval, BehaviorSubject, Observable } from 'rxjs';\nimport { auditTime, switchMap, take, map, distinctUntilChanged, filter, tap, throttleTime, takeUntil, switchMapTo, delay, debounceTime, bufferCount } from 'rxjs/operators';\nimport { isDocumentAvailable, Keys, isChanged, anyChanged, hasObservers, ResizeSensorComponent, DraggableModule, EventsModule, DraggableDirective, guid, ResizeSensorModule } from '@progress/kendo-angular-common';\nimport { orderBy, process, isCompositeFilterDescriptor, filterBy } from '@progress/kendo-data-query';\nimport { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { PopupService, PopupModule } from '@progress/kendo-angular-popup';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { getter } from '@progress/kendo-common';\nimport { DropDownListModule, AutoCompleteModule } from '@progress/kendo-angular-dropdowns';\nimport { InputsModule, NumericTextBoxComponent, NumericTextBoxModule } from '@progress/kendo-angular-inputs';\nimport { DatePickerModule } from '@progress/kendo-angular-dateinputs';\nimport { IntlService } from '@progress/kendo-angular-intl';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Button } from '@progress/kendo-angular-buttons';\nimport { PDFMarginComponent, PDFTemplateDirective, PDFExportComponent } from '@progress/kendo-angular-pdf-export';\nimport { saveAs } from '@progress/kendo-file-saver';\nimport { workbookOptions, toDataURL, ColumnBase, ExcelExportModule } from '@progress/kendo-angular-excel-export';\n\n/**\n * @hidden\n */\nclass ZoneAwareEventEmitter extends EventEmitter {\n constructor(ngZone, isAsync = false) {\n super(isAsync);\n this.ngZone = ngZone;\n }\n subscribe(generatorOrNext, error, complete) {\n let schedulerFn;\n let errorFn = (_) => null;\n let completeFn = () => null;\n if (generatorOrNext && typeof generatorOrNext === 'object') {\n schedulerFn = (value) => { this.ngZone.run(() => generatorOrNext.next(value)); };\n if (generatorOrNext.error) {\n errorFn = (err) => { this.ngZone.run(() => generatorOrNext.error(err)); };\n }\n if (generatorOrNext.complete) {\n completeFn = () => { this.ngZone.run(() => generatorOrNext.complete()); };\n }\n }\n else {\n schedulerFn = (value) => { this.ngZone.run(() => generatorOrNext(value)); };\n if (error) {\n errorFn = (err) => { this.ngZone.run(() => error(err)); };\n }\n if (complete) {\n completeFn = () => { this.ngZone.run(() => complete()); };\n }\n }\n return super.subscribe(schedulerFn, errorFn, completeFn);\n }\n}\n\n/**\n * Represents the column cell template of the Grid ([more information and example]({% slug templates_columns_grid %}#toc-cell-template)).\n * Helps to customize the content of the cells. To define the cell template, nest an `` tag\n * with the `kendoGridCellTemplate` directive inside a `` tag.\n *\n * The template context is set to the current data item and the following additional fields are passed:\n * - `columnIndex`—The current column index. Use it as an alias for a template variable by utilizing the `let-columnIndex=\"columnIndex\"` syntax.\n * - `rowIndex`—The current data row index. Use it as an alias for a template variable by utilizing the `let-rowIndex=\"rowIndex\"` syntax.\n * - `dataItem`—The current data item. Represents the default context that will be assigned to any template variable which utilizes the `let-x` syntax—for example, `let-dataItem`.\n * - `column`—The current column instance. Use it as an alias for a template variable by utilizing the `let-column=\"column\"` syntax.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * Data Row #: {{rowIndex}} /\n * {{dataItem.ProductName}}\n * ({{dataItem.Discontinued ? \"discontinued\" : \"active\"}})\n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public gridData = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": false\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": true\n * }\n * ];\n * }\n *\n * ```\n */\nclass CellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nCellTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridCellTemplate]'\n },] },\n];\n/** @nocollapse */\nCellTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents the group-header cell template of the Grid which helps to customize the content of the group header item.\n * To define the group header template, nest an `` tag with the `kendoGridGroupHeaderTemplate`\n * directive inside ``.\n *\n * The template context is set to the current data item and the following additional fields are passed:\n * - `group`—The current group item.\n * - `field`—The name of the field by which data is grouped.\n * - `value`—The current group value.\n * - `aggregates`—All aggregate values for the current group.\n * - `index`—The index of the current group.\n * - `expanded`—A boolean value indicating if the group is currently expanded.\n * ([see example]({% slug groupable_grid_with_aggregates %})).\n *\n * @example\n * ```ts-preview\n * import { process } from '@progress/kendo-data-query';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * {{field}}: {{value}}\n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public groups = [{ field: \"ProductName\" }];\n *\n * public gridData = process([{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": false\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": true\n * }\n * ], {\n * group: this.groups\n * });\n * }\n *\n * ```\n */\nclass GroupHeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nGroupHeaderTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridGroupHeaderTemplate]'\n },] },\n];\n/** @nocollapse */\nGroupHeaderTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents the group-header column template of the Grid which helps to customize the content of the group headers.\n * To define the group header template, nest an `` tag with the `kendoGridGroupHeaderColumnTemplate`\n * directive inside ``.\n *\n * The template context is set to the current data item and the following additional fields are passed:\n * - `group`—The current group item.\n * - `field`—The name of the field by which data is grouped.\n * - `value`—The current group value.\n * - `aggregates`—All aggregate values for the current group.\n *\n * @example\n * {% meta height:600 %}\n * {% embed_file grouping/app.component.ts preview %}\n * {% embed_file grouping/app.module.ts %}\n * {% embed_file grouping/main.ts %}\n * {% endmeta %}\n *\n * ```\n */\nclass GroupHeaderColumnTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nGroupHeaderColumnTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridGroupHeaderColumnTemplate]'\n },] },\n];\n/** @nocollapse */\nGroupHeaderColumnTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents the column edit-cell template of the Grid ([see example]({% slug editing_template_forms_grid %})).\n * Helps to customize the content of the edited cells. To define the cell template, nest an ``\n * tag with the `kendoGridEditTemplate` directive inside a `` tag.\n *\n * The template context contains the following fields:\n * - `formGroup`—The current [`FormGroup`]({{ site.data.urls.angular['formgroupapi'] }}).\n * If you use the Grid inside [Template-Driven Forms]({{ site.data.urls.angular['forms'] }}), it will be `undefined`.\n * - `rowIndex`—The current data row index. If inside a new item row, `rowIndex` is `-1`.\n * - `dataItem`—The current data item.\n * - `column`—The current column instance.\n * - `isNew`—The state of the current item.\n */\nclass EditTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nEditTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridEditTemplate]'\n },] },\n];\n/** @nocollapse */\nEditTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents the column group footer cell template of the Grid which helps to customize the group footer cell for the column.\n * To define the group footer template, nest an `` tag with the `kendoGridGroupFooterTemplate` directive\n * inside ``.\n *\n * The template context is set to the current aggregates and the following additional fields are passed:\n * - `column`—Defines an instance of the `ColumnComponent` option.\n * - `field`—The current column field name.\n * - `group`—The current group data item.\n * - `aggregates`—All aggregate values for the current group.\n *\n * @example\n * ```ts-preview\n * import { process } from '@progress/kendo-data-query';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * Count: {{aggregates[field].count}}\n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public groups = [{ field: \"ProductName\", aggregates: [{ field: \"ProductName\", aggregate: \"count\" }] }];\n *\n * public gridData = process([{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": false\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": true\n * }\n * ], {\n * group: this.groups\n * });\n * }\n * ```\n */\nclass GroupFooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nGroupFooterTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridGroupFooterTemplate]'\n },] },\n];\n/** @nocollapse */\nGroupFooterTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents the column header cell template of the Grid\n * ([more information and example]({% slug templates_columns_grid %}#toc-header-template)).\n * Helps to customize the table header cell for the column.\n * To define a header template, nest an `` tag with the\n * [`kendoGridHeaderTemplate`]({% slug api_grid_headertemplatedirective %}) directive inside the `` tag.\n *\n * The template context is set to the current column and then the following additional fields are passed:\n * * `column`—Defines an instance of the [`ColumnComponent`]({% slug api_grid_columncomponent %}) option.\n * * `columnIndex`—Defines the current column index.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * {{column.field}}({{columnIndex}})\n * \n * \n * \n * \n * {{column.field}}({{columnIndex}})\n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public gridData = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": false\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": true\n * }\n * ];\n * }\n *\n * ```\n */\nclass HeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nHeaderTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridHeaderTemplate]'\n },] },\n];\n/** @nocollapse */\nHeaderTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents the column footer cell template of the Grid\n * ([more information and example]({% slug templates_columns_grid %}#toc-footer-template)).\n * Helps to customize the table footer cell for the column.\n * To define a footer template, nest an `` tag with the\n * [`kendoGridFooterTemplate`]({% slug api_grid_footertemplatedirective %}) directive inside the `` tag.\n *\n * The template context is set to the current column and the following additional fields are passed:\n * * `column`—Defines an instance of the [`ColumnComponent`]({% slug api_grid_columncomponent %}) option.\n * * `columnIndex`—Defines the current column index.\n *\n * For more information on how to display aggregates in the footer of the Grid,\n * refer to the article on [aggregates]({% slug groupable_grid_with_aggregates %}).\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * {{column.field}}({{columnIndex}})\n * \n * \n * \n * \n * {{column.field}}({{columnIndex}})\n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public gridData = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": false\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": true\n * }\n * ];\n * }\n *\n * ```\n */\nclass FooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nFooterTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridFooterTemplate]'\n },] },\n];\n/** @nocollapse */\nFooterTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/* tslint:disable:max-line-length */\n/**\n * Represents the template for the column menu in the Grid. Provides an option for\n * customizing the content of the column menu for all or for specific columns.\n * To define the content template, nest an `` tag with the\n * `kendoGridColumnMenuTemplate` directive inside the `kendo-grid` or the `` component.\n *\n * The template context is passes through the following fields:\n * - `service`—Represents the [ColumnMenuService]({% slug api_grid_columnmenuservice %}).\n * - `column`—Represents the Grid column.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }, { Field1: 'Foo1', Field2: 'Bar1' }];\n * }\n *\n * ```\n */\nclass ColumnMenuTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nColumnMenuTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridColumnMenuTemplate]'\n },] },\n];\n/** @nocollapse */\nColumnMenuTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * @hidden\n */\nconst isSpanColumn = column => column.isSpanColumn;\n/**\n * @hidden\n */\nconst isCheckboxColumn = column => column.isCheckboxColumn;\nconst isColumnContainer = column => column.isColumnGroup || isSpanColumn(column);\n/**\n * The base class for the column components of the Grid.\n */\nclass ColumnBase$1 {\n constructor(parent) {\n this.parent = parent;\n /**\n * @hidden\n */\n this.matchesMedia = true;\n /**\n * The column index after reordering.\n *\n * > `orderIndex` is a read-only property. Setting this field does not affect column order.\n */\n this.orderIndex = 0;\n /**\n * @hidden\n */\n this.isColumnGroup = false;\n /**\n * @hidden\n */\n this.isSpanColumn = false;\n /**\n * Indicates whether the column is resizable.\n * @default true\n */\n this.resizable = true;\n /**\n * Indicates whether the column is reorderable.\n * @default true\n */\n this.reorderable = true;\n /**\n * The width (in pixels) below which the user is not able to resize the column by using the UI.\n */\n this.minResizableWidth = 10;\n /**\n * Toggles the locked (frozen) state of the columns ([more information and example]({% slug locked_columns_grid %})).\n *\n * @default false\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public gridData: any[];\n *\n * constructor() {\n * this.gridData = products;\n * }\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n *\n * ```\n */\n this.locked = false;\n /**\n * Specifies if the column can be locked or unlocked from the column menu or by reordering the columns.\n */\n this.lockable = true;\n /**\n * Specifies if the column menu will be shown for the column.\n */\n this.columnMenu = true;\n /**\n * Specifies if the column will be included in the column-chooser list.\n */\n this.includeInChooser = true;\n /**\n * @hidden\n */\n this.headerTemplates = new QueryList();\n /**\n * @hidden\n */\n this.columnMenuTemplates = new QueryList();\n if (parent && !isColumnContainer(parent)) {\n throw new Error('Columns can be nested only inside ColumnGroupComponent');\n }\n }\n /**\n * The width of the column (in pixels).\n */\n set width(value) {\n this._width = parseInt(value, 10);\n }\n get width() { return this._width; }\n /**\n * @hidden\n */\n get level() {\n if (this.parent && isSpanColumn(this.parent)) {\n return this.parent.level;\n }\n return this.parent ? this.parent.level + 1 : 0;\n }\n /**\n * @hidden\n */\n get isLocked() {\n return this.parent ? this.parent.isLocked : this.locked;\n }\n /**\n * @hidden\n */\n get colspan() {\n return 1;\n }\n /**\n * @hidden\n */\n rowspan(totalColumnLevels) {\n return this.level < totalColumnLevels ? (totalColumnLevels - this.level) + 1 : 1;\n }\n /**\n * @hidden\n */\n get headerTemplateRef() {\n const template = this.headerTemplates.first;\n return template ? template.templateRef : undefined;\n }\n /**\n * @hidden\n */\n get footerTemplateRef() {\n return this.footerTemplate ? this.footerTemplate.templateRef : undefined;\n }\n /**\n * @hidden\n */\n get columnMenuTemplateRef() {\n const template = this.columnMenuTemplates.first;\n return template ? template.templateRef : null;\n }\n /**\n * @hidden\n */\n get displayTitle() {\n return this.title;\n }\n /**\n * @hidden\n */\n get isVisible() {\n return !this.hidden && this.matchesMedia;\n }\n}\nColumnBase$1.propDecorators = {\n resizable: [{ type: Input }],\n reorderable: [{ type: Input }],\n minResizableWidth: [{ type: Input }],\n title: [{ type: Input }],\n width: [{ type: Input }],\n autoSize: [{ type: Input }],\n locked: [{ type: Input }],\n hidden: [{ type: Input }],\n media: [{ type: Input }],\n lockable: [{ type: Input }],\n columnMenu: [{ type: Input }],\n includeInChooser: [{ type: Input }],\n style: [{ type: Input }],\n headerStyle: [{ type: Input }],\n footerStyle: [{ type: Input }],\n cssClass: [{ type: Input, args: ['class',] }],\n headerClass: [{ type: Input }],\n footerClass: [{ type: Input }],\n headerTemplates: [{ type: ContentChildren, args: [HeaderTemplateDirective, { descendants: false },] }],\n footerTemplate: [{ type: ContentChild, args: [FooterTemplateDirective,] }],\n columnMenuTemplates: [{ type: ContentChildren, args: [ColumnMenuTemplateDirective,] }]\n};\n\nconst EMPTY_REGEX = /^\\s*$/;\n/**\n * @hidden\n */\nconst isPresent = (value) => value !== null && value !== undefined;\n/**\n * @hidden\n */\nconst isBlank = (value) => value === null || value === undefined;\n/**\n * @hidden\n */\nconst isArray = (value) => Array.isArray(value);\n/**\n * @hidden\n */\nconst isTruthy = (value) => !!value;\n/**\n * @hidden\n */\nconst isNullOrEmptyString = (value) => isBlank(value) || EMPTY_REGEX.test(value);\n/**\n * @hidden\n */\nconst observe = (list) => merge(of(list), list.changes);\n/**\n * @hidden\n */\nconst isUniversal = () => typeof document === 'undefined';\n/**\n * @hidden\n */\nconst isString = (value) => typeof value === 'string';\n/**\n * @hidden\n */\nconst isNumber = (value) => typeof value === \"number\" && !isNaN(value);\n/**\n * @hidden\n */\nconst extractFormat = (format) => {\n if (isString(format) && !isNullOrEmptyString(format) && format.startsWith('{0:')) {\n return format.slice(3, format.length - 1);\n }\n return format;\n};\n/**\n * @hidden\n */\nconst not = (fn) => (...args) => !fn.apply(null, args);\n/**\n * @hidden\n */\nconst or = (...conditions) => (value) => conditions.reduce((acc, x) => acc || x(value), false);\n/**\n * @hidden\n */\nconst and = (...conditions) => (value) => conditions.reduce((acc, x) => acc && x(value), true);\n/**\n * @hidden\n */\nconst Skip = new InjectionToken(\"Skip\"); // tslint:disable-line:variable-name\n/**\n * @hidden\n */\nconst createPromise = () => {\n let resolveFn, rejectFn;\n const promise = new Promise((resolve, reject) => {\n resolveFn = (data) => {\n resolve(data);\n return promise;\n };\n rejectFn = (data) => {\n reject(data);\n return promise;\n };\n });\n promise.resolve = resolveFn;\n promise.reject = rejectFn;\n return promise;\n};\n/** @hidden */\nconst iterator = getIterator();\n// TODO: Move to kendo-common\nfunction getIterator() {\n if (typeof Symbol === 'function' && Symbol.iterator) {\n return Symbol.iterator;\n }\n const keys = Object.getOwnPropertyNames(Map.prototype);\n const proto = Map.prototype;\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (key !== 'entries' && key !== 'size' && proto[key] === proto.entries) {\n return key;\n }\n }\n}\nconst FRAME_DURATION = 1000 / 60;\nconst wnd = typeof window !== 'undefined' ? window : {};\n/** @hidden */\nconst requestAnimationFrame = wnd.requestAnimationFrame || wnd.msRequestAnimationFrame || (callback => setTimeout(callback, FRAME_DURATION));\n/** @hidden */\nconst cancelAnimationFrame = wnd.cancelAnimationFrame || wnd.msCancelRequestAnimationFrame || clearTimeout;\n\n/**\n * Represents the filter-cell template ([see example]({% slug builtinfiltertemplate_grid %}#toc-customizing-filter-rows)).\n */\nclass FilterCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nFilterCellTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridFilterCellTemplate]'\n },] },\n];\n/** @nocollapse */\nFilterCellTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents the filter-menu template\n * ([see example]({% slug builtinfiltertemplate_grid %}#toc-customizing-filter-menus)).\n */\nclass FilterMenuTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nFilterMenuTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridFilterMenuTemplate]'\n },] },\n];\n/** @nocollapse */\nFilterMenuTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * @hidden\n */\nfunction isColumnComponent(column) {\n return isPresent(column.field);\n}\n/**\n * Represents the columns of the [Angular Data Grid]({% slug overview_grid %}).\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public gridData: any[];\n *\n * constructor() {\n * this.gridData = products;\n * }\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n *\n * ```\n */\nclass ColumnComponent extends ColumnBase$1 {\n constructor(parent) {\n super(parent);\n /**\n * Allows the column headers to be clicked and the `sortChange` event emitted.\n * You have to handle the `sortChange` event yourself and sort the data.\n */\n this.sortable = true;\n /**\n * Determines if the column can be dragged to the group panel. The default value is `true`.\n * If set to `false`, you can group the columns by the column field by using the API of the Grid.\n */\n this.groupable = true;\n /**\n * Defines the editor type ([see example]({% slug editing_reactive_forms_grid %}#toc-setup)).\n * Used when the column enters the edit mode. The default value is `text`.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * ```\n */\n this.editor = 'text';\n /**\n * Defines the filter type that is displayed inside the filter row. The default value is `text`.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * ```\n */\n this.filter = 'text';\n /**\n * Defines if a filter UI will be displayed for this column. The default value is `true`.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * ```\n */\n this.filterable = true;\n /**\n * Defines whether the column is editable. The default value is `true`.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * ```\n */\n this.editable = true;\n }\n get templateRef() {\n return this.template ? this.template.templateRef : undefined;\n }\n get groupHeaderTemplateRef() {\n return this.groupHeaderTemplate ? this.groupHeaderTemplate.templateRef : undefined;\n }\n get groupHeaderColumnTemplateRef() {\n return this.groupHeaderColumnTemplate ? this.groupHeaderColumnTemplate.templateRef : undefined;\n }\n get groupFooterTemplateRef() {\n return this.groupFooterTemplate ? this.groupFooterTemplate.templateRef : undefined;\n }\n get editTemplateRef() {\n return this.editTemplate ? this.editTemplate.templateRef : undefined;\n }\n get filterCellTemplateRef() {\n return this.filterCellTemplate ? this.filterCellTemplate.templateRef : undefined;\n }\n get filterMenuTemplateRef() {\n return this.filterMenuTemplate ? this.filterMenuTemplate.templateRef : undefined;\n }\n get displayTitle() {\n return this.title === undefined ? this.field : this.title;\n }\n}\nColumnComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => ColumnComponent)\n }\n ],\n selector: 'kendo-grid-column',\n template: ``\n },] },\n];\n/** @nocollapse */\nColumnComponent.ctorParameters = () => [\n { type: ColumnBase$1, decorators: [{ type: SkipSelf }, { type: Host }, { type: Optional }] }\n];\nColumnComponent.propDecorators = {\n field: [{ type: Input }],\n format: [{ type: Input }],\n sortable: [{ type: Input }],\n groupable: [{ type: Input }],\n editor: [{ type: Input }],\n filter: [{ type: Input }],\n filterable: [{ type: Input }],\n editable: [{ type: Input }],\n template: [{ type: ContentChild, args: [CellTemplateDirective,] }],\n groupHeaderTemplate: [{ type: ContentChild, args: [GroupHeaderTemplateDirective,] }],\n groupHeaderColumnTemplate: [{ type: ContentChild, args: [GroupHeaderColumnTemplateDirective,] }],\n groupFooterTemplate: [{ type: ContentChild, args: [GroupFooterTemplateDirective,] }],\n editTemplate: [{ type: ContentChild, args: [EditTemplateDirective,] }],\n filterCellTemplate: [{ type: ContentChild, args: [FilterCellTemplateDirective,] }],\n filterMenuTemplate: [{ type: ContentChild, args: [FilterMenuTemplateDirective,] }]\n};\n\n/**\n * @hidden\n */\nfunction isSpanColumnComponent(column) {\n return column.isSpanColumn;\n}\n/**\n * Represents a column which can be spanned over multiple data cells while the individual\n * header and footer cells are retained ([see example]({% slug spanned_columns_grid %})).\n * Enables you to achieve more flexible layout while keeping the built-in UI element for\n * [sorting]({% slug sorting_grid %}), [filtering]({% slug filtering_grid %}), and\n * [grouping]({% slug groupingbasics_grid %}). Wrap the columns that will be\n * merged inside the `` tag.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n * }\n *\n * ```\n *\n * By default, the data cell displays the data for the specified fields. To further customize\n * the span-column functionality, use a [cell template]({% slug api_grid_celltemplatedirective %}).\n *\n * ```html-no-run\n * \n * \n * \n * \n *
{{ dataItem.field1 }}
\n *

{{ dataItem.field2 }}

\n *
\n *
\n * ```\n */\nclass SpanColumnComponent extends ColumnBase$1 {\n constructor(parent) {\n super(parent);\n /*\n * @hidden\n */\n this.isSpanColumn = true;\n this.template = new QueryList();\n this.editTemplate = new QueryList();\n /**\n * @hidden\n */\n this.childColumns = new QueryList();\n /**\n * @hidden\n */\n this.includeInChooser = false;\n this._editable = true;\n this._locked = false;\n if (parent && parent.isSpanColumn) {\n throw new Error('SpanColumn cannot be nested inside another SpanColumn');\n }\n }\n /**\n * Defines whether the edit template of the column will be rendered. The default value is `false`.\n *\n * > To enable the editing functionality for a spanned column, set an edit template for it.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * .....\n * \n * \n * \n * ```\n */\n set editable(value) {\n this._editable = value;\n }\n get editable() {\n return isPresent(this.editTemplateRef) && this._editable;\n }\n /**\n * @hidden\n * added for backwards compitability\n */\n set width(_value) {\n }\n get width() {\n return this.childColumns.reduce((total, column) => total + column.width, 0);\n }\n /**\n * @hidden\n */\n get leafIndex() {\n return this.childColumns.first.leafIndex;\n }\n /**\n * @hidden\n */\n get templateRef() {\n const template = this.template.first;\n return template ? template.templateRef : undefined;\n }\n /**\n * @hidden\n */\n get editTemplateRef() {\n const editTemplate = this.editTemplate.first;\n return editTemplate ? editTemplate.templateRef : undefined;\n }\n /**\n * @hidden\n */\n get colspan() {\n return this.childColumns.filter(c => c.isVisible).length;\n }\n /**\n * Toggles the locked (frozen) state of the columns. Locked columns are visible\n * at all times during the horizontal scrolling of the Grid.\n *\n * For the option to work properly, make sure that:\n * - Scrolling is enabled.\n * - The `height` option of the Grid is set.\n * - The widths of all Grid columns are explicitly set in pixels. In this way,\n * the Grid adjusts the layout of the locked and unlocked columns.\n *\n * @default false\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public gridData: any[];\n *\n * constructor() {\n * this.gridData = products;\n * }\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n *\n * ```\n */\n set locked(value) {\n this._locked = value;\n }\n get locked() {\n return this._locked || this.childColumns.some(c => c.locked);\n }\n get childrenArray() {\n return this.childColumns.toArray();\n }\n get hasChildren() {\n return this.childColumns.length > 0;\n }\n}\nSpanColumnComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => SpanColumnComponent)\n }\n ],\n selector: 'kendo-grid-span-column',\n template: ``\n },] },\n];\n/** @nocollapse */\nSpanColumnComponent.ctorParameters = () => [\n { type: ColumnBase$1, decorators: [{ type: SkipSelf }, { type: Host }, { type: Optional }] }\n];\nSpanColumnComponent.propDecorators = {\n template: [{ type: ContentChildren, args: [CellTemplateDirective, { descendants: false },] }],\n editTemplate: [{ type: ContentChildren, args: [EditTemplateDirective, { descendants: false },] }],\n childColumns: [{ type: ContentChildren, args: [ColumnComponent,] }],\n editable: [{ type: Input }],\n locked: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nconst expandColumns = (columns) => (columns.reduce((acc, column) => acc.concat(isSpanColumnComponent(column) ? column.childrenArray : [column]), []) // tslint:disable-line:align\n);\n/**\n * @hidden\n */\nconst expandColumnsWithSpan = (columns) => (columns.reduce((acc, column) => acc.concat(isSpanColumnComponent(column) ?\n [column].concat(column.childrenArray) :\n [column]), []) // tslint:disable-line:align\n);\n/**\n * @hidden\n */\nconst columnsToRender = (columns) => (expandColumns(columns).filter(x => x.isVisible));\nconst sumProp = (prop) => (array) => (array || []).reduce((prev, curr) => prev + (curr[prop] || 0), 0);\n/**\n * @hidden\n */\nconst sumColumnWidths = sumProp('width');\n/**\n * @hidden\n */\nconst columnsSpan = sumProp('colspan');\n// tslint:disable-next-line:max-line-length\nconst validField = new RegExp(`^[$A-Z\\_a-z][$A-Z\\_a-z0-9\\\\.]*$`);\n/**\n * @hidden\n */\nconst isValidFieldName = (fieldName) => !isNullOrEmptyString(fieldName) && validField.test(fieldName) &&\n fieldName[0] !== \".\" && fieldName[fieldName.length - 1] !== \".\";\n/**\n * @hidden\n */\nconst children = column => column.children.filter(child => child !== column);\n/**\n * @hidden\n */\nconst leafColumns = columns => {\n return columns.reduce((acc, column) => {\n if (column.isColumnGroup) {\n acc = acc.concat(leafColumns(children(column)));\n }\n else if (column.isSpanColumn) {\n acc = acc.concat(column.childrenArray);\n }\n else {\n acc.push(column);\n }\n return acc;\n }, []).filter(x => x.isVisible); // tslint:disable-line:align\n};\n/**\n * @hidden\n */\nconst someLeafColumn = (callback, ...columns) => leafColumns(columns).some(callback);\n/**\n * @hidden\n */\nconst resizableColumns = columns => columns.filter(column => isTruthy(column.resizable) && column.isVisible);\n/**\n * @hidden\n */\nconst sortColumns = (columns) => orderBy(columns, [{ field: 'orderIndex', dir: 'asc' }]);\n/**\n * @hidden\n */\nconst isInSpanColumn = (column) => isTruthy(column.parent) && isSpanColumnComponent(column.parent);\n\n/**\n * @hidden\n */\nfunction isColumnGroupComponent(column) {\n return column.isColumnGroup;\n}\n/**\n * Represents the column group header of the Grid\n * ([more information and examples]({% slug multicolumnheaders_columns_grid %})).\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * Column index: {{columnIndex}} / column title: {{column.title}}\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public gridData: any[];\n *\n * constructor() {\n * this.gridData = products;\n * }\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n *\n * ```\n */\nclass ColumnGroupComponent extends ColumnBase$1 {\n constructor(parent) {\n super(parent);\n this.parent = parent;\n /**\n * @hidden\n */\n this.includeInChooser = false;\n /**\n * @hidden\n */\n this.isColumnGroup = true;\n /**\n * @hidden\n */\n this.minResizableWidth = 10;\n if (parent && parent.isSpanColumn) {\n throw new Error('ColumnGroupComponent cannot be nested inside SpanColumnComponent');\n }\n }\n /**\n * @hidden\n */\n rowspan() {\n return 1;\n }\n /**\n * @hidden\n */\n get colspan() {\n if (!this.children || this.children.length === 1) {\n return 1;\n }\n return columnsSpan(this.children\n .filter(child => child !== this && child.isVisible));\n }\n /**\n * @hidden\n */\n get leafIndex() {\n return this.children ? (this.firstChild || {}).leafIndex : -1;\n }\n get childrenArray() {\n return this.children.filter(c => c !== this);\n }\n get hasChildren() {\n return Boolean(this.firstChild);\n }\n get firstChild() {\n return this.children.find(column => column !== this);\n }\n}\nColumnGroupComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => ColumnGroupComponent)\n }\n ],\n selector: 'kendo-grid-column-group',\n template: ``\n },] },\n];\n/** @nocollapse */\nColumnGroupComponent.ctorParameters = () => [\n { type: ColumnBase$1, decorators: [{ type: SkipSelf }, { type: Host }, { type: Optional }] }\n];\nColumnGroupComponent.propDecorators = {\n children: [{ type: ContentChildren, args: [ColumnBase$1,] }]\n};\n\n/**\n * Represents the detail template of the Grid ([more information and examples]({% slug detailrowtemplate_grid %})).\n * To define the detail template, nest an `` tag with the `kendoGridDetailTemplate` directive inside a `` tag.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n *
\n *
{{dataItem.Category?.CategoryName}}
\n * {{dataItem.Category?.Description}}\n *
\n *
\n *
\n * `\n * })\n *\n * class AppComponent {\n * public data = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": false,\n * \"Category\": {\n * \"CategoryID\": 1,\n * \"CategoryName\": \"Beverages\",\n * \"Description\": \"Soft drinks, coffees, teas, beers, and ales\"\n * }\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false,\n * \"Category\": {\n * \"CategoryID\": 1,\n * \"CategoryName\": \"Beverages\",\n * \"Description\": \"Soft drinks, coffees, teas, beers, and ales\"\n * }\n * }, {\n * \"ProductID\": 3,\n * \"ProductName\": \"Aniseed Syrup\",\n * \"UnitPrice\": 10.0000,\n * \"Discontinued\": false,\n * \"Category\": {\n * \"CategoryID\": 2,\n * \"CategoryName\": \"Condiments\",\n * \"Description\": \"Sweet and savory sauces, relishes, spreads, and seasonings\"\n * }\n * }];\n *\n * }\n *\n * ```\n *\n */\nclass DetailTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this._condition = () => true;\n }\n /**\n * Defines the function that indicates if a given detail row and the associated **Expand** or **Collapse** button will be displayed.\n */\n set showIf(fn) {\n if (typeof fn !== 'function') {\n throw new Error(`showIf must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._condition = fn;\n }\n get showIf() {\n return this._condition;\n }\n}\nDetailTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridDetailTemplate]'\n },] },\n];\n/** @nocollapse */\nDetailTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\nDetailTemplateDirective.propDecorators = {\n showIf: [{ type: Input, args: [\"kendoGridDetailTemplateShowIf\",] }]\n};\n\nconst canCreateElement = () => isDocumentAvailable() && document.createElement;\nlet cachedScrollbarWidth = null;\nlet cachedPixelRatio;\nlet cachedRtlScrollLeft = null;\nfunction scrollbarWidth() {\n if (cachedScrollbarWidth === null && canCreateElement()) {\n cachedPixelRatio = window.devicePixelRatio || 1;\n const div = document.createElement(\"div\");\n div.style.cssText = \"overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block\";\n div.innerHTML = \" \";\n document.body.appendChild(div);\n cachedScrollbarWidth = div.offsetWidth - div.scrollWidth;\n document.body.removeChild(div);\n }\n return cachedScrollbarWidth;\n}\nfunction rtlScrollLeft() {\n if (cachedRtlScrollLeft === null && canCreateElement()) {\n const div = document.createElement(\"div\");\n div.style.cssText = \"overflow:scroll;zoom:1;clear:both;display:block;width:100px;visibility:hidden;position:absolute;left:-10000px;direction:rtl;\";\n div.innerHTML = \"
\";\n document.body.appendChild(div);\n const initial = div.scrollLeft;\n div.scrollLeft = -1;\n cachedRtlScrollLeft = div.scrollLeft < 0 ? div.scrollLeft : initial;\n document.body.removeChild(div);\n }\n return cachedRtlScrollLeft;\n}\n/**\n * @hidden\n * move to kendo-common\n */\nclass BrowserSupportService {\n constructor(zone, changeDetector) {\n this.zone = zone;\n this.changeDetector = changeDetector;\n this.changes = new EventEmitter();\n if (typeof window === 'undefined') {\n return;\n }\n this.zone.runOutsideAngular(() => {\n this.subscriptions = fromEvent(window, 'resize').pipe(auditTime(100)).subscribe(() => {\n if (cachedPixelRatio !== window.devicePixelRatio) {\n zone.run(() => {\n cachedScrollbarWidth = null;\n this.changes.emit();\n this.changeDetector.markForCheck();\n });\n }\n });\n });\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n this.subscriptions = null;\n }\n }\n get scrollbarWidth() {\n return scrollbarWidth();\n }\n get rtlScrollLeft() {\n return rtlScrollLeft();\n }\n}\nBrowserSupportService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nBrowserSupportService.ctorParameters = () => [\n { type: NgZone },\n { type: ChangeDetectorRef }\n];\n\n/* tslint:disable:use-life-cycle-interface */\nconst isGroupItem = (source) => {\n return source.items !== undefined &&\n source.field !== undefined;\n};\nconst isVirtualGroupItem = (source) => {\n return source.offset !== undefined &&\n source.skipHeader !== undefined;\n};\nconst flattenGroups = (groups) => (groups.reduce((acc, curr) => {\n if (isGroupItem(curr)) {\n return acc.concat(flattenGroups(curr.items));\n }\n return acc.concat([curr]);\n}, []) // tslint:disable-line:align\n);\n/**\n * @hidden\n */\nconst itemAt = (data, index) => {\n const first = data[0];\n if (isPresent(first) && isGroupItem(first)) {\n return flattenGroups(data)[index];\n }\n return data[index];\n};\n/**\n * @hidden\n */\nconst getIterator$1 = (data, { footers, level, dataIndex, parentGroupIndex, groupIndex }) => {\n const first = data[0];\n if (isPresent(first) && isGroupItem(first)) {\n if (isVirtualGroupItem(first)) {\n groupIndex = isPresent(first.offset) ? first.offset : groupIndex;\n }\n //tslint:disable-next-line:no-use-before-declare\n return new GroupIterator(data, footers, level, dataIndex, parentGroupIndex, groupIndex);\n }\n //tslint:disable-next-line:no-use-before-declare\n return new ItemIterator(data, dataIndex, parentGroupIndex);\n};\nclass ArrayIterator {\n constructor(arr, idx = 0) {\n this.arr = arr;\n this.idx = idx;\n this.arr = arr || [];\n }\n [iterator]() {\n return this;\n }\n next() {\n return this.idx < this.arr.length ? {\n done: false,\n value: this.arr[this.idx++]\n } : { done: true, value: undefined };\n }\n}\n/**\n * @hidden\n */\nclass Iterator {\n constructor(arr, dataIndex = 0, resultMap = (x) => x) {\n this.dataIndex = dataIndex;\n this.resultMap = resultMap;\n const iter = arr[iterator];\n this._innerIterator = iter ? arr[iterator]() : new ArrayIterator(arr);\n }\n [iterator]() {\n return this;\n }\n next() {\n return this.resultMap(this._innerIterator.next(), this.dataIndex++);\n }\n}\n/**\n * @hidden\n */\nclass ItemIterator extends Iterator {\n constructor(arr, dataIndex, groupIndex) {\n super(arr, dataIndex, (x, idx) => ({\n done: x.done,\n value: {\n data: x.value,\n groupIndex: groupIndex,\n index: idx,\n type: 'data'\n }\n }));\n }\n /**\n * The index of the next record.\n * @readonly\n * @type {number}\n */\n get index() {\n return this.dataIndex;\n }\n}\nconst prefix = (s, n) => {\n const p = s ? s + \"_\" : s;\n return `${p}${n}`;\n};\n/**\n * @hidden\n */\nclass GroupIterator {\n constructor(arr, outputFooters = false, level = 0, dataIndex = 0, parentIndex = \"\", groupIndex = 0) {\n this.arr = arr;\n this.outputFooters = outputFooters;\n this.level = level;\n this.dataIndex = dataIndex;\n this.parentIndex = parentIndex;\n this.groupIndex = groupIndex;\n this.currentGroupIndex = \"\";\n this.arr = arr || [];\n this._iterator = new Iterator(this.arr, this.dataIndex);\n }\n [iterator]() {\n return this;\n }\n nextGroupItem() {\n this.current = this._iterator.next().value;\n this._innerIterator = null;\n if (this.current) {\n this.currentGroupIndex = prefix(this.parentIndex, this.groupIndex++);\n return {\n done: false,\n value: {\n data: this.current,\n index: this.currentGroupIndex,\n level: this.level,\n type: 'group'\n }\n };\n }\n else {\n this.current = null;\n return { done: true, value: undefined };\n }\n }\n footerItem() {\n if (this.current) {\n const group = this.current;\n this.current = null;\n return {\n done: false,\n value: {\n data: group,\n groupIndex: this.currentGroupIndex,\n level: this.level,\n type: 'footer'\n }\n };\n }\n else {\n this.current = null;\n return { done: true, value: undefined };\n }\n }\n innerIterator(group) {\n if (!this._innerIterator) {\n this._innerIterator = getIterator$1(group.items, {\n dataIndex: this.dataIndex,\n footers: this.outputFooters,\n level: this.level + 1,\n parentGroupIndex: this.currentGroupIndex\n });\n }\n return this._innerIterator;\n }\n nextDataItem(group) {\n const iterator$$1 = this.innerIterator(group);\n const result = iterator$$1.next();\n if (isPresent(result.value) && !result.done && result.value.type === \"data\") {\n this.dataIndex = result.value.index + 1;\n }\n return !result.done ? result : undefined;\n }\n next() {\n if (!isPresent(this.current)) {\n return this.nextGroupItem();\n }\n const item = this.nextDataItem(this.current);\n return item ? item : (this.outputFooters ? this.footerItem() : this.nextGroupItem());\n }\n /**\n * The index of the last iterated data record.\n * @readonly\n * @type {number}\n */\n get index() {\n return this.dataIndex + 1;\n }\n}\n\n/**\n * @hidden\n */\nclass DataResultIterator {\n constructor(source, skip = 0, groupFooters = false) {\n this.source = source;\n this.skip = skip;\n this.groupFooters = groupFooters;\n this.source = this.source ? this.source : [];\n this.isObject = this.isGridDataResult(this.source);\n }\n isGridDataResult(source) {\n return source.total !== undefined && source.data !== undefined;\n }\n get total() {\n return this.isObject ? this.source.total : this.source.length;\n }\n get data() {\n return this.isObject ? this.source.data : this.source;\n }\n map(fn) {\n return this.data.map(fn);\n }\n filter(fn) {\n return this.data.filter(fn);\n }\n reduce(fn, init) {\n return this.data.reduce(fn, init);\n }\n forEach(fn) {\n this.data.forEach(fn);\n }\n some(fn) {\n return this.data.some(fn);\n }\n [iterator]() {\n return getIterator$1(this.data, {\n dataIndex: this.skip,\n footers: this.groupFooters,\n groupIndex: this.skip\n });\n }\n toString() { return this.data.toString(); }\n}\n/**\n * @hidden\n */\nclass DataCollection {\n constructor(accessor) {\n this.accessor = accessor;\n }\n get total() { return this.accessor().total; }\n get length() { return this.accessor().data.length; }\n get first() { return this.accessor().data[0]; }\n get last() { return this.accessor().data[this.length - 1]; }\n at(index) {\n return itemAt(this.accessor().data, index);\n }\n map(fn) { return this.accessor().map(fn); }\n filter(fn) {\n return this.accessor().filter(fn);\n }\n reduce(fn, init) {\n return this.accessor().reduce(fn, init);\n }\n forEach(fn) {\n this.accessor().forEach(fn);\n }\n some(fn) {\n return this.accessor().some(fn);\n }\n [iterator]() {\n return this.accessor()[iterator]();\n }\n toString() { return this.accessor().toString(); }\n}\n\n/**\n * @hidden\n */\nclass DomEventsService {\n constructor() {\n this.cellClick = new EventEmitter();\n this.cellMousedown = new EventEmitter();\n this.click = new EventEmitter();\n this.keydown = new EventEmitter();\n this.focus = new EventEmitter();\n this.focusIn = new EventEmitter();\n this.focusOut = new EventEmitter();\n this.windowBlur = new EventEmitter();\n }\n}\nDomEventsService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nclass LocalDataChangesService {\n constructor() {\n this.changes = new EventEmitter();\n }\n}\nLocalDataChangesService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nclass SelectionService {\n constructor(domEvents, localDataChangesService) {\n this.changes = new EventEmitter();\n this.lastSelectionStartIndex = 0;\n this.currentSelection = [];\n this.selectAllChecked = false;\n this.cellClickSubscription = domEvents.cellClick.subscribe((args) => {\n if (this.options.enabled && !this.options.checkboxOnly && args.type !== 'contextmenu') {\n this.handleClick({ index: args.rowIndex, data: args.dataItem }, args.originalEvent);\n }\n });\n this.mousedownSubscription = domEvents.cellMousedown.subscribe((args) => {\n if (this.options.enabled && (!this.options.mode || this.options.mode === \"multiple\") &&\n !this.options.checkboxOnly && args.originalEvent.shiftKey) {\n args.originalEvent.preventDefault();\n }\n });\n if (localDataChangesService) {\n this.dataChangedSubscription = localDataChangesService.changes.subscribe((args) => {\n if (isPresent(args.action) && args.action === 'remove') {\n this.deselect(args.item);\n }\n });\n }\n }\n init(settings) {\n this.settings = settings;\n this.currentSelection = [];\n if (settings.selectable && settings.selectable.enabled !== false) {\n const iterator$$1 = this.getIterator();\n this._selectAllState = true;\n while (true) {\n const item = iterator$$1.next();\n if (item.done) {\n break;\n }\n if (item.value && item.value.type === \"data\") {\n const rowArgs = {\n dataItem: item.value.data,\n index: item.value.index\n };\n if (settings.rowSelected(rowArgs)) {\n this.currentSelection[item.value.index] = rowArgs;\n }\n else {\n this._selectAllState = undefined;\n }\n }\n }\n if (this.currentSelection.length === 0) {\n this._selectAllState = false;\n }\n }\n }\n isSelected(index) {\n return this.options.enabled && isPresent(this.currentSelection[index]);\n }\n handleClick(item, event) {\n let ev;\n const ctrlKey = event.ctrlKey || event.metaKey;\n if (this.options.mode === \"single\" && ctrlKey && this.isSelected(item.index)) {\n ev = this.toggle(item);\n }\n else if (this.options.mode === \"multiple\") {\n if (ctrlKey && !event.shiftKey) {\n ev = this.toggle(item);\n }\n else if (event.shiftKey) {\n ev = this.addAllTo(item, ctrlKey);\n }\n }\n if (!isPresent(ev)) {\n ev = this.select(item);\n this.currentSelection[item.index] = {\n dataItem: item.data,\n index: item.index\n };\n }\n if (!ev.selectedRows.length && !ev.deselectedRows.length) {\n return;\n }\n ev.ctrlKey = event.ctrlKey || event.metaKey;\n ev.shiftKey = event.shiftKey;\n this.changes.emit(ev);\n }\n toggle(item) {\n let selectedRows = [];\n let deselectedRows = [];\n this.lastSelectionStartIndex = item.index;\n if (this.isSelected(item.index)) {\n deselectedRows.push({ dataItem: item.data, index: item.index });\n }\n else {\n selectedRows.push({ dataItem: item.data, index: item.index });\n }\n return {\n deselectedRows: deselectedRows,\n selectedRows: selectedRows\n };\n }\n toggleByIndex(index) {\n const iterator$$1 = this.getIterator();\n if (this.selectAllChecked && this.isSelected(index)) {\n this.selectAllChecked = false;\n }\n while (true) {\n const item = iterator$$1.next();\n if (item.done) {\n break;\n }\n if (item.value && item.value.type === \"data\" && item.value.index === index) {\n const itemToToggle = {\n data: item.value.data,\n index: item.value.index\n };\n if (this.isSelected(index) || this.options.mode === \"multiple\") {\n return this.toggle(itemToToggle);\n }\n else {\n return this.select(itemToToggle);\n }\n }\n }\n }\n select(item) {\n let deselectedRows = [];\n let selectedRows = [];\n this.lastSelectionStartIndex = item.index;\n if (!this.isSelected(item.index)) {\n selectedRows.push({ dataItem: item.data, index: item.index });\n }\n this.currentSelection.forEach((row) => {\n if (row.index !== item.index) {\n deselectedRows.push(row);\n }\n });\n return {\n deselectedRows: deselectedRows,\n selectedRows: selectedRows\n };\n }\n //Used to manually deselect removed items\n deselect(removedItem) {\n const iterator$$1 = this.getIterator();\n while (true) {\n const item = iterator$$1.next();\n if (item.done) {\n break;\n }\n if (item.value && item.value.type === \"data\" && item.value.data === removedItem) {\n const rowArgs = {\n dataItem: item.value.data,\n index: item.value.index\n };\n if (this.isSelected(rowArgs.index)) {\n let ev = {\n ctrlKey: false,\n deselectedRows: [rowArgs],\n selectedRows: []\n };\n this.changes.emit(ev);\n }\n }\n }\n }\n addAllTo(item, ctrlKey) {\n let selectedRows = [];\n let deselectedRows = [];\n const start = Math.min(this.lastSelectionStartIndex, item.index);\n const end = Math.max(this.lastSelectionStartIndex, item.index);\n const iterator$$1 = this.getIterator();\n while (true) {\n const next = iterator$$1.next();\n if (next.done) {\n break;\n }\n if (next.value && next.value.type === \"data\") {\n const idx = next.value.index;\n if ((idx < start || idx > end) && this.isSelected(idx) && !ctrlKey) {\n deselectedRows.push({ dataItem: next.value.data, index: idx });\n }\n if ((idx >= start && idx <= end) && !this.isSelected(idx)) {\n selectedRows.push({ dataItem: next.value.data, index: idx });\n }\n }\n }\n return {\n deselectedRows: deselectedRows,\n selectedRows: selectedRows\n };\n }\n updateAll(selectAllChecked) {\n this.selectAllChecked = selectAllChecked;\n let selectedRows = [];\n let deselectedRows = [];\n const iterator$$1 = this.getIterator();\n while (true) {\n const next = iterator$$1.next();\n if (next.done) {\n break;\n }\n if (next.value && next.value.type === \"data\") {\n const idx = next.value.index;\n if (this.isSelected(idx) && !selectAllChecked) {\n deselectedRows.push({ dataItem: next.value.data, index: idx });\n }\n if (!this.isSelected(idx) && selectAllChecked) {\n selectedRows.push({ dataItem: next.value.data, index: idx });\n }\n }\n }\n if (!selectedRows.length && !deselectedRows.length) {\n return;\n }\n let ev = {\n ctrlKey: true,\n deselectedRows: deselectedRows,\n selectedRows: selectedRows,\n shiftKey: true\n };\n this.changes.emit(ev);\n }\n get selectAllState() {\n return this._selectAllState;\n }\n get selected() {\n return this.currentSelection.map((item) => {\n return item.index;\n }).filter((n) => typeof n === \"number\");\n }\n get options() {\n const defaultOptions = {\n checkboxOnly: false,\n enabled: true,\n mode: \"multiple\"\n };\n if (!isPresent(this.settings)) {\n return defaultOptions;\n }\n if (typeof this.settings.selectable === 'boolean') {\n return {\n checkboxOnly: false,\n enabled: this.settings.selectable,\n mode: \"multiple\"\n };\n }\n else {\n return Object.assign(defaultOptions, this.settings.selectable);\n }\n }\n ngOnDestroy() {\n if (this.cellClickSubscription) {\n this.cellClickSubscription.unsubscribe();\n this.cellClickSubscription = null;\n }\n if (this.mousedownSubscription) {\n this.mousedownSubscription.unsubscribe();\n this.mousedownSubscription = null;\n }\n if (this.dataChangedSubscription) {\n this.dataChangedSubscription.unsubscribe();\n this.dataChangedSubscription = null;\n }\n }\n getIterator() {\n const accessor = this.settings.view.accessor();\n if (!accessor) {\n return;\n }\n return accessor[iterator]();\n }\n}\nSelectionService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nSelectionService.ctorParameters = () => [\n { type: DomEventsService },\n { type: LocalDataChangesService }\n];\n\n/* tslint:disable:no-input-rename */\n/**\n * @hidden\n */\nclass Selection {\n constructor(grid, cd) {\n this.grid = grid;\n this.cd = cd;\n /**\n * Defines the collection that will store the selected item keys.\n */\n this.selectedKeys = [];\n /**\n * Fires when the `selectedKeys` collection has been updated.\n */\n this.selectedKeysChange = new EventEmitter();\n this.init();\n }\n init() {\n if (!isPresent(this.grid.rowSelected)) {\n this.grid.rowSelected = (row) => {\n return this.selectedKeys.indexOf(this.getItemKey(row)) >= 0;\n };\n }\n this.selectionChangeSubscription = this.grid\n .selectionChange\n .subscribe(this.onSelectionChange.bind(this));\n }\n /**\n * @hidden\n */\n destroy() {\n this.selectionChangeSubscription.unsubscribe();\n }\n /**\n * @hidden\n */\n reset() {\n this.selectedKeys.splice(0, this.selectedKeys.length);\n }\n getItemKey(row) {\n if (this.selectionKey) {\n if (typeof this.selectionKey === \"string\") {\n return row.dataItem[this.selectionKey];\n }\n if (typeof this.selectionKey === \"function\") {\n return this.selectionKey(row);\n }\n }\n return row.index;\n }\n onSelectionChange(selection) {\n selection.deselectedRows.forEach((item) => {\n const itemKey = this.getItemKey(item);\n const itemIndex = this.selectedKeys.indexOf(itemKey);\n if (itemIndex >= 0) {\n this.selectedKeys.splice(itemIndex, 1);\n }\n });\n if (this.grid.selectableSettings.mode === \"single\" && this.selectedKeys.length > 0) {\n this.reset();\n }\n selection.selectedRows.forEach((item) => {\n const itemKey = this.getItemKey(item);\n if (this.selectedKeys.indexOf(itemKey) < 0) {\n this.selectedKeys.push(itemKey);\n }\n });\n this.cd.markForCheck();\n this.selectedKeysChange.emit(this.selectedKeys);\n }\n}\nSelection.propDecorators = {\n selectedKeys: [{ type: Input }],\n selectionKey: [{ type: Input, args: [\"kendoGridSelectBy\",] }],\n selectedKeysChange: [{ type: Output }]\n};\n\n/**\n * @hidden\n */\nclass PreventableEvent {\n constructor() {\n this.prevented = false;\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses\n * the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * Returns `true` if the event was prevented\n * by any of its subscribers.\n *\n * @returns `true` if the default action was prevented.\n * Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * Arguments for the `cellClose` event.\n */\nclass CellCloseEvent extends PreventableEvent {\n constructor(options) {\n super();\n /**\n * @hidden\n */\n this.action = 'cellClose';\n Object.assign(this, options);\n }\n}\n\n/**\n * @hidden\n */\nconst isEqual = (index) => (item) => item.index === index;\n/**\n * @hidden\n */\nconst isNotEqual = (index) => (item) => item.index !== index;\n/**\n * @hidden\n */\nconst isNewRow = (index) => index === -1 || index === undefined;\n/**\n * @hidden\n */\nclass EditService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.changes = new EventEmitter();\n this.editedIndices = [];\n this.keepEditCell = false;\n this.closingCell = false;\n this.changedSource = new Subject();\n this.changed = this.changedSource.asObservable().pipe(switchMap(() => this.ngZone.onStable.asObservable().pipe(take(1))));\n }\n editRow(index, group = undefined) {\n this.editedIndices.push({ index, group });\n this.onChanged();\n }\n addRow(group) {\n this.newItemGroup = { group };\n this.onChanged();\n }\n editCell(rowIndex, column, group) {\n if (isNewRow(rowIndex) || column.editable === false || !(column.editTemplate || column.field)) {\n return;\n }\n this.preventCellClose();\n if (!this.closeCell()) {\n this.editRow(rowIndex, group);\n this.column = column;\n this.onChanged();\n }\n }\n isEditing() {\n return this.editedIndices.length > 0;\n }\n isEditingCell() {\n return this.isEditing() && this.column !== undefined;\n }\n get hasNewItem() {\n return isPresent(this.newItemGroup);\n }\n get newDataItem() {\n if (this.hasNewItem) {\n return this.newItemGroup.group.value;\n }\n return {};\n }\n close(index) {\n if (isNewRow(index)) {\n this.newItemGroup = undefined;\n return;\n }\n this.editedIndices = this.editedIndices.filter(isNotEqual(index));\n delete this.column;\n this.onChanged();\n }\n closeCell(originalEvent) {\n if (this.column && !this.closingCell) {\n return this.ngZone.run(() => {\n const { index, group } = this.editedIndices[0];\n const args = new CellCloseEvent({\n column: this.column,\n formGroup: group,\n originalEvent: originalEvent,\n rowIndex: index\n });\n this.closingCell = true;\n this.changes.emit(args);\n this.closingCell = false;\n if (!args.isDefaultPrevented()) {\n this.cancelCell();\n }\n return args.isDefaultPrevented();\n });\n }\n }\n cancelCell() {\n if (this.column) {\n this.editedIndices = [];\n delete this.column;\n this.onChanged();\n }\n }\n shouldCloseCell() {\n return this.column && !this.keepEditCell;\n }\n preventCellClose() {\n this.ngZone.runOutsideAngular(() => {\n window.clearTimeout(this.keepCellTimeout);\n this.keepEditCell = true;\n this.keepCellTimeout = window.setTimeout(() => {\n this.keepEditCell = false;\n }, 0); // tslint:disable-line:align\n });\n }\n context(index) {\n if (isNewRow(index)) {\n return this.newItemGroup;\n }\n return this.findByIndex(index);\n }\n columnContext(index, column) {\n if (isNewRow(index)) {\n return this.newItemGroup;\n }\n if (!this.column || column === this.column) {\n return this.findByIndex(index);\n }\n }\n isEdited(index) {\n if (isNewRow(index) && isPresent(this.newItemGroup)) {\n return true;\n }\n return !this.column && isPresent(this.findByIndex(index));\n }\n hasEdited(index) {\n return isPresent(this.context(index));\n }\n isEditedColumn(index, column) {\n if (this.column && this.column === column) {\n return isPresent(this.findByIndex(index));\n }\n return false;\n }\n beginEdit(rowIndex) {\n this.changes.emit({ action: 'edit', rowIndex });\n }\n beginAdd() {\n this.changes.emit({ action: 'add' });\n }\n endEdit(rowIndex) {\n const { group: formGroup } = this.context(rowIndex);\n this.changes.emit({ action: 'cancel', rowIndex, formGroup, isNew: isNewRow(rowIndex) });\n }\n save(rowIndex) {\n const { group: formGroup } = this.context(rowIndex);\n this.changes.emit({ action: 'save', rowIndex, formGroup, isNew: isNewRow(rowIndex) });\n }\n remove(rowIndex) {\n this.changes.emit({ action: 'remove', rowIndex });\n }\n findByIndex(index) {\n return this.editedIndices.find(isEqual(index));\n }\n onChanged() {\n this.ngZone.runOutsideAngular(() => {\n this.changedSource.next();\n });\n }\n}\nEditService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nEditService.ctorParameters = () => [\n { type: NgZone }\n];\n\n/**\n * Arguments for the `detailCollapse` event.\n */\nclass DetailCollapseEvent extends PreventableEvent {\n constructor(args) {\n super();\n Object.assign(this, args);\n }\n}\n\n/**\n * Arguments for the `detailExpand` event.\n */\nclass DetailExpandEvent extends PreventableEvent {\n constructor(args) {\n super();\n Object.assign(this, args);\n }\n}\n\n/**\n * @hidden\n */\nclass DetailsService {\n constructor() {\n this.changes = new Subject();\n this.rowState = new Set();\n }\n ngOnDestroy() {\n this.rowState.clear();\n }\n isExpanded(index, dataItem) {\n if (this.userCallback) {\n return this.userCallback({ index, dataItem });\n }\n return this.rowState.has(index);\n }\n toggleRow(index, dataItem) {\n if (this.isExpanded(index, dataItem)) {\n this.collapseRow(index, dataItem);\n }\n else {\n this.expandRow(index, dataItem);\n }\n }\n expandRow(index, dataItem) {\n const prevented = this.emitEvent({ dataItem, index, expand: true });\n if (!prevented && !this.userCallback) {\n this.rowState.add(index);\n }\n }\n collapseRow(index, dataItem) {\n const prevented = this.emitEvent({ dataItem, index, expand: false });\n if (!prevented && !this.userCallback) {\n this.rowState.delete(index);\n }\n }\n emitEvent(args) {\n const eventArg = new (args.expand ? DetailExpandEvent : DetailCollapseEvent)(args);\n this.changes.next(eventArg);\n return eventArg.isDefaultPrevented();\n }\n}\nDetailsService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nclass ExpandStateService {\n constructor(isInitiallyCollapsed) {\n this.isInitiallyCollapsed = isInitiallyCollapsed;\n this.changes = new Subject();\n this.rowState = new Set();\n }\n toggleRow(index, dataItem) {\n const found = this.rowState.has(index);\n const expand = !this.isInitiallyCollapsed ? found : !found;\n const prevented = this.emitEvent({ dataItem, expand, index });\n if (prevented) {\n return;\n }\n if (found) {\n this.rowState.delete(index);\n }\n else {\n this.rowState.add(index);\n }\n }\n isExpanded(index) {\n const found = this.rowState.has(index);\n return this.isInitiallyCollapsed ? found : !found;\n }\n reset() {\n this.rowState.clear();\n }\n emitEvent(args) {\n this.changes.next(args);\n return false;\n }\n}\n\nconst removeLast = groupIndex => groupIndex.lastIndexOf(\"_\") > -1\n ? groupIndex.slice(0, groupIndex.lastIndexOf(\"_\"))\n : \"\";\nconst isChildIndex = (targetIndex, parentIndex) => parentIndex !== targetIndex && targetIndex.startsWith(parentIndex);\n/**\n * @hidden\n */\nclass GroupsService extends ExpandStateService {\n constructor(isCollapsed = false) {\n super(isCollapsed);\n }\n isInExpandedGroup(groupIndex, skipSelf = true) {\n if (skipSelf) {\n groupIndex = removeLast(groupIndex);\n }\n let expanded = true;\n while (groupIndex && expanded) {\n expanded = this.isExpanded(groupIndex);\n groupIndex = removeLast(groupIndex);\n }\n return expanded;\n }\n expandChildren(parentIndex) {\n this.rowState.forEach(index => isChildIndex(index, parentIndex) && this.rowState.delete(index));\n }\n}\nGroupsService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nGroupsService.ctorParameters = () => [\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [Skip,] }] }\n];\n\nconst reset = (...lists) => {\n let diff = false;\n for (let idx = 0; idx < lists.length; idx++) {\n const [list, columns] = lists[idx];\n diff = diff || list.length !== columns.length;\n list.reset(columns);\n }\n return diff;\n};\n/**\n * @hidden\n */\nclass ColumnsContainer {\n constructor(columns) {\n this.columns = columns;\n this.allColumns = new QueryList();\n this.leafColumns = new QueryList();\n this.lockedColumns = new QueryList();\n this.nonLockedColumns = new QueryList();\n this.lockedLeafColumns = new QueryList();\n this.nonLockedLeafColumns = new QueryList();\n this.totalLevels = 0;\n this.changes = new EventEmitter();\n this.leafColumnsToRender = [];\n this.lockedColumnsToRender = [];\n this.nonLockedColumnsToRender = [];\n this.hasGroupHeaderColumn = false;\n this.hasGroupFooter = false;\n this.hasFooter = false;\n this.unlockedWidth = 0;\n }\n refresh() {\n const currentLevels = this.totalLevels;\n const leafColumns$$1 = new Array();\n const lockedLeafColumns = new Array();\n const nonLockedLeafColumns = new Array();\n const lockedColumns = new Array();\n const nonLockedColumns = new Array();\n const allColumns = new Array();\n const leafColumnsToRender = new Array();\n const lockedColumnsToRender = new Array();\n const nonLockedColumnsToRender = new Array();\n let hasGroupHeaderColumn = false;\n let hasGroupFooter = false;\n let hasFooter = false;\n let unlockedWidth = 0;\n let leafIndex = 0;\n this.totalLevels = 0;\n this.columns().forEach(column => {\n const containerLeafColumns = column.isLocked === true ? lockedLeafColumns : nonLockedLeafColumns;\n const containerColumns = column.isLocked === true ? lockedColumns : nonLockedColumns;\n const toRenderContainer = column.isLocked === true ? lockedColumnsToRender : nonLockedColumnsToRender;\n if (!isColumnGroupComponent(column)) {\n containerLeafColumns.push(column);\n leafColumns$$1.push(column);\n leafColumnsToRender.push.apply(leafColumnsToRender, columnsToRender([column]));\n toRenderContainer.push.apply(toRenderContainer, columnsToRender([column]));\n hasGroupHeaderColumn = hasGroupHeaderColumn || someLeafColumn(leaf => Boolean(leaf.groupHeaderColumnTemplateRef), column);\n hasGroupFooter = hasGroupFooter || someLeafColumn(leaf => Boolean(leaf.groupFooterTemplateRef), column);\n hasFooter = hasFooter || someLeafColumn(leaf => Boolean(leaf.footerTemplateRef), column);\n if (!column.isLocked) {\n unlockedWidth += column.width || 0;\n }\n if (column.isSpanColumn) {\n column.childColumns.forEach(c => {\n c.leafIndex = leafIndex++;\n });\n }\n else {\n column.leafIndex = leafIndex++;\n }\n }\n containerColumns.push(column);\n allColumns.push(column);\n this.totalLevels = column.level > this.totalLevels ? column.level : this.totalLevels;\n });\n this.hasGroupHeaderColumn = hasGroupHeaderColumn;\n this.hasGroupFooter = hasGroupFooter;\n this.hasFooter = hasFooter;\n this.leafColumnsToRender = leafColumnsToRender;\n this.lockedColumnsToRender = lockedColumnsToRender;\n this.nonLockedColumnsToRender = nonLockedColumnsToRender;\n this.unlockedWidth = unlockedWidth;\n const changes = reset([this.leafColumns, leafColumns$$1], [this.lockedLeafColumns, lockedLeafColumns], [this.nonLockedLeafColumns, nonLockedLeafColumns], [this.lockedColumns, lockedColumns], [this.allColumns, allColumns], [this.nonLockedColumns, nonLockedColumns]) || currentLevels !== this.totalLevels;\n if (changes) {\n this.changes.emit();\n }\n return changes;\n }\n}\n\nconst forEachColumn = (list, callback) => {\n list.forEach((column) => {\n callback(column);\n if (column.isColumnGroup && column.hasChildren) {\n forEachColumn(column.childrenArray, callback);\n }\n });\n};\nconst forEachLevel = (list, callback) => {\n sortColumns(list)\n .forEach((column) => {\n callback(column);\n if (column.isColumnGroup && column.hasChildren) {\n forEachLevel(column.childrenArray, callback);\n }\n });\n};\nconst filterHierarchy = (list, predicate) => {\n const result = [];\n sortColumns(list)\n .forEach((column) => {\n if (predicate(column)) {\n if (column.isColumnGroup) {\n const children$$1 = filterHierarchy(column.childrenArray, predicate);\n if (children$$1.length) {\n result.push(column, ...children$$1);\n }\n }\n else if (!column.isSpanColumn || filterHierarchy(column.childrenArray, predicate).length) {\n result.push(column);\n }\n }\n });\n return result;\n};\n/**\n * @hidden\n */\nclass ColumnList {\n constructor(columns) {\n this.columns = columns;\n }\n static empty() {\n return new ColumnList(new QueryList());\n }\n forEach(callback) {\n forEachColumn(this.columns, callback);\n }\n filter(callback) {\n const result = [];\n forEachColumn(this.columns, (column) => {\n if (callback(column)) {\n result.push(column);\n }\n });\n return result;\n }\n filterHierarchy(predicate) {\n return filterHierarchy(this.columns.toArray(), predicate);\n }\n filterSort(callback) {\n const result = [];\n forEachLevel(this.columns.toArray(), (column) => {\n if (callback(column)) {\n result.push(column);\n }\n });\n return result;\n }\n toArray() {\n const result = [];\n forEachColumn(this.columns, (column) => {\n result.push(column);\n });\n return result;\n }\n rootColumns() {\n return this.columns.toArray();\n }\n}\n\n/**\n * @hidden\n */\nclass GroupInfoService {\n constructor() {\n this._columnList = ColumnList.empty;\n }\n get columns() {\n return expandColumns(this._columnList().toArray()).filter(isColumnComponent);\n }\n registerColumnsContainer(columns) {\n this._columnList = columns;\n }\n formatForGroup(item) {\n const column = this.columnForGroup(item);\n return column ? column.format : \"\";\n }\n isGroupable(groupField) {\n const [column] = this.columns.filter(x => x.field === groupField);\n return column ? column.groupable : true;\n }\n groupTitle(item) {\n const column = this.columnForGroup(item);\n return column ? (column.title || column.field) : this.groupField(item);\n }\n groupHeaderTemplate(item) {\n const column = this.columnForGroup(item);\n return column ? column.groupHeaderTemplateRef || column.groupHeaderColumnTemplateRef : undefined;\n }\n groupField(group) {\n return group.data ? group.data.field : group.field;\n }\n columnForGroup(group) {\n const field = this.groupField(group);\n const [column] = this.columns.filter(x => x.field === field);\n return column;\n }\n}\n\n/**\n * @hidden\n */\nclass ChangeNotificationService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.changes = new EventEmitter();\n }\n notify() {\n if (!this.subscription || this.subscription.closed) {\n this.subscription = this.ngZone.onStable\n .asObservable().pipe(take(1))\n .subscribe(() => this.changes.emit());\n }\n }\n}\nChangeNotificationService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nChangeNotificationService.ctorParameters = () => [\n { type: NgZone }\n];\n\n/**\n * Represents the no-records template of the Grid. Provides an option to customize the\n * appearance of the item that is displayed when no data is present. To define the no-records template,\n * nest an `` tag with the `kendoGridNoRecordsTemplate` directive inside ``.\n *\n * > When the locked columns of the Grid are in use, the template is displayed in the non-locked part of the content.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * There are not products. Click here to refresh.\n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public data = [];\n * public refresh() {\n * this.data = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": false,\n * \"Category\": {\n * \"CategoryID\": 1,\n * \"CategoryName\": \"Beverages\",\n * \"Description\": \"Soft drinks, coffees, teas, beers, and ales\"\n * }\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false,\n * \"Category\": {\n * \"CategoryID\": 1,\n * \"CategoryName\": \"Beverages\",\n * \"Description\": \"Soft drinks, coffees, teas, beers, and ales\"\n * }\n * }, {\n * \"ProductID\": 3,\n * \"ProductName\": \"Aniseed Syrup\",\n * \"UnitPrice\": 10.0000,\n * \"Discontinued\": false,\n * \"Category\": {\n * \"CategoryID\": 2,\n * \"CategoryName\": \"Condiments\",\n * \"Description\": \"Sweet and savory sauces, relishes, spreads, and seasonings\"\n * }\n * }];\n *\n * }\n * }\n *\n * ```\n */\nclass NoRecordsTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNoRecordsTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridNoRecordsTemplate]'\n },] },\n];\n/** @nocollapse */\nNoRecordsTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\nconst set = value => pair => pair.forEach(x => x.style.height = value);\nconst clearHeight = pairs => pairs\n .filter(([left, right]) => left.style.height || right.style.height)\n .forEach(set(\"\"));\nconst zip$1 = (arr1, arr2) => {\n const result = [];\n for (let idx = 0, len = arr1.length; idx < len; idx++) {\n if (!arr2[idx]) {\n break;\n }\n result.push([arr1[idx], arr2[idx]]);\n }\n return result;\n};\nconst setHeight = heights => (row, idx) => set(`${heights[idx] + 1}px`)(row);\nconst getHeights = rows => rows.map(([left, right]) => {\n const height = left.offsetHeight;\n const offsetHeight2 = right.offsetHeight;\n if (height < offsetHeight2) {\n return offsetHeight2;\n }\n return height;\n});\n/**\n * @hidden\n */\nconst syncRowsHeight = (table1, table2) => {\n const activeElement = document.activeElement;\n const rows = zip$1(table1.rows, table2.rows);\n clearHeight(rows);\n const heights = getHeights(rows);\n [table1, table2].forEach(x => x.style.display = 'none');\n rows.forEach(setHeight(heights));\n [table1, table2].forEach(x => x.style.display = '');\n if (document.activeElement !== activeElement &&\n (table1.contains(activeElement) || table2.contains(activeElement))) {\n activeElement.focus();\n }\n};\n\n/**\n * @hidden\n */\nconst CELL_CONTEXT = new InjectionToken('grid-cell-context');\n/**\n * @hidden\n */\nconst EMPTY_CELL_CONTEXT = {};\n\n/**\n * Represents a service to set the filter descriptor\n * ([see example]({% slug reusablecustomfilters_grid %})).\n */\nclass FilterService {\n constructor() {\n /**\n * Fires when the filter descriptors is set.\n */\n this.changes = new Subject();\n }\n /**\n * Sets the filter descriptor.\n *\n * @param {CompositeFilterDescriptor} value - The filter descriptor that will be set.\n */\n filter(value) {\n this.changes.next(value);\n }\n}\n\n/**\n * Represents the pager template which helps to customize the pager appearance in the Grid. To define a pager\n * template, nest an `` tag with the `kendoPagerTemplate` directive inside ``.\n *\n * The template context provides the following fields:\n * * `currentPage`—The index of the displayed page.\n * * `pageSize`—The value of the current `pageSize`.\n * * `skip`—The current skip value.\n * * `total`—The total number of records.\n * * `totalPages`—The total number of available pages.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n *\n * \n * \n * \n * \n * \n * Current page: {{currentPage}}\n * \n *\n * \n * `\n * })\n *\n * class AppComponent {\n * public gridData = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": false\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": true\n * }\n * ];\n * }\n *\n * ```\n */\nclass PagerTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nPagerTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoPagerTemplate]'\n },] },\n];\n/** @nocollapse */\nPagerTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * @hidden\n */\nclass PagerContextService {\n constructor() {\n this.changes = new Subject();\n this.pageChange = new Subject();\n }\n get currentPage() {\n return this.skip / this.pageSize;\n }\n notifyChanges(changes) {\n this.total = changes.total;\n this.pageSize = changes.pageSize;\n this.skip = changes.skip;\n this.changes.next(changes);\n }\n changePage(page) {\n this.pageChange.next({ skip: page * this.pageSize, take: this.pageSize });\n }\n changePageSize(value) {\n this.pageChange.next({ skip: 0, take: value });\n }\n nextPage() {\n const nextPage = this.currentPage + 1;\n if (nextPage * this.pageSize <= this.total) {\n this.changePage(nextPage);\n }\n }\n prevPage() {\n const prevPage = this.currentPage - 1;\n if (prevPage * this.pageSize >= 0) {\n this.changePage(prevPage);\n }\n }\n}\n\n/**\n * @hidden\n */\nclass PDFService {\n constructor() {\n this.savePDF = new EventEmitter();\n this.drawPDF = new EventEmitter();\n this.exportClick = new EventEmitter();\n this.dataChanged = new EventEmitter();\n }\n save(component) {\n this.emitEvent(this.savePDF, component);\n }\n draw(component, promise) {\n this.emitEvent(this.drawPDF, { component, promise });\n }\n emitEvent(emitter, args) {\n if (emitter.observers.length === 0) {\n if (isDevMode()) {\n throw new Error('Creating PDF requires including the PDFModule and adding the component.');\n }\n }\n else {\n emitter.emit(args);\n }\n }\n}\nPDFService.decorators = [\n { type: Injectable },\n];\n\n/**\n * Arguments for the `pdfExport` event.\n */\nclass PDFExportEvent extends PreventableEvent {\n}\n\n/**\n * @hidden\n */\nclass SuspendService {\n constructor() {\n this.scroll = false;\n }\n}\nSuspendService.decorators = [\n { type: Injectable },\n];\n\n/* tslint:disable: object-literal-sort-keys */\nconst bootstrapToMedia = (media) => (({\n \"xs\": \"(max-width: 576px)\",\n \"sm\": \"(min-width: 576px)\",\n \"md\": \"(min-width: 768px)\",\n \"lg\": \"(min-width: 992px)\",\n \"xl\": \"(min-width: 1200px)\"\n})[media] || media);\n/* tslint:enable: object-literal-sort-keys */\nconst browserMatchMedia = (media) => window.matchMedia(media).matches;\n/**\n * @hidden\n */\nclass ResponsiveService {\n constructor() {\n /**\n * @hidden\n */\n this.matchMedia = browserMatchMedia;\n }\n /**\n * @hidden\n */\n matchesMedia(media) {\n return !media || this.matchMedia(bootstrapToMedia(media));\n }\n}\nResponsiveService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nclass ExcelService {\n constructor() {\n this.saveToExcel = new EventEmitter();\n this.exportClick = new EventEmitter();\n }\n save(component) {\n if (this.saveToExcel.observers.length === 0) {\n if (isDevMode()) {\n throw new Error('Saving excel requires including the ExcelModule and adding the component.');\n }\n }\n else {\n this.saveToExcel.emit(component);\n }\n }\n}\nExcelService.decorators = [\n { type: Injectable },\n];\n\n/**\n * Represents the toolbar template of the Grid.\n *\n * The template context has the following field:\n * - `position`—The position at which the toolbar template is rendered. The possible values are \"top\" and \"bottom\".\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n *
\n * \n *
\n * \n *
\n * \n *
\n *
\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public position: 'top' | 'bottom' | 'both' = 'top';\n *\n * public gridData = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": false\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": true\n * }\n * ];\n *\n * public onClick(): void {\n * console.log(\"button was clicked\");\n * }\n *\n * public positionChange({ target }): void {\n * this.position = target.value;\n * }\n * }\n *\n * ```\n */\nclass ToolbarTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this._position = \"top\";\n }\n /**\n * The position of the toolbar ([see example]({% slug toolbartemplate_grid %})).\n *\n * The possible values are:\n * - `top`—Positions the toolbar above the group panel or header.\n * - `bottom`—Positions the toolbar below the pager.\n * - `both`—Displays two toolbar instances. Positions the first one above\n * the group panel or header and the second one below the pager.\n */\n set position(position) {\n this._position = position;\n }\n get position() {\n return this._position;\n }\n}\nToolbarTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridToolbarTemplate]'\n },] },\n];\n/** @nocollapse */\nToolbarTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\nToolbarTemplateDirective.propDecorators = {\n position: [{ type: Input, args: [\"position\",] }]\n};\n\n/**\n * @hidden\n */\nclass ScrollSyncService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.changes = new Subject();\n this.elements = [];\n this.subscriptions = new Subscription();\n this.headerSubscription = new Subscription();\n this.bodySubscription = new Subscription();\n this.subscriptions.add(this.changes.subscribe(args => this.scrollLeft(args)));\n }\n registerEmitter(el, sourceType) {\n this.unregister(sourceType);\n this.elements.push({ element: el, sourceType });\n if (sourceType === \"body\" || sourceType === \"header\") {\n this.ngZone.runOutsideAngular(() => {\n const obs = fromEvent(el, \"scroll\").pipe(map(({ target: { scrollLeft } }) => ({\n scrollLeft,\n sourceType\n })));\n const subscription = obs.pipe(distinctUntilChanged((x, y) => (x.scrollLeft === y.scrollLeft)), filter(x => !this.source || this.source === x.sourceType), tap(x => this.source = x.sourceType))\n .subscribe((x) => this.changes.next(x));\n subscription.add(obs.pipe(filter(x => this.source && this.source !== x.sourceType))\n .subscribe(() => this.source = undefined));\n if (sourceType === \"body\") {\n this.bodySubscription.add(subscription);\n }\n else {\n this.headerSubscription.add(subscription);\n }\n });\n }\n }\n /**\n * destroy\n */\n destroy() {\n this.subscriptions.unsubscribe();\n this.headerSubscription.unsubscribe();\n this.bodySubscription.unsubscribe();\n }\n scrollLeft({ scrollLeft, sourceType }) {\n this.ngZone.runOutsideAngular(() => {\n this.elements\n .filter(x => sourceType !== x.sourceType)\n .forEach(({ element }) => element.scrollLeft = scrollLeft);\n });\n }\n unregister(sourceType) {\n const index = this.elements.findIndex(x => x.sourceType === sourceType);\n if (index > -1) {\n if (sourceType === \"header\") {\n this.headerSubscription.unsubscribe();\n this.headerSubscription = new Subscription();\n }\n else if (sourceType === \"body\") {\n this.bodySubscription.unsubscribe();\n this.bodySubscription = new Subscription();\n }\n this.elements.splice(index, 1);\n }\n }\n}\nScrollSyncService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nScrollSyncService.ctorParameters = () => [\n { type: NgZone }\n];\n\n/**\n * @hidden\n */\nclass ResizeService {\n constructor() {\n this.resizeSubscription = new Subscription(() => { });\n this.dispatcher = new Subject();\n // tslint:disable-next-line:member-ordering\n this.changes = this.dispatcher.asObservable().pipe(throttleTime(100));\n }\n connect(resizes) {\n this.resizeSubscription.add(resizes.subscribe(this.dispatcher));\n }\n destroy() {\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n}\nResizeService.decorators = [\n { type: Injectable },\n];\n\nconst focusableRegex = /^(?:a|input|select|option|textarea|button|object)$/i;\nconst NODE_NAME_PREDICATES = {};\nconst toClassList = (classNames) => String(classNames).trim().split(' ');\n/**\n * @hidden\n */\nconst hasClasses = (element, classNames) => {\n const namesList = toClassList(classNames);\n return Boolean(toClassList(element.className).find((className) => namesList.indexOf(className) >= 0));\n};\n/**\n * @hidden\n */\nconst matchesClasses = (classNames) => (element) => hasClasses(element, classNames);\n/**\n * @hidden\n */\nconst matchesNodeName = (nodeName) => {\n if (!NODE_NAME_PREDICATES[nodeName]) {\n NODE_NAME_PREDICATES[nodeName] = (element) => String(element.nodeName).toLowerCase() === nodeName.toLowerCase();\n }\n return NODE_NAME_PREDICATES[nodeName];\n};\n/**\n * @hidden\n */\nconst closest = (node, predicate) => {\n while (node && !predicate(node)) {\n node = node.parentNode;\n }\n return node;\n};\n/**\n * @hidden\n */\nconst closestInScope = (node, predicate, scope) => {\n while (node && node !== scope && !predicate(node)) {\n node = node.parentNode;\n }\n if (node !== scope) {\n return node;\n }\n};\n/**\n * @hidden\n */\nconst contains = (parent, node, matchSelf = false) => {\n const outside = !closest(node, (child) => child === parent);\n if (outside) {\n return false;\n }\n const el = closest(node, (child) => child === node);\n return el && (matchSelf || el !== parent);\n};\n/**\n * @hidden\n */\nconst isVisible = (element) => {\n const rect = element.getBoundingClientRect();\n const hasSize = rect.width > 0 && rect.height > 0;\n const hasPosition = rect.x !== 0 && rect.y !== 0;\n // Elements can have zero size due to styling, but they will still count as visible.\n // For example, the selection checkbox has no size, but is made visible through styling.\n return (hasSize || hasPosition) && window.getComputedStyle(element).visibility !== 'hidden';\n};\n/**\n * @hidden\n */\nconst isFocusable = (element) => {\n if (!element.tagName) {\n return false;\n }\n const tagName = element.tagName.toLowerCase();\n const hasTabIndex = Boolean(element.getAttribute('tabIndex'));\n const focusable = !element.disabled && focusableRegex.test(tagName);\n return focusable || hasTabIndex;\n};\n/**\n * @hidden\n */\nconst isFocusableWithTabKey = (element, checkVisibility = true) => {\n if (!isFocusable(element)) {\n return false;\n }\n const tabIndex = element.getAttribute('tabIndex');\n const visible = !checkVisibility || isVisible(element);\n return visible && tabIndex !== '-1';\n};\n/**\n * @hidden\n */\nconst findElement = (node, predicate, matchSelf = true) => {\n if (!node) {\n return;\n }\n if (matchSelf && predicate(node)) {\n return node;\n }\n node = node.firstChild;\n while (node) {\n if (node.nodeType === 1) {\n const element = findElement(node, predicate);\n if (element) {\n return element;\n }\n }\n node = node.nextSibling;\n }\n};\n/**\n * @hidden\n */\nconst findFocusable = (element, checkVisibility = true) => {\n return findElement(element, (node) => isFocusableWithTabKey(node, checkVisibility));\n};\n/**\n * @hidden\n */\nconst findFocusableChild = (element, checkVisibility = true) => {\n return findElement(element, (node) => isFocusableWithTabKey(node, checkVisibility), false);\n};\n/**\n * @hidden\n */\nfunction rtlScrollPosition(position, element, initial) {\n let result = position;\n if (initial < 0) {\n result = -position;\n }\n else if (initial > 0) {\n result = element.scrollWidth - element.offsetWidth - position;\n }\n return result;\n}\n\n/**\n * @hidden\n */\nconst isLocked = column => column.parent ? isLocked(column.parent) : !!column.locked;\n/**\n * @hidden\n */\nconst resizeArgs = (column, extra) => Object.assign({\n columns: leafColumns([column]),\n locked: isLocked(column)\n}, extra); // tslint:disable-line:align\n/**\n * @hidden\n */\nclass ColumnResizingService {\n constructor() {\n this.changes = new EventEmitter();\n this.tables = [];\n this.batch = null;\n }\n start(column) {\n this.trackColumns(column);\n const columns = (this.column.isColumnGroup ? [column] : [])\n .concat(leafColumns([column]));\n this.changes.emit({\n columns: columns,\n locked: isLocked(this.column),\n type: 'start'\n });\n }\n resizeColumns(deltaPercent) {\n const action = resizeArgs(this.column, {\n deltaPercent,\n type: 'resizeColumn'\n });\n this.changes.emit(action);\n }\n resizeTable(column, delta) {\n const action = resizeArgs(column, {\n delta,\n type: 'resizeTable'\n });\n this.changes.emit(action);\n }\n resizedColumn(state$$1) {\n this.resizedColumns.push(state$$1);\n }\n end() {\n this.changes.emit({\n columns: [],\n resizedColumns: this.resizedColumns,\n type: 'end'\n });\n }\n registerTable(tableMetadata) {\n this.tables.push(tableMetadata);\n const unregisterTable = () => {\n this.tables.splice(this.tables.indexOf(tableMetadata), 1);\n };\n return unregisterTable;\n }\n measureColumns(info) {\n if (this.batch !== null) {\n this.batch.push(...info);\n }\n else {\n this.autoFitBatch(info, () => this.end());\n }\n }\n autoFit(...columns) {\n const nonLockedColumns = columns.filter(column => !column.isLocked);\n this.autoFitStart(nonLockedColumns);\n this.autoFitBatch(this.batch, () => {\n if (nonLockedColumns.length < columns.length) {\n const lockedColumns = columns.filter(column => column.isLocked);\n this.autoFitStart(lockedColumns);\n this.autoFitBatch(this.batch, () => this.end());\n }\n else {\n this.end();\n }\n });\n }\n trackColumns(column) {\n this.resizedColumns = [];\n this.column = column;\n }\n autoFitStart(columns) {\n this.batch = [];\n this.resizedColumns = [];\n if (columns.length === 0) {\n return;\n }\n const locked = columns[0].isLocked;\n this.changes.emit({\n type: 'start',\n columns,\n locked\n });\n this.changes.emit({\n type: 'triggerAutoFit',\n columns,\n locked\n });\n }\n autoFitBatch(info, onComplete) {\n const locked = info.length > 0 ? info[0].column.isLocked : false;\n const observables = this.tables\n .filter(table => table.locked === locked)\n .map(table => table.autoFit(info));\n zip(...observables)\n .pipe(take(1))\n .subscribe(widths => {\n this.changes.emit({\n columns: info.map(i => i.column),\n type: 'autoFitComplete',\n widths,\n locked\n });\n if (onComplete) {\n onComplete();\n }\n });\n this.batch = null;\n }\n}\nColumnResizingService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\n/**\n * @hidden\n */\nconst hasFilterMenu = (settings) => typeof settings === 'string' && settings.indexOf('menu') > -1;\n/**\n * @hidden\n */\nconst hasFilterRow = (settings) => settings === true || (typeof settings === 'string' && settings.indexOf('row') > -1);\n\nconst contains$1 = (node, predicate) => {\n while (node) {\n if (predicate(node)) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n};\n/**\n * Arguments for the `close` event of the filter and column-menu popup.\n */\nclass PopupCloseEvent extends PreventableEvent {\n constructor(e) {\n super();\n this.originalEvent = e;\n }\n}\nconst DEFAULT_POPUP_CLASS = 'k-grid-filter-popup';\n/**\n * The service that is used for the popups of the filter and column menus\n * ([see example]({% slug reusablecustomfilters_grid %}#toc-filter-menu-with-popup)).\n */\nclass SinglePopupService {\n constructor(popupService, renderer, ngZone, scrollSyncService, localization) {\n this.popupService = popupService;\n this.renderer = renderer;\n this.ngZone = ngZone;\n this.localization = localization;\n /**\n * Fires when the filter or column menus are about to close because the user clicked outside their popups.\n * Used to prevent the popup from closing.\n */\n this.onClose = new Subject();\n this.scrollSubscription = scrollSyncService.changes.subscribe(() => this.destroy());\n }\n /**\n * @hidden\n */\n open(anchor, template, popupRef, popupClass = DEFAULT_POPUP_CLASS) {\n const toggle = isPresent(popupRef) && this.popupRef === popupRef;\n this.destroy();\n if (!toggle) {\n const direction = this.localization.rtl ? 'right' : 'left';\n this.popupRef = this.popupService.open({\n anchorAlign: { vertical: 'bottom', horizontal: direction },\n popupAlign: { vertical: 'top', horizontal: direction },\n anchor: anchor,\n popupClass: popupClass,\n content: template,\n positionMode: \"absolute\"\n });\n this.renderer.setAttribute(this.popupRef.popupElement, 'dir', this.localization.rtl ? 'rtl' : 'ltr');\n this.attachClose(anchor);\n }\n return this.popupRef;\n }\n /**\n * @hidden\n */\n destroy() {\n if (this.popupRef) {\n this.detachClose();\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n ngOnDestroy() {\n this.destroy();\n this.scrollSubscription.unsubscribe();\n }\n detachClose() {\n if (this.removeClick) {\n this.removeClick();\n }\n }\n attachClose(skipElement) {\n this.detachClose();\n this.ngZone.runOutsideAngular(() => this.removeClick = this.renderer.listen(\"document\", \"click\", (e) => {\n if (!contains$1(e.target, x => this.popupRef.popupElement === x || x === skipElement)) {\n const args = new PopupCloseEvent(e);\n this.onClose.next(args);\n if (!args.isDefaultPrevented()) {\n this.destroy();\n }\n }\n }));\n }\n}\nSinglePopupService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nSinglePopupService.ctorParameters = () => [\n { type: PopupService },\n { type: Renderer2 },\n { type: NgZone },\n { type: ScrollSyncService },\n { type: LocalizationService }\n];\n\n/* tslint:disable: no-bitwise */\n/**\n * @hidden\n */\nconst append = (element) => {\n let appended = false;\n return () => {\n if (!appended) {\n document.body.appendChild(element);\n appended = true;\n }\n return element;\n };\n};\n/**\n * @hidden\n */\nconst getDocument = element => element.ownerDocument.documentElement;\n/**\n * @hidden\n */\nconst getWindow = element => element.ownerDocument.defaultView;\n/**\n * @hidden\n */\nconst offset = element => {\n const { clientTop, clientLeft } = getDocument(element);\n const { pageYOffset, pageXOffset } = getWindow(element);\n const { top, left } = element.getBoundingClientRect();\n return {\n top: top + pageYOffset - clientTop,\n left: left + pageXOffset - clientLeft\n };\n};\n/**\n * @hidden\n * If the target is before the draggable element, returns `true`.\n *\n * DOCUMENT_POSITION_FOLLOWING = 4\n */\nconst isTargetBefore = (draggable, target) => (target.compareDocumentPosition(draggable) & 4) !== 0;\n/**\n * @hidden\n * If the container and the element are the same\n * or if the container holds (contains) the element, returns `true`.\n *\n * DOCUMENT_POSITION_CONTAINED_BY = 16\n */\nconst contains$2 = (element, container) => element === container ||\n (container.compareDocumentPosition(element) & 16) !== 0;\n/**\n * @hidden\n */\nconst position = (target, before) => {\n const targetRect = offset(target);\n const { offsetWidth, offsetHeight } = target;\n const left = targetRect.left + (before ? 0 : offsetWidth);\n const top = targetRect.top;\n const height = offsetHeight;\n return { left, top, height };\n};\n\n/**\n * @hidden\n */\nclass DragAndDropService {\n constructor() {\n this.changes = new EventEmitter();\n this.register = [];\n this.lastTarget = null;\n }\n add(target) {\n this.register.push(target);\n }\n remove(target) {\n this.register = this.register.filter(current => current !== target);\n }\n notifyDrag(draggable, element, mouseEvent) {\n const target = this.targetFor(element);\n if (this.lastTarget === target) {\n return;\n }\n this.changes.next({\n draggable,\n mouseEvent,\n target: this.lastTarget,\n type: 'leave'\n });\n if (target) {\n this.changes.next({\n draggable,\n mouseEvent,\n target,\n type: 'enter'\n });\n }\n this.lastTarget = target;\n }\n notifyDrop(draggable, mouseEvent) {\n this.changes.next({\n draggable,\n mouseEvent,\n target: this.lastTarget,\n type: 'drop'\n });\n this.lastTarget = null;\n }\n targetFor(element) {\n const comparer = contains$2.bind(null, element);\n return this.register.find(({ element: { nativeElement } }) => comparer(nativeElement));\n }\n}\nDragAndDropService.decorators = [\n { type: Injectable },\n];\n\nconst updateClass = (element, valid) => {\n const icon = element.querySelector('.k-icon');\n icon.className = icon.className\n .replace(/(plus|cancel)/, valid ? 'plus' : 'cancel');\n};\nconst updateLock = (element, locked = null) => {\n const icon = element.querySelectorAll('.k-icon')[1];\n const value = locked == null ? '' : (locked ? 'k-i-lock' : 'k-i-unlock');\n icon.className = icon.className\n .replace(/(k-i-unlock|k-i-lock)/, '') + ` ${value}`;\n};\nconst decorate = (element, target) => {\n const targetStyles = getComputedStyle(target);\n element.className = 'k-header k-drag-clue';\n element.style.position = 'absolute';\n element.style.zIndex = '20000';\n element.style.paddingLeft = targetStyles.paddingLeft;\n element.style.paddingTop = targetStyles.paddingTop;\n element.style.paddingBottom = targetStyles.paddingBottom;\n element.style.paddingRight = targetStyles.paddingRight;\n element.style.width = targetStyles.width;\n element.style.height = targetStyles.height;\n};\n/**\n * @hidden\n */\nclass DragHintService {\n constructor(santizer) {\n this.santizer = santizer;\n }\n create(down, target, title) {\n this.initCoords(down);\n this.dom = document.createElement(\"div\");\n decorate(this.dom, target);\n const safeTitle = this.santizer.sanitize(SecurityContext.HTML, title);\n this.dom.innerHTML = `\n \n \n \n ${safeTitle}\n `;\n }\n attach() {\n return append(this.dom);\n }\n remove() {\n if (this.dom && this.dom.parentNode) {\n (function (el) {\n setTimeout(() => document.body.removeChild(el));\n })(this.dom); // hack for IE + pointer events!\n this.dom = null;\n }\n }\n show() {\n this.dom.style.display = \"\";\n }\n hide() {\n this.dom.style.display = \"none\";\n }\n enable() {\n updateClass(this.dom, true);\n }\n disable() {\n updateClass(this.dom, false);\n }\n removeLock() {\n updateLock(this.dom);\n }\n toggleLock(locked) {\n updateLock(this.dom, locked);\n }\n move(move) {\n this.dom.style.top = this.initialTop + move.pageY + 'px';\n this.dom.style.left = this.initialLeft + move.pageX + 'px';\n }\n initCoords(down) {\n const { top, left } = offset(down.originalEvent.target);\n this.initialTop = top - down.pageY;\n this.initialLeft = left - down.pageX;\n }\n}\nDragHintService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nDragHintService.ctorParameters = () => [\n { type: DomSanitizer }\n];\n\n/**\n * @hidden\n */\nclass DropCueService {\n create() {\n this.dom = document.createElement(\"div\");\n this.dom.className = 'k-grouping-dropclue';\n this.hide();\n }\n attach() {\n return append(this.dom);\n }\n remove() {\n if (this.dom && this.dom.parentElement) {\n document.body.removeChild(this.dom);\n this.dom = null;\n }\n }\n hide() {\n this.dom.style.display = \"none\";\n }\n position({ left, top, height }) {\n this.dom.style.display = 'block';\n this.dom.style.height = height + 'px';\n this.dom.style.top = top + 'px';\n const width = this.dom.offsetWidth / 2;\n this.dom.style.left = left - width + 'px';\n }\n}\nDropCueService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nclass ColumnReorderService {\n constructor() {\n this.changes = new EventEmitter();\n }\n reorder(e) {\n this.changes.emit(e);\n }\n}\nColumnReorderService.decorators = [\n { type: Injectable },\n];\n\n/**\n * Arguments for the `columnReorder` event.\n */\nclass ColumnReorderEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor({ column, newIndex, oldIndex }) {\n super();\n this.column = column;\n this.newIndex = newIndex;\n this.oldIndex = oldIndex;\n }\n}\n\n/**\n * @hidden\n */\nclass FocusRoot {\n constructor() {\n this.groups = new Set();\n }\n registerGroup(group) {\n if (this.alive) {\n this.groups.add(group);\n }\n }\n unregisterGroup(group) {\n if (this.alive) {\n this.groups.delete(group);\n }\n }\n activate() {\n if (this.alive) {\n this.groups.forEach(f => f.activate());\n }\n }\n deactivate() {\n if (this.alive) {\n this.groups.forEach(f => f.deactivate());\n }\n }\n}\nFocusRoot.decorators = [\n { type: Injectable },\n];\n\nconst isButton = matchesNodeName('button');\nconst isInputTag = matchesNodeName('input');\nconst navigableRegex = /(button|checkbox|color|file|radio|reset|submit)/i;\nconst isNavigableInput = element => isInputTag(element) && navigableRegex.test(element.type);\nconst isNavigable = element => !element.disabled && (isButton(element) || isNavigableInput(element));\n/**\n * @hidden\n */\nclass DefaultFocusableElement {\n constructor(host, renderer) {\n this.renderer = renderer;\n this.element = host.nativeElement;\n this.focusable = findFocusable(this.element, false) || this.element;\n }\n get enabled() {\n return this.focusable && !this.focusable.disabled;\n }\n get visible() {\n return this.focusable && isVisible(this.focusable);\n }\n isNavigable() {\n return this.canFocus() && isNavigable(this.element);\n }\n toggle(active) {\n this.renderer.setAttribute(this.focusable, 'tabIndex', active ? '0' : '-1');\n }\n focus() {\n if (this.focusable) {\n this.focusable.focus();\n }\n }\n canFocus() {\n return this.visible && this.enabled;\n }\n hasFocus() {\n return document.activeElement !== this.element && closest(document.activeElement, e => e === this.element);\n }\n}\n\n/**\n * A directive that controls the way focusable elements receive\n * [focus in a navigable Grid]({% slug keyboard_navigation_grid %}).\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\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 * class AppComponent {\n * public readonly data: any = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }];\n * }\n * ```\n */\nclass FocusableDirective {\n constructor(cellContext, hostElement, renderer) {\n this.cellContext = cellContext;\n this.hostElement = hostElement;\n this.renderer = renderer;\n this.active = true;\n if (this.cellContext) {\n this.group = this.cellContext.focusGroup;\n }\n if (this.group) {\n this.group.registerElement(this);\n }\n }\n ngAfterViewInit() {\n if (!this.element) {\n this.element = new DefaultFocusableElement(this.hostElement, this.renderer);\n }\n if (this.group) {\n const isActive = this.group.isActive;\n this.toggle(isActive);\n }\n }\n ngOnDestroy() {\n if (this.group) {\n this.group.unregisterElement(this);\n }\n }\n /**\n * @hidden\n */\n toggle(active) {\n if (this.element && active !== this.active) {\n this.active = active;\n this.element.toggle(active);\n }\n }\n /**\n * @hidden\n */\n canFocus() {\n return this.element && this.element.canFocus();\n }\n /**\n * @hidden\n */\n isNavigable() {\n return this.element && this.element.isNavigable();\n }\n /**\n * @hidden\n */\n focus() {\n if (this.element) {\n this.element.focus();\n }\n }\n /**\n * @hidden\n */\n hasFocus() {\n return this.element && this.element.hasFocus();\n }\n /**\n * @hidden\n */\n registerElement(element) {\n this.element = element;\n }\n}\nFocusableDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridFocusable]' + `,\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n `\n },] },\n];\n/** @nocollapse */\nFocusableDirective.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [CELL_CONTEXT,] }, { type: SkipSelf }] },\n { type: ElementRef },\n { type: Renderer2 }\n];\n\n/**\n * @hidden\n */\nclass GridFocusableElement {\n constructor(navigationService) {\n this.navigationService = navigationService;\n }\n focus() {\n this.navigationService.focusCell();\n }\n toggle(active) {\n this.navigationService.toggle(active);\n }\n canFocus() {\n return true;\n }\n hasFocus() {\n return this.navigationService.hasFocus();\n }\n isNavigable() {\n return false;\n }\n}\n\n/**\n * @hidden\n */\nclass NavigationCursor {\n constructor(model) {\n this.model = model;\n this.changes = new Subject();\n this.activeRow = 0;\n this.activeCol = 0;\n this.virtualCol = 0;\n this.virtualRow = 0;\n }\n get row() {\n return this.model.findRow(this.activeRow);\n }\n get cell() {\n const row = this.row;\n if (row) {\n return this.model.findCell(this.activeCol, row);\n }\n }\n get dataRowIndex() {\n const row = this.row;\n if (row) {\n return row.dataRowIndex;\n }\n return -1;\n }\n /**\n * Assumes and announces a new cursor position.\n */\n reset(rowIndex = this.activeRow, colIndex = this.activeCol, force = true) {\n if (this.activate(rowIndex, colIndex, force)) {\n this.virtualRow = rowIndex;\n this.virtualCol = colIndex;\n }\n }\n activate(rowIndex, colIndex, force) {\n if (!force && this.isActiveRange(rowIndex, colIndex)) {\n return false;\n }\n const prevColIndex = this.activeCol;\n const prevRowIndex = this.activeRow;\n this.activeCol = colIndex;\n this.activeRow = rowIndex;\n this.changes.next({\n colIndex,\n prevColIndex,\n prevRowIndex,\n rowIndex\n });\n return true;\n }\n isActiveRange(rowIndex, colIndex) {\n if (this.activeRow !== rowIndex) {\n return false;\n }\n const cell = this.cell;\n const { start, end } = this.model.cellRange(cell);\n return !Boolean(cell) || (start <= colIndex && colIndex <= end);\n }\n /**\n * Assumes a new cursor position without announcing it.\n */\n assume(rowIndex = this.activeRow, colIndex = this.activeCol) {\n this.virtualRow = rowIndex;\n this.virtualCol = colIndex;\n this.activeCol = colIndex;\n this.activeRow = rowIndex;\n }\n /**\n * Announces a current cursor position to subscribers.\n */\n announce() {\n this.changes.next({\n colIndex: this.activeCol,\n prevColIndex: this.activeCol,\n prevRowIndex: this.activeRow,\n rowIndex: this.activeRow\n });\n }\n activateVirtualCell(cell) {\n const rowRange = this.model.rowRange(cell);\n const cellRange = this.model.cellRange(cell);\n const activeCol = this.activeCol;\n const activeRow = this.activeRow;\n if (rowRange.start <= activeRow && activeRow <= rowRange.end &&\n cellRange.start <= activeCol && activeCol <= cellRange.end) {\n this.activeRow = cell.rowIndex;\n this.activeCol = cell.colIndex;\n return true;\n }\n }\n isActive(rowIndex, colIndex) {\n return this.activeCol === colIndex && this.activeRow === rowIndex;\n }\n moveUp(offset = 1) {\n return this.offsetRow(-offset);\n }\n moveDown(offset = 1) {\n return this.offsetRow(offset);\n }\n moveLeft(offset = 1) {\n return this.offsetCol(-offset);\n }\n moveRight(offset = 1) {\n return this.offsetCol(offset);\n }\n lastCellIndex(row) {\n return this.metadata.columns.leafColumnsToRender.length - 1 +\n (this.metadata.hasDetailTemplate && (!row || !row.groupItem) ? 1 : 0);\n }\n offsetCol(offset) {\n const prevRow = this.model.findRow(this.virtualRow);\n const lastIndex = this.lastCellIndex(prevRow);\n const virtualCol = this.virtualCol;\n this.virtualCol = Math.max(0, Math.min(virtualCol + offset, lastIndex));\n let nextColIndex = this.virtualCol;\n let nextRowIndex = this.virtualRow;\n let cell = this.model.findCell(this.virtualCol, prevRow);\n if (!cell && this.metadata.virtualColumns) {\n return this.activate(nextRowIndex, nextColIndex);\n }\n if (cell.colSpan > 1 && cell.colIndex <= virtualCol && virtualCol < cell.colIndex + cell.colSpan) {\n nextColIndex = offset > 0 ? Math.min(cell.colIndex + cell.colSpan, lastIndex) : Math.max(0, cell.colIndex + offset);\n const nextCell = this.model.findCell(nextColIndex, prevRow);\n if (cell !== nextCell) {\n cell = nextCell;\n this.virtualCol = cell.colIndex;\n }\n else {\n this.virtualCol = virtualCol;\n }\n }\n return this.activate(cell.rowIndex, cell.colIndex);\n }\n offsetRow(offset) {\n let nextColIndex = this.virtualCol;\n if (this.metadata && this.metadata.isVirtual) {\n const maxIndex = this.metadata.maxLogicalRowIndex;\n let nextIndex = Math.max(0, Math.min(this.activeRow + offset, maxIndex));\n if (this.metadata.hasDetailTemplate && !this.model.findRow(nextIndex)) {\n nextIndex = offset > 0 ? nextIndex + 1 : nextIndex - 1;\n nextIndex = Math.max(0, Math.min(nextIndex, maxIndex));\n }\n if (this.metadata.hasDetailTemplate && nextIndex === maxIndex) {\n if (this.model.lastRow.index !== maxIndex) {\n // Don't attempt to navigate past the last collapsed row.\n nextIndex--;\n }\n }\n const nextRow = this.model.findRow(nextIndex);\n if (nextRow) {\n // remove duplication\n let cell = this.model.findCell(this.virtualCol, nextRow);\n if (cell.rowIndex <= this.virtualRow && offset > 0 && cell.rowSpan > 1) {\n cell = this.model.findCell(this.virtualCol, this.model.findRow(cell.rowIndex + cell.rowSpan - 1 + offset));\n }\n nextIndex = cell.rowIndex;\n nextColIndex = cell.colIndex;\n }\n this.virtualRow = nextIndex;\n return this.activate(nextIndex, nextColIndex);\n }\n const nextRow = this.model.findRow(this.virtualRow + offset) || this.model.nextRow(this.virtualRow, offset);\n if (!nextRow) {\n return false;\n }\n let cell = this.model.findCell(this.virtualCol, nextRow);\n if (cell && cell.rowIndex <= this.virtualRow && offset > 0 && cell.rowSpan > 1) { // spanned cell go to next\n const nextPos = cell.rowIndex + cell.rowSpan - 1 + offset;\n cell = this.model.findCell(this.virtualCol, this.model.findRow(nextPos));\n }\n if (!cell && this.metadata.virtualColumns) {\n return this.activate(this.virtualRow + offset, this.virtualCol);\n }\n this.virtualRow = cell.rowIndex;\n return this.activate(this.virtualRow, cell.colIndex);\n }\n}\n\n/**\n * @hidden\n */\nclass ItemMap {\n constructor() {\n this.count = 0;\n this.items = {};\n }\n get first() {\n if (this.count > 0) {\n let result;\n this.forEach(item => {\n result = item;\n return true;\n });\n return result;\n }\n }\n get last() {\n if (this.count > 0) {\n const keys = Object.keys(this.items);\n return this.items[keys[keys.length - 1]];\n }\n }\n removeItem(key) {\n if (this.items[key]) {\n delete this.items[key];\n this.count--;\n }\n }\n setItem(key, item) {\n if (!this.items[key]) {\n this.count++;\n }\n this.items[key] = item;\n }\n getItem(key) {\n return this.items[key];\n }\n toArray() {\n const result = [];\n this.forEach(item => {\n result.push(item);\n });\n return result;\n }\n forEach(callback) {\n for (let key in this.items) {\n if (this.items.hasOwnProperty(key) && callback(this.items[key])) {\n return this.items[key];\n }\n }\n }\n find(callback) {\n return this.forEach(callback);\n }\n}\n\n/**\n * @hidden\n *\n * Contains information for the currently rendered rows and cells.\n */\nclass NavigationModel {\n constructor() {\n this.rows = new ItemMap();\n }\n get firstRow() {\n return this.rows.first;\n }\n get lastRow() {\n return this.rows.last;\n }\n registerCell(cell) {\n const row = this.rows.getItem(cell.logicalRowIndex);\n if (!row) {\n return;\n }\n const colIndex = cell.logicalColIndex;\n const modelCell = {\n uid: cell.uid,\n colIndex,\n rowIndex: row.index,\n colSpan: cell.colSpan,\n rowSpan: cell.rowSpan,\n detailExpandCell: cell.detailExpandCell,\n dataItem: row.dataItem,\n dataRowIndex: row.dataRowIndex,\n focusGroup: cell.focusGroup\n };\n row.cells.setItem(colIndex, modelCell);\n if (cell.groupItem) {\n row.groupItem = cell.groupItem;\n }\n return modelCell;\n }\n unregisterCell(index, rowIndex, cell) {\n const row = this.rows.getItem(rowIndex);\n if (row) {\n const match = row.cells.getItem(index);\n if (match && match.uid === cell.uid) {\n row.cells.removeItem(index);\n }\n }\n }\n registerRow(row) {\n const modelRow = {\n uid: row.uid,\n index: row.logicalRowIndex,\n dataItem: row.dataItem,\n dataRowIndex: row.dataRowIndex,\n cells: new ItemMap()\n };\n this.rows.setItem(row.logicalRowIndex, modelRow);\n }\n updateRow(row) {\n const current = this.rows.getItem(row.logicalRowIndex);\n if (current) {\n Object.assign(current, {\n dataItem: row.dataItem,\n dataRowIndex: row.dataRowIndex\n });\n }\n }\n unregisterRow(index, row) {\n const match = this.rows.getItem(index);\n if (match && match.uid === row.uid) {\n this.rows.removeItem(index);\n }\n }\n cellRange(cell) {\n if (cell) {\n const start = cell.colIndex;\n const end = cell.colIndex + (cell.colSpan || 1) - 1;\n return {\n start,\n end\n };\n }\n return {};\n }\n rowRange(cell) {\n if (cell) {\n const start = cell.rowIndex;\n const end = cell.rowIndex + (cell.rowSpan || 1) - 1;\n return {\n start,\n end\n };\n }\n return {};\n }\n nextRow(rowIndex, offset) {\n const rows = this.rows.toArray();\n const row = this.rows.getItem(rowIndex);\n const position = rows.indexOf(row);\n const next = rows[position + offset];\n return next;\n }\n findRow(index) {\n return this.rows.getItem(index);\n }\n findCell(index, row) {\n if (!row) {\n return;\n }\n const rowIndex = row.index;\n let cell = row.cells.getItem(index);\n let currentIndex = rowIndex;\n while (!cell && row) {\n row = this.rows.getItem(currentIndex);\n cell = this.rowCell(index, row);\n currentIndex--;\n }\n if (cell && rowIndex <= row.index + (cell.rowSpan || 1) - 1) {\n return cell;\n }\n }\n rowCell(index, row) {\n if (!row || !row.cells.count) {\n return;\n }\n const firstCell = row.cells.first;\n let cell, currentIndex = index;\n while (!cell && currentIndex >= firstCell.colIndex) {\n cell = row.cells.getItem(currentIndex);\n currentIndex--;\n }\n if (cell && index <= cell.colIndex + (cell.colSpan || 1) - 1) {\n return cell;\n }\n }\n}\n\n/**\n * @hidden\n */\nclass ScrollRequestService {\n constructor() {\n this.requests = new Subject();\n }\n scrollTo(request) {\n this.requests.next(request);\n }\n}\nScrollRequestService.decorators = [\n { type: Injectable },\n];\n\nconst isInSameGrid = (element, gridElement) => closest(element, matchesNodeName('kendo-grid')) === gridElement;\nconst matchHeaderCell = matchesNodeName('th');\nconst matchDataCell = matchesNodeName('td');\nconst matchCell = (element) => matchDataCell(element) || matchHeaderCell(element);\nconst gridCell = (element, gridElement) => {\n let target = closest(element, matchCell);\n while (target && !isInSameGrid(target, gridElement)) {\n target = closest(target.parentElement, matchCell);\n }\n return target;\n};\nconst targetCell = (target, gridElement) => {\n const cell = gridCell(target, gridElement);\n const row = closest(cell, matchesNodeName('tr'));\n if (cell && row) {\n let rowIndex = row.getAttribute('aria-rowindex');\n rowIndex = rowIndex ? parseInt(rowIndex, 10) - 1 : null;\n let colIndex = cell.getAttribute('aria-colindex');\n colIndex = colIndex ? parseInt(colIndex, 10) - 1 : null;\n if (rowIndex !== null && colIndex !== null) {\n return { colIndex, rowIndex, element: cell };\n }\n }\n};\nconst isArrowKey = keyCode => keyCode === Keys.ArrowLeft || keyCode === Keys.ArrowRight ||\n keyCode === Keys.ArrowUp || keyCode === Keys.ArrowDown;\nconst isNavigationKey = keyCode => isArrowKey(keyCode) ||\n keyCode === Keys.PageUp || keyCode === Keys.PageDown ||\n keyCode === Keys.Home || keyCode === Keys.End;\nconst isInput = matchesNodeName('input');\nconst isTextInput = element => element && isInput(element) && element.type.toLowerCase() === 'text';\nconst isPrintableCharacter = (str) => str.length === 1 && str.match(/\\S/);\n/**\n * @hidden\n */\nclass NavigationViewport {\n constructor(firstItemIndex, lastItemIndex) {\n this.firstItemIndex = firstItemIndex;\n this.lastItemIndex = lastItemIndex;\n }\n containsRow(dataRowIndex) {\n const headerRow = dataRowIndex < 0;\n return headerRow || (dataRowIndex >= this.firstItemIndex && dataRowIndex <= this.lastItemIndex);\n }\n intersects(start, end) {\n return (start <= this.firstItemIndex && this.lastItemIndex <= end) ||\n (this.firstItemIndex <= start && start <= this.lastItemIndex) ||\n (this.firstItemIndex <= end && end <= this.lastItemIndex);\n }\n}\n/**\n * @hidden\n */\nclass NavigationService {\n constructor(zone, domEvents, pagerContextService, scrollRequestService, groupsService, detailsService, focusRoot, editService, cd, localization, focusableParent) {\n this.zone = zone;\n this.domEvents = domEvents;\n this.pagerContextService = pagerContextService;\n this.scrollRequestService = scrollRequestService;\n this.groupsService = groupsService;\n this.detailsService = detailsService;\n this.focusRoot = focusRoot;\n this.editService = editService;\n this.cd = cd;\n this.localization = localization;\n this.focusableParent = focusableParent;\n this.cellKeydown = new EventEmitter();\n this.activeRowIndex = 0;\n this.alive = false;\n this.active = true;\n this.mode = 0 /* Standby */;\n this.model = new NavigationModel();\n this.cursor = new NavigationCursor(this.model);\n this.changes = this.cursor.changes;\n }\n set metadata(value) {\n this.meta = value;\n this.cursor.metadata = value;\n }\n get metadata() {\n return this.meta;\n }\n get enabled() {\n return this.alive;\n }\n get activeCell() {\n if (this.mode !== 0 /* Standby */) {\n return this.cursor.cell;\n }\n }\n get activeRow() {\n if (this.mode !== 0 /* Standby */) {\n return Object.assign({}, this.cursor.row, {\n cells: this.cursor.row.cells.toArray()\n });\n }\n }\n get activeDataRow() {\n return Math.max(0, this.activeRowIndex - this.meta.headerRows);\n }\n init(meta) {\n this.alive = true;\n this.focusRoot.alive = true;\n this.metadata = meta;\n const onStableSubscriber = (...operators) => (args) => this.zone.isStable ?\n from([true]).pipe(map(() => args)) :\n this.zone.onStable.pipe(take(1), map(() => args), ...operators);\n const onStable = onStableSubscriber();\n this.subs = new Subscription();\n this.subs.add(this.cursor.changes\n .subscribe(args => this.onCursorChanges(args)));\n this.subs.add(this.domEvents.focus.pipe(switchMap(onStable))\n .subscribe((args) => this.navigateTo(args.target)));\n this.subs.add(this.domEvents.focusOut.pipe(filter(() => this.mode !== 0 /* Standby */), switchMap(onStableSubscriber(takeUntil(this.domEvents.focus))))\n .subscribe(args => this.onFocusOut(args)));\n this.subs.add(this.domEvents.windowBlur.pipe(filter(() => this.mode !== 0 /* Standby */))\n .subscribe(() => this.onWindowBlur()));\n this.subs.add(\n // Closing the editor will not always trigger focusout in Firefox.\n // To get around this, we ensure that the cell is closed after editing.\n this.editService.changes.pipe(filter(e => e.action !== 'edit' && this.mode === 2 /* Content */), filter((e) => e.action === 'cellClose' && !e.prevented), switchMap(onStable))\n .subscribe(() => this.leaveCell()));\n this.subs.add(this.pagerContextService.pageChange\n .subscribe(() => this.cursor.reset(0, 0)));\n this.subs.add(this.domEvents.keydown\n .subscribe(args => this.onKeydown(args)));\n this.subs.add(this.domEvents.keydown.pipe(filter(args => args.keyCode === Keys.Tab && this.mode === 2 /* Content */), switchMapTo(this.domEvents.focusOut.pipe(takeUntil(\n // Timeout if focusOut doesn't fire very soon\n interval(0).pipe(take(1))))))\n .subscribe(() => this.onTabout()));\n if (this.focusableParent) {\n const element = new GridFocusableElement(this);\n this.focusableParent.registerElement(element);\n }\n this.deactivateElements();\n }\n ngOnDestroy() {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n this.alive = false;\n }\n registerCell(cell) {\n if (cell.logicalRowIndex !== this.pendingRowIndex) {\n const modelCell = this.model.registerCell(cell);\n if (this.virtualCell && this.cursor.activateVirtualCell(modelCell)) {\n this.virtualCell = false;\n }\n }\n }\n registerCellOnCurrentRow(cell) {\n if (cell.logicalRowIndex === this.pendingRowIndex) {\n this.model.registerCell(cell);\n }\n }\n unregisterCell(index, rowIndex, cell) {\n this.model.unregisterCell(index, rowIndex, cell);\n }\n registerRow(row) {\n this.model.registerRow(row);\n this.pendingRowIndex = row.logicalRowIndex;\n }\n updateRow(row) {\n this.model.updateRow(row);\n }\n unregisterRow(index, row) {\n this.model.unregisterRow(index, row);\n }\n isCellFocusable(cell) {\n return this.alive &&\n this.active &&\n this.mode !== 2 /* Content */ &&\n this.cursor.isActive(cell.logicalRowIndex, cell.logicalColIndex);\n }\n isCellFocused(cell) {\n return this.mode === 1 /* Cursor */ && this.isCellFocusable(cell);\n }\n navigateTo(el) {\n if (!this.alive) {\n return;\n }\n const cell = targetCell(el, this.meta.gridElement.nativeElement);\n if (!cell) {\n return;\n }\n const oldMode = this.mode;\n const focusInCell = contains(cell.element, document.activeElement);\n const focusInActiveRowContent = this.mode === 2 /* Content */ &&\n this.activeRowIndex === cell.rowIndex &&\n el !== cell.element;\n if (focusInCell) {\n this.mode = 2 /* Content */;\n this.cursor.reset(cell.rowIndex, cell.colIndex);\n this.activateRow();\n }\n else if (!focusInActiveRowContent) {\n this.mode = 1 /* Cursor */;\n this.deactivateElements();\n const alreadyActive = this.cursor.isActive(cell.rowIndex, cell.colIndex);\n const isCursor = oldMode === 1 /* Cursor */ && alreadyActive;\n if (!isCursor) {\n this.cursor.reset(cell.rowIndex, cell.colIndex);\n }\n }\n }\n tryFocus(el) {\n this.activateElements();\n const focusable = findFocusableChild(el);\n if (focusable) {\n const cell = targetCell(focusable, this.meta.gridElement.nativeElement);\n if (cell) {\n this.cursor.reset(cell.rowIndex, cell.colIndex);\n this.deactivateElements();\n this.enterCell();\n }\n focusable.focus();\n }\n else {\n this.deactivateElements();\n }\n return !!focusable;\n }\n needsViewport() {\n return this.meta && this.meta.isVirtual;\n }\n setViewport(firstItemIndex, lastItemIndex) {\n this.viewport = new NavigationViewport(firstItemIndex, lastItemIndex);\n if (this.meta && this.meta.isVirtual && this.activeDataRow > -1) {\n const dataRowIndex = this.activeDataRow;\n const ahead = firstItemIndex - dataRowIndex;\n const behind = dataRowIndex - lastItemIndex;\n if (ahead > 0) {\n this.cursor.reset(firstItemIndex + this.meta.headerRows);\n }\n else if (behind > 0) {\n this.cursor.reset(lastItemIndex - this.meta.headerRows);\n }\n }\n }\n setColumnViewport(firstItemIndex, lastItemIndex) {\n this.columnViewport = new NavigationViewport(firstItemIndex, lastItemIndex);\n }\n focusCell(rowIndex = undefined, colIndex = undefined) {\n this.mode = 1 /* Cursor */;\n this.cursor.reset(rowIndex, colIndex);\n return this.activeCell;\n }\n focusNextCell(wrap = true) {\n return this.focusAdjacentCell(true, wrap);\n }\n focusPrevCell(wrap = true) {\n return this.focusAdjacentCell(false, wrap);\n }\n toggle(active) {\n this.active = active;\n this.cursor.announce();\n }\n hasFocus() {\n return this.mode === 1 /* Cursor */ || this.mode === 2 /* Content */;\n }\n autoFocusCell(start, end) {\n return !this.meta.virtualColumns || end < this.meta.columns.lockedLeafColumns.length || this.columnViewport.intersects(start, end);\n }\n focusAdjacentCell(fwd, wrap) {\n this.focusCell();\n let success = fwd ? this.moveCursorFwd() : this.moveCursorBwd();\n if (wrap && !success) {\n success = fwd ? this.cursor.moveDown(1) : this.cursor.moveUp(1);\n if (success) {\n const row = this.cursor.row;\n const colIdx = fwd ? 0 : this.cursor.lastCellIndex(row);\n this.cursor.reset(row.index, colIdx);\n }\n }\n if (success) {\n return this.activeCell;\n }\n else {\n this.mode = 0 /* Standby */;\n this.cursor.announce();\n }\n return null;\n }\n enterCell() {\n const cell = this.cursor.cell;\n if (!cell) {\n return;\n }\n const group = cell.focusGroup;\n const focusable = group && group.canFocus();\n this.mode = focusable ? 2 /* Content */ : 1 /* Cursor */;\n this.cursor.announce();\n if (focusable) {\n this.activateRow();\n group.focus();\n }\n }\n leaveCell() {\n const cell = this.cursor.cell;\n if (!cell) {\n return;\n }\n const group = cell.focusGroup;\n const focusable = group && group.canFocus();\n if (!focusable) {\n this.deactivateElements();\n }\n this.mode = 1 /* Cursor */;\n this.cursor.announce();\n }\n activateElements() {\n this.focusRoot.activate();\n }\n deactivateElements() {\n this.focusRoot.deactivate();\n }\n activateRow() {\n this.cursor.row.cells\n .forEach(cell => cell.focusGroup && cell.focusGroup.activate());\n }\n moveCursorFwd() {\n return this.localization.rtl ? this.cursor.moveLeft() : this.cursor.moveRight();\n }\n moveCursorBwd() {\n return this.localization.rtl ? this.cursor.moveRight() : this.cursor.moveLeft();\n }\n onCursorKeydown(args) {\n let preventDefault = false;\n const modifier = args.ctrlKey || args.metaKey;\n const step = modifier ? 5 : 1;\n if (!this.onCellKeydown(args)) {\n return;\n }\n const row = this.cursor.row;\n switch (args.keyCode) {\n case Keys.ArrowDown:\n preventDefault = this.cursor.moveDown(step);\n break;\n case Keys.ArrowUp:\n preventDefault = this.cursor.moveUp(step);\n break;\n case Keys.ArrowRight:\n preventDefault = this.moveCursorFwd();\n break;\n case Keys.ArrowLeft:\n preventDefault = this.moveCursorBwd();\n break;\n case Keys.PageDown:\n if (this.metadata.isVirtual && this.viewport) {\n let nextItemIndex = this.meta.headerRows + this.viewport.lastItemIndex + 1;\n if (this.metadata.hasDetailTemplate) {\n nextItemIndex++;\n }\n nextItemIndex = Math.min(this.meta.maxLogicalRowIndex, nextItemIndex);\n this.cursor.reset(nextItemIndex);\n preventDefault = true;\n }\n else if (this.metadata.hasPager) {\n this.zone.run(() => this.pagerContextService.nextPage());\n preventDefault = true;\n }\n break;\n case Keys.PageUp:\n if (this.metadata.isVirtual && this.viewport) {\n let viewportSize = this.viewport.lastItemIndex - this.viewport.firstItemIndex;\n let firstItemIndex = this.viewport.firstItemIndex;\n let nextItemIndex = Math.max(this.meta.headerRows, firstItemIndex - viewportSize - 1);\n this.cursor.reset(nextItemIndex);\n preventDefault = true;\n }\n else if (this.metadata.hasPager) {\n this.zone.run(() => this.pagerContextService.prevPage());\n preventDefault = true;\n }\n break;\n case Keys.Home:\n if (modifier) {\n if (this.meta.isVirtual) {\n this.cursor.reset(this.meta.headerRows, 0, false);\n }\n else {\n this.cursor.reset(this.model.firstRow.index, 0, false);\n }\n }\n else {\n this.cursor.reset(row.index, 0, false);\n }\n preventDefault = true;\n break;\n case Keys.End:\n if (modifier) {\n if (this.meta.isVirtual) {\n let lastRowIndex = this.meta.maxLogicalRowIndex;\n if (this.meta.hasDetailTemplate) {\n lastRowIndex--;\n }\n this.cursor.reset(lastRowIndex, this.cursor.lastCellIndex(), false);\n }\n else {\n this.cursor.reset(this.model.lastRow.index, this.cursor.lastCellIndex(this.model.lastRow), false);\n }\n }\n else {\n const lastIndex = this.cursor.lastCellIndex(row);\n const cell = this.model.findCell(lastIndex, row);\n if (cell) {\n this.cursor.reset(cell.rowIndex, cell.colIndex);\n }\n else {\n this.cursor.reset(row.index, lastIndex);\n }\n }\n preventDefault = true;\n break;\n case Keys.Enter:\n case Keys.F2:\n const groupItem = row.groupItem;\n if (groupItem) {\n this.zone.run(() => this.groupsService.toggleRow(groupItem.index, groupItem.data));\n }\n else if (this.cursor.cell.detailExpandCell) {\n this.zone.run(() => this.detailsService.toggleRow(row.dataRowIndex, row.dataItem));\n }\n else {\n this.enterCell();\n if (!this.cursor.cell.focusGroup.isNavigable()) {\n preventDefault = true;\n }\n }\n break;\n default:\n if (!args.ctrlKey && !args.altKey && isPrintableCharacter(args.key)) {\n this.enterCell();\n }\n }\n if (preventDefault) {\n args.preventDefault();\n }\n }\n onContentKeydown(args) {\n if (!this.onCellKeydown(args)) {\n return;\n }\n const confirm = !args.defaultPrevented && args.keyCode === Keys.Enter && isTextInput(args.srcElement);\n if (args.keyCode === Keys.Escape || args.keyCode === Keys.F2 || confirm) {\n this.leaveCell();\n this.cursor.reset();\n args.stopPropagation();\n }\n else if (isNavigationKey(args.keyCode) && this.cursor.cell.focusGroup.isNavigable()) {\n this.onCursorKeydown(args);\n if (args.defaultPrevented) {\n this.leaveCell();\n }\n }\n }\n onCellKeydown(args) {\n if (this.editService.isEditingCell()) {\n const confirm = args.keyCode === Keys.Enter;\n const cancel = args.keyCode === Keys.Escape;\n const navigate = isNavigationKey(args.keyCode);\n if (confirm) {\n this.editService.closeCell(args);\n }\n else if (cancel) {\n this.editService.cancelCell();\n this.cd.detectChanges();\n }\n else if (navigate) {\n return false;\n }\n }\n this.cellKeydown.emit(args);\n return true;\n }\n onCursorChanges(args) {\n this.activeRowIndex = args.rowIndex;\n const dataRowIndex = this.activeDataRow;\n if (this.meta && (this.meta.isVirtual && this.viewport &&\n !this.viewport.containsRow(dataRowIndex) && dataRowIndex > -1)) {\n this.scrollRequestService.scrollTo({ row: dataRowIndex });\n }\n if (this.meta.virtualColumns && args.colIndex >= this.meta.columns.lockedLeafColumns.length) {\n const cell = this.activeCell;\n const { start, end } = this.model.cellRange(cell);\n if (!cell) {\n this.virtualCell = true;\n }\n if ((!cell && this.mode !== 0 /* Standby */) || (cell && !this.columnViewport.intersects(start, end))) {\n this.scrollRequestService.scrollTo({ column: args.colIndex - (this.metadata.hasDetailTemplate ? 1 : 0) });\n }\n }\n }\n onFocusOut(args) {\n if (isVisible(args.target)) {\n this.mode = 0 /* Standby */;\n }\n else {\n // Focused target is no longer visible,\n // reset to cursor mode and recapture focus.\n this.mode = 1 /* Cursor */;\n }\n this.deactivateElements();\n this.cursor.announce();\n }\n onWindowBlur() {\n this.mode = 0 /* Standby */;\n this.deactivateElements();\n this.cursor.announce();\n }\n onKeydown(args) {\n if (this.mode === 1 /* Cursor */) {\n this.onCursorKeydown(args);\n }\n else if (this.mode === 2 /* Content */) {\n this.onContentKeydown(args);\n }\n }\n onTabout() {\n // Tabbed out of the last focusable content element\n // reset to cursor mode and recapture focus.\n if (this.cursor.cell.focusGroup.isNavigable()) {\n // Unless the cell has a single focusable element,\n // otherwise we'd return to Content mode and enter an endless loop\n return;\n }\n this.leaveCell();\n this.cursor.reset();\n }\n}\nNavigationService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nNavigationService.ctorParameters = () => [\n { type: NgZone },\n { type: DomEventsService },\n { type: PagerContextService },\n { type: ScrollRequestService },\n { type: GroupsService },\n { type: DetailsService },\n { type: FocusRoot },\n { type: EditService },\n { type: ChangeDetectorRef },\n { type: LocalizationService },\n { type: FocusableDirective, decorators: [{ type: Optional }] }\n];\n\n/**\n * @hidden\n */\nclass NavigationMetadata {\n constructor(dataRows, headerRows, isVirtual, hasPager, hasDetailTemplate, gridElement, virtualColumns, columns) {\n this.dataRows = dataRows;\n this.headerRows = headerRows;\n this.isVirtual = isVirtual;\n this.hasPager = hasPager;\n this.hasDetailTemplate = hasDetailTemplate;\n this.gridElement = gridElement;\n this.virtualColumns = virtualColumns;\n this.columns = columns;\n }\n get maxLogicalRowIndex() {\n const dataRows = this.hasDetailTemplate ? this.dataRows * 2 : this.dataRows;\n return this.headerRows + dataRows - 1;\n }\n}\n\n// Incremented each time the service is instantiated.\nlet sequence = 0;\n/**\n * @hidden\n */\nclass IdService {\n constructor() {\n this.prefix = `k-grid${sequence++}`;\n }\n cellId(rowIndex, colIndex) {\n return `${this.prefix}-r${rowIndex}c${colIndex}`;\n }\n selectionCheckboxId(itemIndex) {\n return `${this.prefix}-checkbox${itemIndex}`;\n }\n selectAllCheckboxId() {\n return `${this.prefix}-select-all`;\n }\n}\nIdService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nIdService.ctorParameters = () => [];\n\n/**\n * @hidden\n */\nclass ColumnInfoService {\n constructor() {\n this.visibilityChange = new EventEmitter();\n this.lockedChange = new EventEmitter();\n this.columnRangeChange = new EventEmitter();\n this.columnsContainer = new ColumnsContainer(() => []);\n }\n get lockedLeafColumns() {\n return this.columnsContainer.lockedLeafColumns;\n }\n get nonLockedLeafColumns() {\n return this.columnsContainer.nonLockedLeafColumns;\n }\n get isLocked() {\n return this.lockedLeafColumns.length > 0;\n }\n get totalLevels() {\n return this.columnsContainer.totalLevels;\n }\n get leafNamedColumns() {\n const columns = expandColumns(this.list().filterSort(column => !column.isColumnGroup))\n .filter(column => column.matchesMedia && column.displayTitle);\n return orderBy(columns, [{ field: 'locked', dir: 'desc' }]);\n }\n get unlockedRootCount() {\n return this.list().rootColumns().filter(column => !column.locked && column.isVisible).length;\n }\n init(columns, list) {\n this.columnsContainer = columns;\n this.list = list;\n }\n changeVisibility(columns) {\n this.visibilityChange.emit(columns);\n }\n changeLocked(columns) {\n this.lockedChange.emit(columns);\n }\n}\nColumnInfoService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nclass SortService {\n constructor() {\n this.changes = new Subject();\n }\n sort(value) {\n this.changes.next(value);\n }\n}\n\n/**\n * Arguments for the `columnVisibilityChange` event.\n */\nclass ColumnVisibilityChangeEvent {\n /**\n * @hidden\n */\n constructor(columns) {\n this.columns = columns;\n }\n}\n\n/**\n * Arguments for the `columnLockedChange` event.\n */\nclass ColumnLockedChangeEvent {\n /**\n * @hidden\n */\n constructor(columns) {\n this.columns = columns;\n }\n}\n\n/**\n * @hidden\n */\nconst GROUP_CELL_WIDTH = 32; // this should be the value of group-cell inside the theme!\n\n/**\n * @hidden\n */\nfunction defaultTrackBy(index, item) {\n if (item.type === 'data' && item.isEditing) {\n return item.data;\n }\n return index;\n}\n\nconst createControl = (source) => (acc, key) => {\n acc[key] = new FormControl(source[key]);\n return acc;\n};\nconst validateColumnsField = (columns) => expandColumns(columns.toArray())\n .filter(isColumnComponent)\n .filter(({ field }) => !isValidFieldName(field))\n .forEach(({ field }) => console.warn(`\n Grid column field name '${field}' does not look like a valid JavaScript identifier.\n Identifiers can contain only alphanumeric characters (including \"$\" or \"_\"), and may not start with a digit.\n Please use only valid identifier names to ensure error-free operation.\n `));\nconst handleExpandCollapseService = (service, expandEmitter, collapseEmitter, map$$1) => (service.changes.pipe(filter(({ dataItem }) => isPresent(dataItem)))\n .subscribe((x) => x.expand ? expandEmitter.emit(map$$1(x)) : collapseEmitter.emit(map$$1(x))));\nconst isInEditedCell = (element, gridElement) => closest(element, matchesClasses('k-grid-edit-cell')) &&\n closest(element, matchesNodeName('kendo-grid')) === gridElement;\nconst ɵ4$2 = EMPTY_CELL_CONTEXT;\n/**\n * Represents the Kendo UI Grid component for Angular.\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public gridData: any[] = products;\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n * ```\n */\nclass GridComponent {\n constructor(supportService, selectionService, wrapper, groupInfoService, groupsService, changeNotification, detailsService, editService, filterService, pdfService, responsiveService, renderer, excelService, ngZone, scrollSyncService, domEvents, columnResizingService, changeDetectorRef, columnReorderService, columnInfoService, navigationService, sortService, scrollRequestService, localization) {\n this.supportService = supportService;\n this.selectionService = selectionService;\n this.wrapper = wrapper;\n this.groupInfoService = groupInfoService;\n this.groupsService = groupsService;\n this.changeNotification = changeNotification;\n this.detailsService = detailsService;\n this.editService = editService;\n this.filterService = filterService;\n this.pdfService = pdfService;\n this.responsiveService = responsiveService;\n this.renderer = renderer;\n this.excelService = excelService;\n this.ngZone = ngZone;\n this.scrollSyncService = scrollSyncService;\n this.domEvents = domEvents;\n this.columnResizingService = columnResizingService;\n this.changeDetectorRef = changeDetectorRef;\n this.columnReorderService = columnReorderService;\n this.columnInfoService = columnInfoService;\n this.navigationService = navigationService;\n this.sortService = sortService;\n this.scrollRequestService = scrollRequestService;\n /**\n * Sets the data of the Grid. If an array is provided, the Grid automatically gets the total count\n * ([more information and example]({% slug databinding_grid %})).\n */\n this.data = [];\n /**\n * Defines the scroll mode used by the Grid.\n *\n * The available options are:\n * - `none`—Renders no scrollbar.\n * - `scrollable`—The default scroll mode. It requires the setting of the `height` option.\n * - `virtual`—Displays no pager and renders a portion of the data (optimized rendering) while the user is scrolling the content.\n */\n this.scrollable = 'scrollable';\n /**\n * Enables the single-row [selection]({% slug selection_grid %}) of the Grid.\n */\n this.selectable = false;\n /**\n * A function that defines how to track changes for the data rows.\n *\n * By default, the Grid tracks changes by the index of the data item.\n * Edited rows are tracked by reference.\n * In some cases, you might need to override the default behavior,\n * for example, when you implement editing with immutable data items.\n *\n * The following example demonstrates how to track items only by index.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n * import { GridItem } from '@progress/kendo-angular-grid';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public gridData: any[] = products;\n *\n * public trackBy(index: number, item: GridItem): any {\n * console.log(item);\n * return index;\n * }\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n * ```\n */\n this.trackBy = defaultTrackBy;\n /**\n * If set to `true`, the grid will render only the columns in the current viewport.\n */\n this.virtualColumns = false;\n /**\n * Enables the [filtering]({% slug filtering_grid %}) of the Grid columns that have their `field` option set.\n */\n this.filterable = false;\n /**\n * Enables the [sorting]({% slug sorting_grid %}) of the Grid columns that have their `field` option set.\n */\n this.sortable = false;\n /**\n * Configures the pager of the Grid ([see example]({% slug paging_grid %})).\n *\n * The available options are:\n * - `buttonCount: Number`—Sets the maximum numeric buttons count before the buttons are collapsed.\n * - `info: Boolean`—Toggles the information about the current page and the total number of records.\n * - `type: PagerType`—Accepts the `numeric` (buttons with numbers) and `input` (input for typing the page number) values.\n * - `pageSizes: Boolean` or `Array`—Shows a menu for selecting the page size.\n * - `previousNext: Boolean`—Toggles the **Previous** and **Next** buttons.\n */\n this.pageable = false;\n /**\n * If set to `true`, the user can group the Grid by dragging the column header cells.\n * By default, grouping is disabled ([see example]({% slug groupingbasics_grid %})).\n */\n this.groupable = false;\n /**\n * If set to `true`, the user can use dedicated shortcuts to interact with the Grid.\n * By default, navigation is disabled and the Grid content is accessible in the normal tab sequence.\n */\n this.navigable = false;\n /**\n * Indicates whether the Grid columns will be resized during initialization so that\n * they fit their headers and row content. Defaults to `false`.\n * Columns with `autoSize` set to `false` are excluded.\n * To dynamically update the column width to match the new content,\n * refer to [this example]({% slug resizing_columns_grid %}).\n */\n this.autoSize = false;\n /**\n * If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells\n * ([see example]({% slug resizing_columns_grid %})).\n *\n * @default false\n */\n this.resizable = false;\n /**\n * If set to `true`, the user can reorder columns by dragging their header cells\n * ([see example]({% slug reordering_columns_grid %})).\n *\n * @default false\n */\n this.reorderable = false;\n /**\n * Specifies if the loading indicator of the Grid will be displayed ([see example]({% slug databinding_grid %})).\n *\n * @default false\n */\n this.loading = false;\n /**\n * Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_grid %})).\n *\n * @default false\n */\n this.columnMenu = false;\n /**\n * Specifies if the header of the grid will be hidden. The header is visible by default.\n *\n * > The header includes column headers and the [filter row]({% slug filtering_grid %}#toc-filter-row).\n */\n this.hideHeader = false;\n /**\n * Fires when the Grid filter is modified through the UI.\n * You have to handle the event yourself and filter the data.\n */\n this.filterChange = new EventEmitter();\n /**\n * Fires when the page of the Grid is changed ([see example]({% slug paging_grid %})).\n * You have to handle the event yourself and page the data.\n */\n this.pageChange = new EventEmitter();\n /**\n * Fires when the grouping of the Grid is changed.\n * You have to handle the event yourself and group the data ([see example]({% slug groupingbasics_grid %})).\n */\n this.groupChange = new ZoneAwareEventEmitter(this.ngZone);\n /**\n * Fires when the sorting of the Grid is changed ([see example]({% slug sorting_grid %})).\n * You have to handle the event yourself and sort the data.\n */\n this.sortChange = new EventEmitter();\n /**\n * Fires when the user selects a Grid row.\n * Emits the [`SelectionEvent`]({% slug api_grid_selectionevent %}#toc-selectionchange).\n */\n this.selectionChange = new EventEmitter();\n /**\n * Fires when the data state of the Grid is changed.\n */\n this.dataStateChange = new EventEmitter();\n /**\n * Fires when the user expands a group header.\n */\n this.groupExpand = new EventEmitter();\n /**\n * Fires when the user collapses a group header.\n */\n this.groupCollapse = new EventEmitter();\n /**\n * Fires when the user expands a master row.\n */\n this.detailExpand = new EventEmitter();\n /**\n * Fires when the user collapses a master row.\n */\n this.detailCollapse = new EventEmitter();\n /**\n * Fires when the user clicks the **Edit** command button to edit a row\n * ([see example]({% slug editing_template_forms_grid %}#toc-editing-records)).\n */\n this.edit = new EventEmitter();\n /**\n * Fires when the user clicks the **Cancel** command button to close a row\n * ([see example]({% slug editing_template_forms_grid %}#toc-cancelling-editing)).\n */\n this.cancel = new EventEmitter();\n /**\n * Fires when the user clicks the **Save** command button to save changes in a row\n * ([see example]({% slug editing_template_forms_grid %}#toc-saving-records)).\n */\n this.save = new EventEmitter();\n /**\n * Fires when the user clicks the **Remove** command button to remove a row\n * ([see example]({% slug editing_template_forms_grid %}#toc-removing-records)).\n */\n this.remove = new EventEmitter();\n /**\n * Fires when the user clicks the **Add** command button to add a new row\n * ([see example]({% slug editing_template_forms_grid %}#toc-adding-records)).\n */\n this.add = new EventEmitter();\n /**\n * Fires when the user leaves an edited cell ([see example]({% slug editing_incell_grid %}#toc-basic-concepts)).\n */\n this.cellClose = new EventEmitter();\n /**\n * Fires when the user clicks a cell ([see example]({% slug editing_incell_grid %}#toc-basic-concepts)).\n */\n this.cellClick = new ZoneAwareEventEmitter(this.ngZone);\n /**\n * Fires when the user clicks the **Export to PDF** command button.\n */\n this.pdfExport = new EventEmitter();\n /**\n * Fires when the user clicks the **Export to Excel** command button.\n */\n this.excelExport = new EventEmitter();\n /**\n * Fires when the user completes the resizing of the column.\n */\n this.columnResize = new ZoneAwareEventEmitter(this.ngZone);\n /**\n * Fires when the user completes the reordering of the column.\n */\n this.columnReorder = new EventEmitter();\n /**\n * Fires when the user changes the visibility of the columns from the column menu or column chooser.\n */\n this.columnVisibilityChange = new EventEmitter();\n /**\n * Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.\n */\n this.columnLockedChange = new EventEmitter();\n /**\n * Fires when the user scrolls to the last record on the page and enables endless scrolling\n * ([see example]({% slug scrollmmodes_grid %}#toc-endless-scrolling)).\n * You have to handle the event yourself and page the data.\n */\n this.scrollBottom = new EventEmitter();\n /**\n * Fires when the grid content is scrolled.\n * For performance reasons, the event is triggered outside the Angular zone. Enter the Angular zone if you make any changes that require change detection.\n */\n this.contentScroll = new EventEmitter();\n /**\n * A query list of all declared columns.\n */\n this.columns = new QueryList();\n this.footer = new QueryList();\n this.selectionDirective = false;\n this.columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {\n column.matchesMedia = this.matchesMedia(column);\n return column.isVisible;\n }));\n this.view = new DataCollection(() => new DataResultIterator(this.data, this.skip, this.hasGroupFooters));\n this.shouldGenerateColumns = true;\n this._sort = new Array();\n this._group = new Array();\n this._skip = 0;\n this.cachedWindowWidth = 0;\n this._rowSelected = null;\n this.rtl = false;\n this._rowClass = () => null;\n this.localizationSubscription = localization.changes.subscribe(({ rtl }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n });\n this.groupInfoService.registerColumnsContainer(() => this.columnList);\n this.columnInfoService.init(this.columnsContainer, () => this.columnList);\n this.columnVisibilityChangeSubscription = this.columnInfoService.visibilityChange.subscribe((changed) => {\n this.columnVisibilityChange.emit(new ColumnVisibilityChangeEvent(changed));\n });\n this.columnLockedChangeSubscription = this.columnInfoService.lockedChange.subscribe((changed) => {\n this.columnLockedChange.emit(new ColumnLockedChangeEvent(changed));\n });\n if (selectionService) {\n this.selectionSubscription = selectionService.changes.subscribe((event) => {\n this.ngZone.run(() => this.selectionChange.emit(event));\n });\n }\n this.groupExpandCollapseSubscription = handleExpandCollapseService(groupsService, this.groupExpand, this.groupCollapse, ({ dataItem: group, index }) => ({ group, groupIndex: index }));\n this.detailsServiceSubscription = handleExpandCollapseService(detailsService, this.detailExpand, this.detailCollapse, args => args);\n this.filterSubscription = this.filterService.changes.subscribe(x => {\n this.filterChange.emit(x);\n });\n this.sortSubscription = this.sortService.changes.subscribe(x => {\n this.sortChange.emit(x);\n });\n this.attachStateChangesEmitter();\n this.attachEditHandlers();\n this.attachDomEventHandlers();\n this.pdfSubscription = this.pdfService.exportClick.subscribe(this.emitPDFExportEvent.bind(this));\n this.excelSubscription = this.excelService.exportClick.subscribe(this.saveAsExcel.bind(this));\n this.columnsContainerChange();\n this.handleColumnResize();\n this.columnList = new ColumnList(this.columns);\n this.columnReorderSubscription = this.columnReorderService\n .changes.subscribe(this.reorder.bind(this));\n this.columnRangeChangeSubscription = this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this));\n }\n /**\n * Defines the number of records to be skipped by the pager.\n * Required by the [paging]({% slug paging_grid %}) functionality.\n */\n get skip() {\n return this._skip;\n }\n set skip(value) {\n if (value >= 0) {\n this._skip = value;\n }\n }\n /**\n * The descriptors by which the data will be sorted ([see example]({% slug sorting_grid %})).\n */\n set sort(value) {\n if (isArray(value)) {\n this._sort = value;\n }\n }\n get sort() {\n return this._sort;\n }\n /**\n * The descriptors by which the data will be grouped ([see example]({% slug groupingbasics_grid %})).\n */\n set group(value) {\n if (isArray(value)) {\n this._group = value;\n }\n }\n /**\n */\n get group() {\n return this._group;\n }\n /**\n * @hidden\n */\n get showTopToolbar() {\n return this.toolbarTemplate && ['top', 'both'].indexOf(this.toolbarTemplate.position) > -1;\n }\n /**\n * @hidden\n */\n get showBottomToolbar() {\n return this.toolbarTemplate && ['bottom', 'both'].indexOf(this.toolbarTemplate.position) > -1;\n }\n /**\n * @hidden\n */\n get isLocked() {\n return this.lockedLeafColumns.length > 0;\n }\n /**\n * @hidden\n */\n get showPager() {\n return !this.isVirtual && this.pageable !== false;\n }\n /**\n * @hidden\n */\n get showGroupPanel() {\n return this.groupable && this.groupable.enabled !== false;\n }\n /**\n * @hidden\n */\n get groupableEmptyText() {\n return this.groupable.emptyText;\n }\n /**\n * @hidden\n *\n * An alias for `navigable` for users who migrate from Kendo UI for jQuery.\n */\n set navigatable(value) {\n this.navigable = value;\n }\n /**\n * @hidden\n */\n get navigatable() {\n return this.navigable;\n }\n /**\n * Defines a function that is executed for every data row in the component.\n *\n * @example\n * ```ts\n * import { Component, ViewEncapsulation } from '@angular/core';\n * import { RowClassArgs } from '@progress/kendo-angular-grid';\n *\n * _@Component({\n * selector: 'my-app',\n * encapsulation: ViewEncapsulation.None,\n * styles: [`\n * .k-grid tr.even { background-color: #f45c42; }\n * .k-grid tr.odd { background-color: #41f4df; }\n * `],\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public gridData: any[] = products;\n *\n * public rowCallback(context: RowClassArgs) {\n * const isEven = context.index % 2 == 0;\n * return {\n * even: isEven,\n * odd: !isEven\n * };\n * }\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n * ```\n */\n set rowClass(fn) {\n if (typeof fn !== 'function') {\n throw new Error(`rowClass must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._rowClass = fn;\n }\n get rowClass() {\n return this._rowClass;\n }\n /**\n * Defines a Boolean function that is executed for each data row in the component\n * ([see example]({% slug selection_grid %}#toc-setting-the-selected-rows)).\n * Determines whether the row will be selected.\n */\n set rowSelected(fn) {\n if (typeof fn !== 'function') {\n throw new Error(`rowSelected must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._rowSelected = fn;\n }\n get rowSelected() {\n return this._rowSelected;\n }\n /**\n * Returns the currently focused cell (if any).\n */\n get activeCell() {\n return this.navigationService.activeCell;\n }\n /**\n * Returns the currently focused row (if any).\n */\n get activeRow() {\n return this.navigationService.activeRow;\n }\n get dir() {\n return this.direction;\n }\n get hostClasses() {\n return true;\n }\n get lockedClasses() {\n return this.lockedLeafColumns.length > 0;\n }\n get virtualClasses() {\n return this.isVirtual;\n }\n get noScrollbarClass() {\n return this.scrollbarWidth === 0;\n }\n get detailTemplate() {\n if (this._customDetailTemplate) {\n return this._customDetailTemplate;\n }\n return this.detailTemplateChildren ? this.detailTemplateChildren.first : undefined;\n }\n set detailTemplate(detailTemplate) {\n this._customDetailTemplate = detailTemplate;\n }\n get noRecordsTemplate() {\n if (this._customNoRecordsTemplate) {\n return this._customNoRecordsTemplate;\n }\n return this.noRecordsTemplateChildren ? this.noRecordsTemplateChildren.first : undefined;\n }\n set noRecordsTemplate(customNoRecordsTemplate) {\n this._customNoRecordsTemplate = customNoRecordsTemplate;\n }\n get pagerTemplate() {\n if (this._customPagerTemplate) {\n return this._customPagerTemplate;\n }\n return this.pagerTemplateChildren ? this.pagerTemplateChildren.first : undefined;\n }\n set pagerTemplate(customPagerTemplate) {\n this._customPagerTemplate = customPagerTemplate;\n }\n get toolbarTemplate() {\n if (this._customToolbarTemplate) {\n return this._customToolbarTemplate;\n }\n return this.toolbarTemplateChildren ? this.toolbarTemplateChildren.first : undefined;\n }\n set toolbarTemplate(customToolbarTemplate) {\n this._customToolbarTemplate = customToolbarTemplate;\n }\n get scrollbarWidth() {\n return this.supportService.scrollbarWidth;\n }\n get headerPadding() {\n if (isUniversal()) {\n return \"\";\n }\n const padding = Math.max(0, this.scrollbarWidth - 1) + 'px';\n const right = this.rtl ? 0 : padding;\n const left = this.rtl ? padding : 0;\n return `0 ${right} 0 ${left}`;\n }\n get hasGroupFooters() {\n return this.columnsContainer.hasGroupFooter;\n }\n get showFooter() {\n return this.columnsContainer.hasFooter;\n }\n get showGroupFooters() {\n return this.groupable && this.groupable.showFooter;\n }\n get ariaRowCount() {\n return this.totalColumnLevels + 1 + this.view.total;\n }\n get ariaColCount() {\n return this.columnsContainer.leafColumnsToRender.length;\n }\n get isVirtual() {\n return this.scrollable === 'virtual';\n }\n get isScrollable() {\n return this.scrollable !== 'none';\n }\n get visibleColumns() {\n return this.columnsContainer.allColumns;\n }\n get lockedColumns() {\n return this.columnsContainer.lockedColumns;\n }\n get nonLockedColumns() {\n return this.columnsContainer.nonLockedColumns;\n }\n get lockedLeafColumns() {\n return this.columnsContainer.lockedLeafColumns;\n }\n get nonLockedLeafColumns() {\n return this.columnsContainer.nonLockedLeafColumns;\n }\n get leafColumns() {\n return this.columnsContainer.leafColumns;\n }\n get totalColumnLevels() {\n return this.columnsContainer.totalLevels;\n }\n get headerColumns() {\n if (this.virtualColumns && !this.pdfService.exporting) {\n return this.viewportColumns;\n }\n return this.nonLockedColumns;\n }\n get headerLeafColumns() {\n if (this.virtualColumns && !this.pdfService.exporting) {\n return this.leafViewportColumns;\n }\n return this.nonLockedLeafColumns;\n }\n get lockedWidth() {\n const groupCellsWidth = this.group.length * GROUP_CELL_WIDTH;\n return expandColumns(this.lockedLeafColumns.toArray()).reduce((prev, curr) => prev + (curr.width || 0), groupCellsWidth);\n }\n get nonLockedWidth() {\n if ((!this.rtl && this.lockedLeafColumns.length) || this.virtualColumns) {\n return !this.virtualColumns ? this.columnsContainer.unlockedWidth :\n this.leafViewportColumns.reduce((acc, column) => acc + (column.width || 0), 0);\n }\n return undefined;\n }\n get selectableSettings() {\n if (this.selectionService) {\n return this.selectionService.options;\n }\n return undefined;\n }\n get columnMenuTemplate() {\n const template = this.columnMenuTemplates.first;\n return template ? template.templateRef : null;\n }\n get totalCount() {\n if (this.isVirtual || !isPresent(this.pageSize)) {\n return this.view.total;\n }\n return this.pageSize;\n }\n /**\n * Expands the specified master row ([see example]({% slug hierarchy_grid %})).\n *\n * This method is provided only for backwards-compatibility with legacy versions.\n * These versions tracked the expanded state internally using the data row index.\n *\n * For new development, use the [`kendoGridDetailsExpandBy` directive]({% slug api_grid_expanddetailsdirective %})\n * or provide an isDetailExpanded callback. See [Controlling the Expanded State]({% slug master_detail_expanded_state_grid %})\n * for examples on how to control the expanded state.\n *\n * @param index - The data row index of the master row.\n */\n expandRow(index) {\n this.toggleDetailRowLegacy(index, true);\n }\n /**\n * Collapses the specified master row ([see example]({% slug hierarchy_grid %})).\n *\n * This method is provided only for backwards-compatibility with legacy versions.\n * These versions tracked the expanded state internally using the data row index.\n *\n * For new development, use the [`kendoGridDetailsExpandBy` directive]({% slug api_grid_expanddetailsdirective %})\n * or provide an isDetailExpanded callback. See [Controlling the Expanded State]({% slug master_detail_expanded_state_grid %})\n * for examples on how to control the expanded state.\n *\n * @param index - The data row index of the master row.\n */\n collapseRow(index) {\n this.toggleDetailRowLegacy(index, false);\n }\n /**\n * Expands a group header item for the given index. For example,\n * `0_1` expands the second inner group of the first master group.\n *\n * > * When you use the [`kendoGridGroupBinding`]({% slug api_grid_groupbindingdirective %}) directive,\n * > the `expandGroup` method is not supported.\n * > * When a Grid is pageable, the indexes of the groups are offset by the current Grid [`skip`]({% slug api_grid_gridcomponent %}#toc-skip).\n *\n * @param {string} index - The underscore separated hierarchical index of the group.\n */\n expandGroup(index) {\n if (!this.groupsService.isExpanded(index)) {\n this.groupsService.toggleRow(index, null);\n }\n }\n /**\n * Collapses a group header item for the given index. For example,\n * `0_1` collapses the second inner group of the first master group.\n *\n * > * When you use the [`kendoGridGroupBinding`]({% slug api_grid_groupbindingdirective %}) directive,\n * > the `collapseGroup` method is not supported.\n * > * When a Grid is pageable, the indexes of the groups are offset by the current Grid [`skip`]({% slug api_grid_gridcomponent %}#toc-skip).\n *\n * @param {string} index - The underscore separated hierarchical index of the group.\n */\n collapseGroup(index) {\n if (this.groupsService.isExpanded(index)) {\n this.groupsService.toggleRow(index, null);\n }\n }\n /**\n * @hidden\n */\n resetGroupsState() {\n this.groupsService.reset();\n }\n /**\n * @hidden\n */\n expandGroupChildren(groupIndex) {\n this.groupsService.expandChildren(groupIndex);\n }\n /**\n * @hidden\n */\n onDataChange() {\n this.autoGenerateColumns();\n this.changeNotification.notify();\n this.pdfService.dataChanged.emit();\n if (isPresent(this.defaultSelection)) {\n this.defaultSelection.reset();\n }\n this.initSelectionService();\n this.updateNavigationMetadata();\n }\n ngOnChanges(changes) {\n if (isChanged(\"data\", changes)) {\n this.onDataChange();\n }\n if (this.lockedLeafColumns.length && anyChanged([\"pageSize\", \"skip\", \"sort\", \"group\"], changes)) {\n this.changeNotification.notify();\n }\n if (anyChanged([\"pageSize\", \"scrollable\", 'virtualColumns'], changes)) {\n this.updateNavigationMetadata();\n }\n if (isChanged(\"virtualColumns\", changes)) {\n this.viewportColumns = this.leafViewportColumns = null;\n }\n if (isChanged(\"height\", changes, false)) {\n this.renderer.setStyle(this.wrapper.nativeElement, 'height', `${this.height}px`);\n }\n if (isChanged(\"filterable\", changes) && this.lockedColumns.length) {\n this.syncHeaderHeight(this.ngZone.onStable.asObservable().pipe(take(1)));\n }\n if (anyChanged([\"columnMenu\", \"sortable\", \"filterable\"], changes, false)) {\n this.columnMenuOptions = this.columnMenu && Object.assign({\n filter: Boolean(this.filterable),\n sort: Boolean(this.sortable)\n }, this.columnMenu); // tslint:disable-line:align\n }\n if (isChanged(\"scrollable\", changes) && this.isScrollable) {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => this.attachScrollSync());\n }\n }\n ngAfterViewInit() {\n this.attachScrollSync();\n this.attachElementEventHandlers();\n this.updateNavigationMetadata();\n this.applyAutoSize();\n }\n ngAfterContentChecked() {\n this.columnsContainer.refresh();\n this.verifySettings();\n this.initSelectionService();\n }\n ngAfterContentInit() {\n this.shouldGenerateColumns = !this.columns.length;\n this.autoGenerateColumns();\n this.columnList = new ColumnList(this.columns);\n this.columnsChangeSubscription = this.columns.changes.subscribe(() => this.verifySettings());\n }\n ngOnInit() {\n if (this.navigable) {\n this.navigationService.init(this.navigationMetadata());\n }\n }\n ngOnDestroy() {\n if (this.selectionSubscription) {\n this.selectionSubscription.unsubscribe();\n }\n if (this.stateChangeSubscription) {\n this.stateChangeSubscription.unsubscribe();\n }\n if (this.groupExpandCollapseSubscription) {\n this.groupExpandCollapseSubscription.unsubscribe();\n }\n if (this.detailsServiceSubscription) {\n this.detailsServiceSubscription.unsubscribe();\n }\n if (this.editServiceSubscription) {\n this.editServiceSubscription.unsubscribe();\n }\n if (this.pdfSubscription) {\n this.pdfSubscription.unsubscribe();\n }\n if (this.filterSubscription) {\n this.filterSubscription.unsubscribe();\n }\n if (this.sortSubscription) {\n this.sortSubscription.unsubscribe();\n }\n if (this.columnsChangeSubscription) {\n this.columnsChangeSubscription.unsubscribe();\n }\n if (this.excelSubscription) {\n this.excelSubscription.unsubscribe();\n }\n if (this.columnsContainerChangeSubscription) {\n this.columnsContainerChangeSubscription.unsubscribe();\n }\n if (this.scrollSyncService) {\n this.scrollSyncService.destroy();\n }\n if (this.detachElementEventHandlers) {\n this.detachElementEventHandlers();\n }\n if (this.defaultSelection) {\n this.defaultSelection.destroy();\n }\n if (this.cellClickSubscription) {\n this.cellClickSubscription.unsubscribe();\n }\n if (this.footerChangeSubscription) {\n this.footerChangeSubscription.unsubscribe();\n }\n this.ngZone = null;\n if (this.columnResizingSubscription) {\n this.columnResizingSubscription.unsubscribe();\n }\n if (this.columnReorderSubscription) {\n this.columnReorderSubscription.unsubscribe();\n }\n if (this.localizationSubscription) {\n this.localizationSubscription.unsubscribe();\n }\n if (this.columnVisibilityChangeSubscription) {\n this.columnVisibilityChangeSubscription.unsubscribe();\n }\n if (this.columnLockedChangeSubscription) {\n this.columnLockedChangeSubscription.unsubscribe();\n }\n if (this.focusElementSubscription) {\n this.focusElementSubscription.unsubscribe();\n }\n this.columnRangeChangeSubscription.unsubscribe();\n }\n /**\n * @hidden\n */\n attachScrollSync() {\n if (isUniversal()) {\n return;\n }\n if (this.header) {\n this.scrollSyncService.registerEmitter(this.header.nativeElement, \"header\");\n }\n if (this.footer) {\n this.footerChangeSubscription = observe(this.footer)\n .subscribe(footers => footers\n .map(footer => footer.nativeElement)\n .filter(isPresent)\n .forEach(element => this.scrollSyncService.registerEmitter(element, \"footer\")));\n }\n }\n /**\n * Switches the specified table row in the edit mode ([see example]({% slug editing_template_forms_grid %}#toc-editing-records)).\n *\n * @param rowIndex - The data row index that will be switched in the edit mode.\n * @param group - The [`FormGroup`]({{ site.data.urls.angular['formgroupapi'] }})\n * that describes the edit form.\n * @param options - Additional options configuring the focus target once the editor opens.\n */\n editRow(rowIndex, group, options) {\n this.editService.editRow(rowIndex, group);\n if (isPresent(options) && options.skipFocus) {\n return;\n }\n const row = `tr[data-kendo-grid-item-index=\"${rowIndex}\"]`;\n const columnIndex = options && options.columnIndex;\n const target = isNaN(columnIndex) ? row : `${row} td[data-kendo-grid-column-index=\"${columnIndex}\"]`;\n this.focusEditElement(target);\n }\n /**\n * Closes the editor for a given row ([see example]({% slug editing_template_forms_grid %}#toc-cancelling-editing)).\n *\n * @param {number} index - The row index that will be switched out of the edit mode. If no index is provided, it is assumed\n * that the new item editor will be closed.\n */\n closeRow(index) {\n this.editService.close(index);\n }\n /**\n * Creates a new row editor ([see example]({% slug editing_template_forms_grid %}#toc-adding-records)).\n *\n * @param {FormGroup} group - The [`FormGroup`]({{ site.data.urls.angular['formgroupapi'] }}) that describes\n * the edit form. If called with a data item, it will build the `FormGroup` from the data item fields.\n */\n addRow(group) {\n const isFormGroup = group instanceof FormGroup;\n if (!isFormGroup) {\n const fields = Object.keys(group).reduce(createControl(group), {}); // FormBuilder?\n group = new FormGroup(fields);\n }\n this.editService.addRow(group);\n this.focusEditElement('.k-grid-add-row');\n }\n /**\n * Puts the cell that is specified by the table row and column in edit mode.\n *\n * @param {number} rowIndex - The data row index that will be switched in the edit mode.\n * @param {number|string|any} column - The leaf column index, or the field name or the column instance that should be edited.\n * @param {FormGroup} group - The [`FormGroup`]({{ site.data.urls.angular['formgroupapi'] }})\n * that describes the edit form.\n */\n editCell(rowIndex, column, group) {\n const instance = this.columnInstance(column);\n this.editService.editCell(rowIndex, instance, group);\n this.focusEditElement('.k-grid-edit-cell');\n }\n /**\n * Closes the current cell in edit mode and fires\n * the [`cellClose`]({% slug api_grid_gridcomponent %}#toc-cellclose) event.\n *\n * @return {boolean} Indicates whether the edited cell was closed.\n * A `false` value indicates that the\n * [`cellClose`]({% slug api_grid_gridcomponent %}#toc-cellclose) event was prevented.\n */\n closeCell() {\n return !this.editService.closeCell();\n }\n /**\n * Closes the current cell in edit mode.\n */\n cancelCell() {\n this.editService.cancelCell();\n }\n /**\n * Returns a flag which indicates if a row or a cell is currently edited.\n *\n * @return {boolean} A flag which indicates if a row or a cell is currently edited.\n */\n isEditing() {\n return this.editService.isEditing();\n }\n /**\n * Returns a flag which indicates if a cell is currently edited.\n *\n * @return {boolean} A flag which indicates if a cell is currently being edited.\n */\n isEditingCell() {\n return this.editService.isEditingCell();\n }\n /**\n * Initiates the PDF export ([see example]({% slug pdfexport_grid %})).\n */\n saveAsPDF() {\n this.pdfService.save(this);\n }\n /**\n * Exports the Grid element to a Drawing [`Group`]({% slug api_kendo-drawing_group %}) by using the `kendo-grid-pdf` component options.\n * ([see example]({% slug pdfexport_grid %}#toc-exporting-multiple-grids-to-the-same-pdf)).\n *\n * @return {Promise} - A promise that will be resolved with the Drawing `Group`.\n */\n drawPDF() {\n const promise = createPromise();\n this.pdfService.draw(this, promise);\n return promise;\n }\n /**\n * Initiates the Excel export ([see example]({% slug excelexport_grid %})).\n */\n saveAsExcel() {\n this.excelService.save(this);\n }\n /**\n * Applies the minimum possible width for the specified column,\n * so that the whole text fits without wrapping. This method expects the Grid\n * to be resizable (set `resizable` to `true`).\n * Makes sense to execute this method only\n * after the Grid is already populated with data.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n *\n * \n * \n * \n *\n * \n * \n *
\n * `\n * })\n * class AppComponent {\n * public gridData: any[] = products;\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n * ```\n */\n autoFitColumn(column) {\n this.columnResizingService.autoFit(column);\n }\n /**\n * Adjusts the width of the specified columns to fit the entire content, including headers, without wrapping.\n * If no columns are specified, `autoFitColumns` is applied to all columns.\n *\n * This method requires the Grid to be resizable (set `resizable` to `true`).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n *\n * \n * \n * \n *\n * \n * \n * \n * `\n * })\n * class AppComponent {\n * public gridData: any[] = products;\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n * ```\n */\n autoFitColumns(columns = this.columns) {\n let cols;\n if (columns instanceof QueryList) {\n cols = columns.toArray();\n }\n else {\n cols = columns;\n }\n this.columnResizingService.autoFit(...cols);\n }\n /**\n * @hidden\n */\n notifyPageChange(source, event) {\n if (source === \"list\" && !this.isVirtual) {\n return;\n }\n this.pageChange.emit(event);\n }\n /**\n * @hidden\n */\n notifyScrollBottom() {\n if (this.scrollable === 'none') {\n return;\n }\n if (hasObservers(this.scrollBottom)) {\n this.ngZone.run(() => this.scrollBottom.emit({ sender: this }));\n }\n }\n /**\n * @hidden\n */\n focusEditElement(containerSelector) {\n if (this.focusElementSubscription) {\n this.focusElementSubscription.unsubscribe();\n }\n this.ngZone.runOutsideAngular(() => {\n this.focusElementSubscription = this.ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n const wrapper = this.wrapper.nativeElement;\n if (!this.setEditFocus(wrapper.querySelector(containerSelector)) && this.isLocked) {\n this.setEditFocus(wrapper.querySelector(`.k-grid-content ${containerSelector}`));\n }\n this.focusElementSubscription = null;\n });\n });\n }\n /**\n * Focuses the last active or the first cell of the Grid.\n *\n * @returns {NavigationCell} The focused cell.\n */\n focus() {\n this.assertNavigable();\n return this.navigationService.focusCell();\n }\n /**\n * Focuses the cell with the specified row and column index.\n *\n * The row index is based on the logical structure of the Grid and does not correspond to the data item index:\n * * Header rows are included, starting at index 0.\n * * Group headers and footers are included.\n * * The row indexing is absolute and does not change with paging.\n *\n * If the Grid is configured for scrolling, including virtual scrolling, the scroll position will be updated.\n * If the row is not present on the current page, the method will have no effect.\n *\n * @param rowIndex - The logical row index to focus. The top header row has an index 0.\n * @param colIndex - The column index to focus.\n * @returns {NavigationCell} The focused cell.\n *\n */\n focusCell(rowIndex, colIndex) {\n this.assertNavigable();\n return this.navigationService.focusCell(rowIndex, colIndex);\n }\n /**\n * Focuses the next cell, optionally wrapping to the next row.\n *\n * @param wrap - A Boolean value which indicates if the focus will move to the next row. Defaults to `true`.\n * @returns {NavigationCell} The focused cell. If the focus is already on the last cell, returns `null`.\n */\n focusNextCell(wrap = true) {\n this.assertNavigable();\n return this.navigationService.focusNextCell(wrap);\n }\n /**\n * Focuses the previous cell. Optionally wraps to the previous row.\n *\n * @param wrap - A Boolean value which indicates if the focus will move to the next row. Defaults to `true`.\n * @returns {NavigationCell} The focused cell. If the focus is already on the first cell, returns `null`.\n */\n focusPrevCell(wrap = true) {\n this.assertNavigable();\n return this.navigationService.focusPrevCell(wrap);\n }\n /**\n * Scrolls to the specified row and column\n */\n scrollTo(request) {\n this.scrollRequestService.scrollTo(request);\n }\n /**\n * Changes the position of the specified column.\n * The reordering of columns operates only on the level\n * which is inferred by the source column.\n * For the `reorderColumn` method to work properly,\n * the `source` column has to be visible.\n *\n * @param {ColumnBase} source - The column whose position will be changed.\n * @param {number} destIndex - The new position of the column.\n * @param {ColumnReorderConfig} options - Additional options.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n *\n * \n * \n * \n *\n * \n * \n *\n * \n * \n * \n * `\n * })\n * class AppComponent {\n * public gridData: any[] = products;\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n * ```\n */\n reorderColumn(source, destIndex, options = { before: false }) {\n const columnsForLevel = this.columnsForLevel(source.level);\n let target = columnsForLevel[destIndex];\n if (!target) {\n return;\n }\n const lastNonLocked = target.isLocked &&\n !source.isLocked &&\n this.columnsContainer.nonLockedColumns.length === 1;\n if (lastNonLocked) {\n return;\n }\n if (isSpanColumnComponent(target) && !options.before) {\n target = target.childColumns.last;\n }\n this.reorder({\n before: options.before,\n source: source,\n target: target\n });\n }\n /**\n * A function which determines if a specific row is expanded.\n */\n set isDetailExpanded(callback) {\n this.detailsService.userCallback = callback;\n }\n get isDetailExpanded() {\n return this.detailsService.userCallback;\n }\n /**\n * @hidden\n */\n reorder({ target, source, before, changeContainer }) {\n this.ngZone.run(() => {\n const columnsForLevel = this.columnsForLevel(source.level);\n let newIndex = columnsForLevel.indexOf(target);\n if (target.parent && target.parent.isSpanColumn) {\n newIndex = columnsForLevel.indexOf(target.parent);\n if (before) {\n target = target.parent;\n }\n }\n let oldIndex = columnsForLevel.indexOf(source);\n if (changeContainer) {\n if (before && 0 < newIndex && oldIndex < newIndex) { // dropped before the first not locked column\n newIndex--;\n }\n else if (!before && oldIndex > newIndex) { // dropped after the last locked column\n newIndex++;\n }\n }\n const args = new ColumnReorderEvent({\n column: source,\n oldIndex: oldIndex,\n newIndex: newIndex\n });\n this.columnReorder.emit(args);\n if (args.isDefaultPrevented()) {\n return;\n }\n if (changeContainer) {\n this.columnLockedChange.emit(new ColumnLockedChangeEvent([source]));\n }\n this.updateColumnIndices({ source, target, before });\n if (source.locked !== target.locked) {\n source.locked = target.locked;\n }\n this.columnsContainer.refresh();\n this.changeDetectorRef.markForCheck();\n });\n }\n updateColumnIndices({ source, target, before }) {\n const expandedColumns = expandColumnsWithSpan(this.columnsForLevel(source.level));\n const sourceColumnIndex = expandedColumns.indexOf(source);\n let nextSourceIndex = 0;\n let nextIndex = 0;\n let toSkip = 1;\n // Possible only when called from the API.\n if (source.isSpanColumn) {\n toSkip += source.childColumns.length;\n }\n let i = 0;\n while (i < expandedColumns.length) {\n let column = expandedColumns[i];\n if (column === target) {\n nextSourceIndex = before ? nextIndex : nextIndex + 1;\n nextIndex = before ? nextIndex + toSkip : nextIndex;\n column.orderIndex = nextIndex;\n if (nextSourceIndex === nextIndex + 1) {\n nextIndex += toSkip;\n }\n }\n else if (column === source) {\n i += toSkip;\n continue;\n }\n else {\n column.orderIndex = nextIndex;\n }\n nextIndex++;\n i++;\n }\n for (i = sourceColumnIndex; i < sourceColumnIndex + toSkip; i++) {\n expandedColumns[i].orderIndex = nextSourceIndex++;\n }\n this.updateIndicesForLevel(source.level + 1);\n }\n updateIndicesForLevel(level) {\n const colsForParentLevel = this.columnsForLevel(level - 1);\n const colsForLevel = [];\n sortColumns(colsForParentLevel).forEach((c) => {\n if (c.isColumnGroup) {\n colsForLevel.push(...c.childrenArray.sort((a, b) => a.orderIndex - b.orderIndex));\n }\n });\n expandColumnsWithSpan(colsForLevel).map((c, i) => c.orderIndex = i);\n if (level < this.columnsContainer.totalLevels) {\n this.updateIndicesForLevel(level + 1);\n }\n }\n columnsForLevel(level) {\n return this.columnsContainer\n .allColumns.filter(column => column.level === level);\n }\n initSelectionService() {\n if (!this.selectionDirective && !isPresent(this.defaultSelection)) {\n this.defaultSelection = new Selection(this, this.changeDetectorRef);\n }\n this.selectionService.init({\n rowSelected: this.rowSelected,\n selectable: this.selectable,\n view: this.view\n });\n if (!this.selectionDirective && !this.selectableSettings.enabled) {\n this.defaultSelection.reset();\n }\n }\n setEditFocus(element) {\n if (element) {\n return this.navigationService.tryFocus(element);\n }\n }\n columnInstance(column) {\n let instance;\n if (typeof column === 'number') {\n instance = this.columnsContainer.lockedLeafColumns.toArray()\n .concat(this.columnsContainer.nonLockedLeafColumns.toArray())[column];\n }\n else if (typeof column === 'string') {\n instance = this.columnList.filter((item) => item.field === column)[0];\n }\n else {\n instance = column;\n }\n if (!instance && isDevMode()) {\n throw new Error(`Invalid column ${column}`);\n }\n return instance;\n }\n verifySettings() {\n if (isDevMode()) {\n const locked = this.lockedLeafColumns.length || (this.columnMenu && this.columnMenu.lock);\n if (locked && this.detailTemplate) {\n throw new Error('Having both detail template and locked columns is not supported.');\n }\n if (this.lockedLeafColumns.length && !this.nonLockedLeafColumns.length) {\n throw new Error('There should be at least one non-locked column');\n }\n if ((locked || this.virtualColumns) && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {\n throw new Error((locked ? 'Locked' : 'Virtual') + ' columns feature requires all columns to have set width.');\n }\n if (locked && !this.isScrollable) {\n throw new Error('Locked columns are only supported when scrolling is enabled.');\n }\n if (this.columnList.filter(isColumnGroupComponent).filter((x) => !x.hasChildren).length) {\n throw new Error('ColumnGroupComponent should contain ColumnComponent or CommandColumnComponent.');\n }\n if (this.columnList.filter(x => x.locked && x.parent && !x.parent.isLocked).length) {\n throw new Error('Locked child columns require their parent columns to be locked.');\n }\n if ((this.rowHeight || this.detailRowHeight) && !this.isVirtual) {\n throw new Error('Row height and detail row height settings require virtual scrolling mode to be enabled.');\n }\n validateColumnsField(this.columnList);\n }\n }\n autoGenerateColumns() {\n if (this.shouldGenerateColumns && !this.columns.length && this.view.length) {\n this.columns.reset(Object.keys(this.view.at(0)).map(field => {\n let column = new ColumnComponent();\n column.field = field;\n return column;\n }));\n }\n }\n attachStateChangesEmitter() {\n this.stateChangeSubscription =\n merge(this.pageChange.pipe(map(x => ({\n filter: this.filter, group: this.group, skip: x.skip, sort: this.sort, take: x.take\n }))), this.sortChange.pipe(map(sort => ({ filter: this.filter, group: this.group, skip: this.skip, sort: sort, take: this.pageSize }))), this.groupChange.pipe(map(group => ({\n filter: this.filter, group: group, skip: this.skip, sort: this.sort, take: this.pageSize\n }))), this.filterChange.pipe(map(filter$$1 => ({\n filter: filter$$1, group: this.group, skip: 0, sort: this.sort, take: this.pageSize\n }))))\n .subscribe(x => {\n this.closeCell();\n this.cancelCell();\n this.dataStateChange.emit(x);\n });\n }\n attachEditHandlers() {\n if (!this.editService) {\n return;\n }\n this.editServiceSubscription = this.editService\n .changes.subscribe(this.emitCRUDEvent.bind(this));\n }\n emitCRUDEvent(args) {\n const { action, rowIndex, formGroup } = args;\n let dataItem = this.view.at(rowIndex - this.skip);\n if (action !== 'add' && !dataItem) {\n dataItem = formGroup.value;\n }\n this.closeCell();\n Object.assign(args, {\n dataItem: dataItem,\n sender: this\n });\n switch (action) {\n case 'add':\n this.add.emit(args);\n break;\n case 'cancel':\n this.cancel.emit(args);\n break;\n case 'edit':\n this.edit.emit(args);\n break;\n case 'remove':\n this.remove.emit(args);\n break;\n case 'save':\n this.save.emit(args);\n break;\n case 'cellClose':\n this.cellClose.emit(args);\n break;\n default: break;\n }\n }\n attachDomEventHandlers() {\n this.cellClickSubscription = this.domEvents.cellClick.subscribe((args) => {\n this.cellClick.emit(Object.assign({ sender: this }, args));\n });\n }\n attachElementEventHandlers() {\n if (isUniversal()) {\n return;\n }\n const wrapper = this.wrapper.nativeElement;\n const ariaRoot = this.ariaRoot.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n const resizeCheck = this.resizeCheck.bind(this);\n const resizeSubscription = this.renderer.listen('window', 'resize', resizeCheck);\n const orientationSubscription = this.renderer.listen('window', 'orientationchange', resizeCheck);\n const documentClickSubscription = this.renderer.listen('document', 'click', (args) => {\n const activeElement = document.activeElement;\n if (this.editService.shouldCloseCell() &&\n !closest(args.target, matchesClasses('k-animation-container k-grid-ignore-click')) &&\n !(activeElement &&\n (closest(activeElement, matchesClasses('k-animation-container')) ||\n isInEditedCell(activeElement, this.wrapper.nativeElement)))) {\n this.editService.closeCell(args);\n }\n });\n const windowBlurSubscription = this.renderer.listen('window', 'blur', (args) => {\n const activeElement = document.activeElement;\n if (activeElement && !(matchesNodeName('input')(activeElement) && activeElement.type === 'file' &&\n isInEditedCell(activeElement, this.wrapper.nativeElement))) {\n this.editService.closeCell(args);\n }\n this.domEvents.windowBlur.emit(args);\n });\n const clickSubscription = this.renderer.listen(wrapper, 'click', (args) => {\n this.domEvents.click.emit(args);\n });\n const keydownSubscription = this.renderer.listen(wrapper, 'keydown', (args) => {\n this.domEvents.keydown.emit(args);\n });\n // focusIn and focusOut are relative to the element with ARIA role \"grid\"\n let focused = false;\n const focusInSubscription = this.renderer.listen(ariaRoot, 'focusin', (args) => {\n this.domEvents.focus.emit(args);\n if (!focused) {\n this.domEvents.focusIn.emit(args);\n focused = true;\n }\n });\n const focusOutSubscription = this.renderer.listen(ariaRoot, 'focusout', (args) => {\n const next = args.relatedTarget || document.activeElement;\n const outside = !closest(next, (node) => node === ariaRoot);\n if (outside) {\n this.domEvents.focusOut.emit(args);\n focused = false;\n }\n });\n this.detachElementEventHandlers = () => {\n resizeSubscription();\n orientationSubscription();\n documentClickSubscription();\n windowBlurSubscription();\n clickSubscription();\n keydownSubscription();\n focusInSubscription();\n focusOutSubscription();\n };\n });\n }\n matchesMedia(c) {\n return this.responsiveService.matchesMedia(c.media);\n }\n resizeCheck() {\n if (window.innerWidth !== this.cachedWindowWidth) {\n this.cachedWindowWidth = window.innerWidth;\n let hasChanges = false;\n this.columnList.filterHierarchy(column => {\n const matchesMedia = this.matchesMedia(column);\n if (column.matchesMedia !== matchesMedia) {\n hasChanges = true;\n column.matchesMedia = matchesMedia;\n }\n return column.isVisible;\n });\n if (hasChanges) {\n this.ngZone.run(() => {\n this.changeDetectorRef.markForCheck();\n });\n }\n }\n }\n emitPDFExportEvent() {\n const args = new PDFExportEvent();\n this.pdfExport.emit(args);\n if (!args.isDefaultPrevented()) {\n this.saveAsPDF();\n }\n }\n syncHeaderHeight(observable) {\n return observable\n .pipe(filter(() => isPresent(this.lockedHeader)))\n .subscribe(() => syncRowsHeight(this.lockedHeader.nativeElement.children[0], this.header.nativeElement.children[0]));\n }\n columnsContainerChange() {\n this.columnsContainerChangeSubscription =\n this.syncHeaderHeight(this.columnsContainer.changes.pipe(filter(() => this.lockedColumns.length > 0), switchMap(() => this.ngZone.onStable.asObservable().pipe(take(1)))));\n }\n handleColumnResize() {\n const resizes = this.columnResizingService.changes;\n this.columnResizingSubscription = resizes.pipe(tap(e => {\n if (e.type === 'start') {\n this.renderer.addClass(this.wrapper.nativeElement, 'k-grid-column-resizing');\n }\n else if (e.type === 'end') {\n this.renderer.removeClass(this.wrapper.nativeElement, 'k-grid-column-resizing');\n }\n }), filter(e => e.type === 'start'), switchMap(() => resizes.pipe(\n // tslint:disable-next-line: rxjs-no-unsafe-takeuntil\n takeUntil(resizes.pipe(filter(e => e.type === 'triggerAutoFit'))), filter(e => e.type === 'end'))))\n .subscribe(this.notifyResize.bind(this));\n }\n notifyResize(e) {\n const args = e.resizedColumns\n .filter(item => isTruthy(item.column.resizable) && !item.column.isColumnGroup)\n .map(item => ({\n column: item.column,\n newWidth: item.column.width,\n oldWidth: item.oldWidth\n }));\n this.columnResize.emit(args);\n }\n assertNavigable() {\n if (isDevMode() && !this.navigable) {\n throw new Error('The Grid should be configured as [navigable]=\"true\" to control focus');\n }\n }\n navigationMetadata() {\n const isVirtual = this.isVirtual;\n const pageSize = this.pageSize;\n const dataRows = isVirtual ? this.view.total : pageSize;\n const addRowOffset = this.editService.hasNewItem ? 1 : 0;\n const filterRowOffset = hasFilterRow(this.filterable) ? 1 : 0;\n const headerRows = this.totalColumnLevels + 1 + filterRowOffset + addRowOffset;\n return new NavigationMetadata(dataRows, headerRows, isVirtual, this.showPager, isPresent(this.detailTemplate), this.wrapper, this.virtualColumns, this.columnsContainer);\n }\n updateNavigationMetadata() {\n this.navigationService.metadata = this.navigationMetadata();\n }\n applyAutoSize() {\n const cols = this.columns.filter((c) => this.autoSize ? c.autoSize !== false : c.autoSize);\n if (cols.length > 0) {\n this.ngZone.onStable.pipe(take(1)).subscribe(_ => this.autoFitColumns(cols));\n }\n }\n onColumnRangeChange(range) {\n const viewportColumns = this.viewportColumns = [];\n const leafViewportColumns = this.columnsContainer\n .nonLockedLeafColumns.toArray().slice(range.start, range.end + 1);\n for (let idx = 0; idx < leafViewportColumns.length; idx++) {\n let column = leafViewportColumns[idx];\n while (column.parent) {\n column = column.parent;\n }\n const toAdd = [column];\n while (toAdd.length) {\n column = toAdd.shift();\n viewportColumns.push(column);\n if (column.isColumnGroup) {\n toAdd.unshift.apply(toAdd, column.childrenArray);\n }\n }\n const lastFromGroup = viewportColumns[viewportColumns.length - 1];\n column = leafViewportColumns[idx];\n while (column !== lastFromGroup && idx < leafViewportColumns.length) {\n idx++;\n column = leafViewportColumns[idx];\n }\n }\n if (range.start > 0) {\n const first = leafViewportColumns[0];\n let offset = range.offset;\n let current = viewportColumns[0];\n let index = 0;\n while (current !== first) {\n offset -= current.isColumnGroup ? 0 : current.width;\n index++;\n current = viewportColumns[index];\n }\n if (offset > 0) {\n const totalLevels = this.columnsContainer.totalLevels;\n let previous;\n for (let idx = 0; idx <= totalLevels; idx++) {\n const offsetColumn = idx < totalLevels ? new ColumnGroupComponent(previous) : new ColumnBase$1(previous);\n previous = offsetColumn;\n offsetColumn.title = \"\\u00A0\";\n offsetColumn.width = offset;\n viewportColumns.unshift(offsetColumn);\n }\n }\n }\n this.leafViewportColumns = viewportColumns.filter(c => !c.isColumnGroup);\n }\n toggleDetailRowLegacy(index, expand) {\n const hasCallback = typeof this.isDetailExpanded === 'function';\n if (isDevMode() && hasCallback) {\n throw new Error('The expandRow and collapseRow methods should not be called when using the ' +\n 'kendoGridDetailsExpandBy directive or the isDetailExpanded callback. ' +\n 'These methods are provided only for backwards compatibility with legacy versions.');\n }\n if (!isDevMode() && hasCallback) {\n return;\n }\n if (this.detailsService.isExpanded(index, null) !== expand) {\n this.detailsService.toggleRow(index, null);\n }\n }\n}\nGridComponent.decorators = [\n { type: Component, args: [{\n encapsulation: ViewEncapsulation.None,\n exportAs: 'kendoGrid',\n providers: [\n BrowserSupportService,\n LocalizationService,\n ColumnInfoService,\n SelectionService,\n DetailsService,\n GroupsService,\n GroupInfoService,\n ChangeNotificationService,\n EditService,\n PDFService,\n SuspendService,\n {\n provide: CELL_CONTEXT,\n useValue: ɵ4$2\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.grid'\n },\n FilterService,\n ResponsiveService,\n PagerContextService,\n ExcelService,\n ScrollSyncService,\n ResizeService,\n LocalDataChangesService,\n DomEventsService,\n ColumnResizingService,\n SinglePopupService,\n DragAndDropService,\n DragHintService,\n DropCueService,\n ColumnReorderService,\n NavigationService,\n FocusRoot,\n IdService,\n ScrollRequestService,\n SortService\n ],\n selector: 'kendo-grid',\n styles: [\n // Styles for backwards compatibility with kendo-theme-default@v2.46.0 and earlier.\n ` .k-grid .k-grid-aria-root {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n overflow: hidden;\n }\n\n .k-grid .k-filter-row td {\n white-space: nowrap;\n }`\n ],\n template: `\n \n \n \n \n \n
\n \n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nGridComponent.ctorParameters = () => [\n { type: BrowserSupportService },\n { type: SelectionService },\n { type: ElementRef },\n { type: GroupInfoService },\n { type: GroupsService },\n { type: ChangeNotificationService },\n { type: DetailsService },\n { type: EditService },\n { type: FilterService },\n { type: PDFService },\n { type: ResponsiveService },\n { type: Renderer2 },\n { type: ExcelService },\n { type: NgZone },\n { type: ScrollSyncService },\n { type: DomEventsService },\n { type: ColumnResizingService },\n { type: ChangeDetectorRef },\n { type: ColumnReorderService },\n { type: ColumnInfoService },\n { type: NavigationService },\n { type: SortService },\n { type: ScrollRequestService },\n { type: LocalizationService }\n];\nGridComponent.propDecorators = {\n data: [{ type: Input }],\n pageSize: [{ type: Input }],\n height: [{ type: Input }],\n rowHeight: [{ type: Input }],\n detailRowHeight: [{ type: Input }],\n skip: [{ type: Input }],\n scrollable: [{ type: Input }],\n selectable: [{ type: Input }],\n sort: [{ type: Input }],\n trackBy: [{ type: Input }],\n filter: [{ type: Input }],\n group: [{ type: Input }],\n virtualColumns: [{ type: Input }],\n filterable: [{ type: Input }],\n sortable: [{ type: Input }],\n pageable: [{ type: Input }],\n groupable: [{ type: Input }],\n navigable: [{ type: Input }],\n navigatable: [{ type: Input }],\n autoSize: [{ type: Input }],\n rowClass: [{ type: Input }],\n rowSelected: [{ type: Input }],\n resizable: [{ type: Input }],\n reorderable: [{ type: Input }],\n loading: [{ type: Input }],\n columnMenu: [{ type: Input }],\n hideHeader: [{ type: Input }],\n filterChange: [{ type: Output }],\n pageChange: [{ type: Output }],\n groupChange: [{ type: Output }],\n sortChange: [{ type: Output }],\n selectionChange: [{ type: Output }],\n dataStateChange: [{ type: Output }],\n groupExpand: [{ type: Output }],\n groupCollapse: [{ type: Output }],\n detailExpand: [{ type: Output }],\n detailCollapse: [{ type: Output }],\n edit: [{ type: Output }],\n cancel: [{ type: Output }],\n save: [{ type: Output }],\n remove: [{ type: Output }],\n add: [{ type: Output }],\n cellClose: [{ type: Output }],\n cellClick: [{ type: Output }],\n pdfExport: [{ type: Output }],\n excelExport: [{ type: Output }],\n columnResize: [{ type: Output }],\n columnReorder: [{ type: Output }],\n columnVisibilityChange: [{ type: Output }],\n columnLockedChange: [{ type: Output }],\n scrollBottom: [{ type: Output }],\n contentScroll: [{ type: Output }],\n columns: [{ type: ContentChildren, args: [ColumnBase$1,] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-grid',] }],\n lockedClasses: [{ type: HostBinding, args: ['class.k-grid-lockedcolumns',] }],\n virtualClasses: [{ type: HostBinding, args: ['class.k-grid-virtual',] }],\n noScrollbarClass: [{ type: HostBinding, args: ['class.k-grid-no-scrollbar',] }],\n detailTemplateChildren: [{ type: ContentChildren, args: [DetailTemplateDirective,] }],\n noRecordsTemplateChildren: [{ type: ContentChildren, args: [NoRecordsTemplateDirective,] }],\n pagerTemplateChildren: [{ type: ContentChildren, args: [PagerTemplateDirective,] }],\n toolbarTemplateChildren: [{ type: ContentChildren, args: [ToolbarTemplateDirective,] }],\n columnMenuTemplates: [{ type: ContentChildren, args: [ColumnMenuTemplateDirective,] }],\n lockedHeader: [{ type: ViewChild, args: [\"lockedHeader\",] }],\n header: [{ type: ViewChild, args: [\"header\",] }],\n footer: [{ type: ViewChildren, args: [\"footer\",] }],\n ariaRoot: [{ type: ViewChild, args: ['ariaRoot',] }],\n isDetailExpanded: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nconst update = (arr, idx, value) => ([\n ...arr.slice(0, idx + 1),\n ...(arr.slice(idx + 1).map(x => x + value))\n]);\n/**\n * @hidden\n */\nclass RowHeightService {\n constructor(total = 0, rowHeight, detailRowHeight) {\n this.total = total;\n this.rowHeight = rowHeight;\n this.detailRowHeight = detailRowHeight;\n this.offsets = [];\n this.heights = [];\n let agg = 0;\n for (let idx = 0; idx < total; idx++) {\n this.offsets.push(agg);\n agg += rowHeight;\n this.heights.push(rowHeight);\n }\n }\n height(rowIndex) {\n return this.heights[rowIndex];\n }\n expandDetail(rowIndex) {\n if (this.height(rowIndex) === this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight);\n }\n }\n collapseDetail(rowIndex) {\n if (this.height(rowIndex) > this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight * -1);\n }\n }\n isExpanded(rowIndex) {\n return this.height(rowIndex) > this.rowHeight;\n }\n index(position) {\n if (position < 0) {\n return undefined;\n }\n const result = this.offsets.reduce((prev, current, idx) => {\n if (prev !== undefined) {\n return prev;\n }\n else if (current === position) {\n return idx;\n }\n else if (current > position) {\n return idx - 1;\n }\n return undefined;\n }, undefined); // tslint:disable-line:align\n return result === undefined ? this.total - 1 : result;\n }\n offset(rowIndex) {\n return this.offsets[rowIndex];\n }\n totalHeight() {\n return this.heights.reduce((prev, curr) => prev + curr, 0);\n }\n updateRowHeight(rowIndex, value) {\n if (this.total > 0) {\n this.heights[rowIndex] += value;\n this.offsets = update(this.offsets, rowIndex, value);\n }\n }\n}\n\n/**\n * @hidden\n */\nclass ScrollAction {\n constructor(offset) {\n this.offset = offset;\n }\n}\n/**\n * @hidden\n */\nclass PageAction {\n constructor(skip, take$$1) {\n this.skip = skip;\n this.take = take$$1;\n }\n}\n/**\n * @hidden\n */\nclass ScrollBottomAction {\n}\nconst SCROLL_BOTTOM_THRESHOLD = 1;\n/**\n * @hidden\n */\nclass ScrollerService {\n constructor(scrollObservable) {\n this.scrollObservable = scrollObservable;\n this.firstLoaded = 0;\n }\n create(rowHeightService, skip, take$$1, total) {\n this.rowHeightService = rowHeightService;\n this.firstLoaded = skip;\n this.lastLoaded = skip + take$$1;\n this.take = take$$1;\n this.total = total;\n this.lastScrollTop = 0;\n const subject = new BehaviorSubject(new ScrollAction(this.rowHeightService.offset(skip)));\n this.subscription = Observable.create(observer => {\n this.unsubscribe();\n this.scrollSubscription = this.scrollObservable.subscribe(x => this.onScroll(x, observer));\n }).subscribe(x => subject.next(x));\n return subject;\n }\n destroy() {\n this.unsubscribe();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n onScroll({ scrollTop, offsetHeight, scrollHeight, clientHeight }, observer) {\n if (this.lastScrollTop === scrollTop) {\n return;\n }\n const up = this.lastScrollTop >= scrollTop;\n this.lastScrollTop = scrollTop;\n let firstItemIndex = this.rowHeightService.index(scrollTop);\n let firstItemOffset = this.rowHeightService.offset(firstItemIndex);\n const lastItemIndex = this.rowHeightService.index(scrollTop + offsetHeight);\n if (!up) {\n if (lastItemIndex >= this.lastLoaded && this.lastLoaded < this.total) {\n const overflow = (firstItemIndex + this.take) - this.total;\n if (overflow > 0) {\n firstItemIndex = firstItemIndex - overflow;\n firstItemOffset = this.rowHeightService.offset(firstItemIndex);\n }\n this.firstLoaded = firstItemIndex;\n observer.next(new ScrollAction(firstItemOffset));\n let nextTake = this.firstLoaded + this.take;\n this.lastLoaded = Math.min(nextTake, this.total);\n nextTake = nextTake > this.total ? this.total - this.firstLoaded : this.take;\n observer.next(new PageAction(this.firstLoaded, this.take));\n }\n else {\n const atBottom = scrollHeight - clientHeight - scrollTop < SCROLL_BOTTOM_THRESHOLD;\n if (atBottom) {\n observer.next(new ScrollBottomAction());\n }\n }\n }\n if (up && firstItemIndex < this.firstLoaded) {\n const nonVisibleBuffer = Math.floor(this.take * 0.3);\n this.firstLoaded = Math.max(firstItemIndex - nonVisibleBuffer, 0);\n observer.next(new ScrollAction(this.rowHeightService.offset(this.firstLoaded)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n observer.next(new PageAction(this.firstLoaded, this.take));\n }\n }\n unsubscribe() {\n if (this.scrollSubscription) {\n this.scrollSubscription.unsubscribe();\n this.scrollSubscription = undefined;\n }\n }\n}\n\n/**\n * @hidden\n */\nconst NON_DATA_CELL_CLASSES = 'k-hierarchy-cell k-detail-cell k-group-cell';\n/**\n * @hidden\n */\nconst NON_DATA_ROW_CLASSES = 'k-grouping-row k-group-footer k-detail-row k-grid-norecords';\n/**\n * @hidden\n */\nconst IGNORE_TARGET_CLASSSES = 'k-icon';\n/**\n * @hidden\n */\nconst IGNORE_CONTAINER_CLASSES = 'k-widget k-grid-ignore-click';\n\nconst elementAt = (index, elements, elementOffset) => {\n for (let idx = 0, elementIdx = 0; idx < elements.length; idx++) {\n const offset = elementOffset(elements[idx]);\n if (elementIdx <= index && index <= elementIdx + offset - 1) {\n return elements[idx];\n }\n elementIdx += offset;\n }\n};\nconst rowAt = (index, rows) => elementAt(index, rows, row => row.hasAttribute('data-kendo-grid-item-index') ? 1 : 0);\nconst cellAt = (index, cells) => elementAt(index, cells, cell => !hasClasses(cell, NON_DATA_CELL_CLASSES) ? parseInt(cell.getAttribute('colSpan'), 10) || 1 : 0);\nconst EMPTY_OBJECT = {};\n/**\n * @hidden\n */\nconst SCROLLER_FACTORY_TOKEN = new InjectionToken('grid-scroll-service-factory');\n/**\n * @hidden\n */\nfunction DEFAULT_SCROLLER_FACTORY(observable) {\n return new ScrollerService(observable);\n}\nconst wheelDeltaY = (e) => {\n const deltaY = e.wheelDeltaY;\n if (e.wheelDelta && (deltaY === undefined || deltaY)) {\n return e.wheelDelta;\n }\n else if (e.detail && e.axis === e.VERTICAL_AXIS) {\n return (-e.detail) * 10;\n }\n return 0;\n};\nconst preventLockedScroll = (args, element) => {\n const delta = wheelDeltaY(args);\n const scrollTop = element.scrollTop;\n const allowScroll = (scrollTop === 0 && 0 < delta) || (element.scrollHeight <= element.offsetHeight + scrollTop && delta < 0);\n if (!allowScroll) {\n event.preventDefault();\n }\n};\nconst translateY = (renderer, value) => el => renderer.setStyle(el, \"transform\", `translateY(${value}px)`);\nconst maybeNativeElement = el => el ? el.nativeElement : null;\nconst hasScrollbar = (el, parent) => el.nativeElement.offsetWidth > parent.nativeElement.clientWidth;\nconst setHeight$1 = renderer => ({ el, height }) => renderer.setStyle(el, \"height\", `${height}px`);\nconst bufferSize = 1;\n/**\n * @hidden\n */\nclass ListComponent {\n constructor(scrollerFactory, detailsService, changeNotification, suspendService, groupsService, ngZone, renderer, scrollSyncService, resizeService, editService, supportService, navigationService, scrollRequestService, localization, columnResizingService, changeDetector, pdfService, columnInfo) {\n this.changeNotification = changeNotification;\n this.suspendService = suspendService;\n this.groupsService = groupsService;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.scrollSyncService = scrollSyncService;\n this.resizeService = resizeService;\n this.editService = editService;\n this.supportService = supportService;\n this.navigationService = navigationService;\n this.localization = localization;\n this.columnResizingService = columnResizingService;\n this.changeDetector = changeDetector;\n this.pdfService = pdfService;\n this.columnInfo = columnInfo;\n this.groups = [];\n this.skip = 0;\n this.columns = new ColumnsContainer(() => []);\n this.selectable = false;\n this.groupable = false;\n this.trackBy = defaultTrackBy;\n this.contentScroll = new EventEmitter();\n this.pageChange = new EventEmitter();\n this.scrollBottom = new EventEmitter();\n this.columnsStartIdx = 0;\n this.resizeSensors = new QueryList();\n this.dispatcher = new Subject();\n this.containerScrollTop = 0;\n this.scrollLeft = 0;\n this.rtl = false;\n this.scroller = scrollerFactory(this.dispatcher);\n this.subscriptions =\n detailsService.changes.subscribe(x => this.detailExpand(x)).add(scrollRequestService.requests.subscribe(x => this.scrollTo(x)));\n }\n get hostClass() {\n return true;\n }\n get hostRole() {\n return 'presentation';\n }\n get showFooter() {\n return this.groupable && this.groupable.showFooter;\n }\n get totalWidth() {\n if (this.virtualColumns && this.columns.unlockedWidth) {\n return this.columns.unlockedWidth;\n }\n }\n get lockedLeafColumns() {\n return this.columns.lockedLeafColumns;\n }\n get nonLockedLeafColumns() {\n return this.columns.nonLockedLeafColumns;\n }\n get nonLockedColumnsToRender() {\n if (this.virtualColumns && !this.pdfService.exporting) {\n return this.viewportColumns;\n }\n return this.nonLockedLeafColumns;\n }\n get leafColumns() {\n return this.columns.leafColumnsToRender;\n }\n get lockedWidth() {\n const groupCellsWidth = this.groups.length * GROUP_CELL_WIDTH;\n return expandColumns(this.lockedLeafColumns.toArray()).reduce((prev, curr) => prev + (curr.width || 0), groupCellsWidth);\n }\n get nonLockedWidth() {\n if ((!this.rtl && this.lockedLeafColumns.length) || this.virtualColumns) {\n return sumColumnWidths(expandColumns(this.nonLockedColumnsToRender.toArray()));\n }\n return undefined;\n }\n get isLocked() {\n return this.lockedLeafColumns.length > 0;\n }\n ngOnInit() {\n this.init();\n this.subscriptions.add(this.ngZone.runOutsideAngular(this.handleRowSync.bind(this)));\n this.subscriptions.add(this.ngZone.runOutsideAngular(this.handleRowNavigationLocked.bind(this)));\n this.subscriptions.add(merge(this.columns.changes, this.resizeService.changes).subscribe(() => {\n if (this.virtualColumns) {\n this.ngZone.run(() => {\n this.updateViewportColumns();\n this.changeDetector.markForCheck();\n });\n }\n }));\n this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => this.rtl = rtl));\n }\n ngOnChanges(changes) {\n if (isChanged(\"skip\", changes) && !this.rebind) {\n this.skipScroll = true;\n this.container.nativeElement.scrollTop = this.rowHeightService.offset(this.skip);\n }\n if (anyChanged([\"total\", \"take\"], changes)) {\n this.init();\n }\n this.rebind = false;\n }\n ngDoCheck() {\n if (this.virtualColumns && (!this.viewportColumns || this.viewportWidthChange())) {\n this.updateViewportColumns();\n }\n }\n ngAfterViewInit() {\n if (this.skip && this.isVirtual) {\n this.container.nativeElement.scrollTop = this.rowHeightService.offset(this.skip);\n }\n this.resetNavigationViewport();\n this.attachContainerScroll();\n this.initResizeService();\n }\n ngAfterViewChecked() {\n const isLocked = this.isLocked;\n if (isLocked && !this.hasLockedContainer) {\n this.syncRowsHeight();\n }\n this.hasLockedContainer = isLocked;\n }\n syncRowsHeight() {\n if (this.lockedContainer) {\n syncRowsHeight(this.lockedTable.nativeElement, this.table.nativeElement);\n }\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n if (this.resizeService) {\n this.resizeService.destroy();\n }\n this.cleanupScroller();\n }\n init() {\n if (this.suspendService.scroll) {\n return;\n }\n this.rowHeightService = new RowHeightService(this.total, this.rowHeight, this.detailRowHeight);\n this.totalHeight = this.rowHeightService.totalHeight();\n if (!isUniversal()) {\n this.ngZone.runOutsideAngular(this.createScroller.bind(this));\n }\n }\n lockedScroll() {\n if (!this.suspendService.scroll) {\n const lockedScrollTop = this.lockedContainer.nativeElement.scrollTop;\n if (lockedScrollTop !== this.containerScrollTop) {\n this.container.nativeElement.scrollTop = this.containerScrollTop = lockedScrollTop;\n }\n }\n }\n lockedMousewheel(args) {\n if (!args.ctrlKey) {\n preventLockedScroll(args, this.container.nativeElement);\n const scrollDelta = wheelDeltaY(args);\n this.container.nativeElement.scrollTop -= scrollDelta;\n }\n }\n lockedKeydown(args) {\n if (args.keyCode === Keys.PageDown || args.keyCode === Keys.PageUp) {\n const dir = args.keyCode === Keys.PageDown ? 1 : -1;\n const element = this.container.nativeElement;\n element.scrollTop += element.offsetHeight * dir * 0.8;\n args.preventDefault();\n }\n }\n detailExpand({ index, expand }) {\n if (expand) {\n this.rowHeightService.expandDetail(index);\n }\n else {\n this.rowHeightService.collapseDetail(index);\n }\n this.totalHeight = this.rowHeightService.totalHeight();\n this.resetNavigationViewport();\n }\n attachContainerScroll() {\n if (isUniversal()) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n this.subscriptions.add(fromEvent(this.container.nativeElement, 'scroll').pipe(map((event) => event.target), filter(() => !this.suspendService.scroll), tap((target) => {\n this.onContainerScroll(target);\n this.resetNavigationViewport();\n if (this.virtualColumns) {\n this.handleColumnScroll();\n }\n const rowViewport = this.navigationService.viewport || EMPTY_OBJECT;\n const columnViewport = this.navigationService.columnViewport || EMPTY_OBJECT;\n this.contentScroll.emit({\n scrollLeft: target.scrollLeft,\n scrollTop: target.scrollTop,\n startRow: rowViewport.firstItemIndex,\n endRow: rowViewport.lastItemIndex,\n startColumn: columnViewport.firstItemIndex,\n endColumn: columnViewport.lastItemIndex\n });\n })).subscribe(this.dispatcher));\n });\n this.scrollSyncService.registerEmitter(this.container.nativeElement, \"body\");\n }\n createScroller() {\n this.cleanupScroller();\n const observable = this.scroller\n .create(this.rowHeightService, this.skip, this.take, this.total);\n this.skipScroll = false;\n this.scrollerSubscription = observable.pipe(filter((x) => x instanceof PageAction), filter(() => {\n const temp = this.skipScroll;\n this.skipScroll = false;\n return !temp;\n }), tap(() => this.rebind = true))\n .subscribe((x) => this.ngZone.run(() => this.pageChange.emit(x)));\n this.scrollerSubscription.add(observable.pipe(filter((x) => x instanceof ScrollAction))\n .subscribe(this.scroll.bind(this)));\n this.scrollerSubscription.add(observable.pipe(filter((x) => x instanceof ScrollBottomAction))\n .subscribe(() => this.scrollBottom.emit()));\n }\n scroll({ offset = 0 }) {\n if (this.isVirtual) {\n [\n maybeNativeElement(this.table),\n maybeNativeElement(this.lockedTable)\n ].filter(isPresent).forEach(translateY(this.renderer, offset));\n }\n this.resetNavigationViewport();\n }\n onContainerScroll({ scrollTop }) {\n this.containerScrollTop = scrollTop;\n if (this.lockedContainer) {\n this.lockedContainer.nativeElement.scrollTop = scrollTop;\n }\n }\n handleRowSync() {\n const isLocked = () => isPresent(this.lockedContainer);\n const onStable = () => this.ngZone.onStable.asObservable().pipe(take(1));\n return merge(this.changeNotification.changes, this.groupsService.changes\n .pipe(filter(isLocked), switchMapTo(onStable())), this.editService.changed, this.resizeService.changes, this.columnResizingService.changes\n .pipe(filter(change => change.type === 'end')), this.supportService.changes)\n .pipe(tap(() => this.resetNavigationViewport()), filter(isLocked))\n .subscribe(() => {\n const scrollTop = this.container.nativeElement.scrollTop;\n const scrollLeft = this.container.nativeElement.scrollLeft;\n this.syncRowsHeight();\n this.syncContainerHeight();\n this.lockedContainer.nativeElement.scrollTop = this.container.nativeElement.scrollTop = scrollTop;\n // fixes scroll left position in IE when editing\n this.container.nativeElement.scrollLeft = scrollLeft;\n this.resizeSensors.forEach(sensor => sensor.acceptSize());\n });\n }\n handleRowNavigationLocked() {\n return this.navigationService.changes.pipe(filter(() => isPresent(this.lockedContainer)), delay(10)).subscribe((args) => {\n if (this.lockedLeafColumns.length <= args.prevColIndex && args.colIndex < this.lockedLeafColumns.length) {\n const cell = this.navigationService.activeCell;\n if (cell && cell.colIndex + cell.colSpan < args.prevColIndex) {\n this.container.nativeElement.scrollLeft = 0;\n }\n }\n });\n }\n scrollToVirtualRow(itemIndex) {\n if (isPresent(this.detailTemplate)) {\n itemIndex = Math.floor(itemIndex / 2);\n }\n const offset = this.rowHeightService.offset(itemIndex);\n this.container.nativeElement.scrollTop = offset;\n this.resetNavigationViewport();\n }\n scrollTo({ row, column }) {\n if (isNumber(row)) {\n if (this.isVirtual) {\n this.scrollToVirtualRow(row);\n }\n else {\n const element = rowAt(row, this.table.nativeElement.rows);\n if (element) {\n this.container.nativeElement.scrollTop = element.offsetTop;\n }\n }\n }\n if (isNumber(column)) {\n column -= this.lockedLeafColumns.length;\n if (this.virtualColumns) {\n const columns = this.columns.leafColumnsToRender;\n let offset = 0;\n for (let idx = 0; idx < column; idx++) {\n offset += columns[idx].width || 0;\n }\n const startOffset = this.lockedLeafColumns.length ? 0 : this.groups.length * GROUP_CELL_WIDTH + (this.detailTemplate && column > 0 ? GROUP_CELL_WIDTH : 0);\n this.container.nativeElement.scrollLeft = this.normalizeScrollLeft(offset + startOffset);\n }\n else if (column === 0 && this.detailTemplate) {\n this.container.nativeElement.scrollLeft = this.normalizeScrollLeft(0);\n }\n else {\n const firstRow = rowAt(0, this.table.nativeElement.rows);\n if (firstRow) {\n const element = cellAt(column, firstRow.cells);\n if (element) {\n this.container.nativeElement.scrollLeft = this.elementScrollLeft(element);\n }\n }\n }\n }\n }\n resetNavigationViewport() {\n if (!this.container || !this.navigationService.enabled ||\n !this.navigationService.needsViewport() || this.data.length === 0) {\n return;\n }\n const { scrollTop, offsetHeight } = this.container.nativeElement;\n const scrollBottom = scrollTop + offsetHeight;\n const firstItemIndex = this.rowHeightService.index(scrollTop);\n let lastItemIndex = this.rowHeightService.index(scrollBottom);\n const lastItemOffset = this.rowHeightService.offset(lastItemIndex);\n const lastItemOverflows = lastItemOffset + this.rowHeight > scrollBottom;\n if (lastItemIndex > 0 && lastItemOverflows) {\n lastItemIndex--;\n }\n let viewportStart = firstItemIndex;\n let viewportEnd = lastItemIndex;\n if (isPresent(this.detailTemplate)) {\n viewportStart *= 2;\n viewportEnd *= 2;\n const firstItemHeight = this.rowHeightService.offset(firstItemIndex);\n if (firstItemHeight + this.rowHeight < scrollTop) {\n viewportStart++;\n }\n const lastItemHeight = this.rowHeightService.height(lastItemIndex);\n const lastItemExpanded = this.rowHeightService.isExpanded(lastItemIndex);\n const lastItemDetailOverflows = lastItemOffset + lastItemHeight > scrollBottom;\n if (lastItemExpanded && !lastItemDetailOverflows) {\n viewportEnd++;\n }\n }\n this.navigationService.setViewport(viewportStart, viewportEnd);\n }\n cleanupScroller() {\n if (this.scrollerSubscription) {\n this.scrollerSubscription.unsubscribe();\n }\n if (this.scroller) {\n this.scroller.destroy();\n }\n }\n initResizeService() {\n this.resizeService.connect(merge(...this.resizeSensors.map(sensor => sensor.resize)));\n }\n syncContainerHeight() {\n [maybeNativeElement(this.lockedContainer)]\n .filter(isPresent)\n .map(el => {\n el.style.height = '';\n let height = this.container.nativeElement.offsetHeight;\n if (hasScrollbar(this.table, this.container)) {\n height -= this.supportService.scrollbarWidth;\n }\n return { el, height };\n })\n .forEach(setHeight$1(this.renderer));\n }\n updateViewportColumns(range) {\n const columns = this.columns.nonLockedLeafColumns.toArray();\n let { startIdx, endIdx, offset } = range || this.calculateViewportColumns();\n const start = Math.max(0, startIdx - bufferSize);\n const end = Math.min(endIdx + bufferSize, columns.length - 1);\n if (start < startIdx) {\n for (let idx = startIdx - 1; idx >= start; idx--) {\n offset -= columns[idx].width;\n }\n }\n let currentColumns = columns.slice(start, end + 1);\n this.viewportColumnsWidth = currentColumns.reduce((total, column) => total + column.width, 0);\n if (start > 0) {\n const offsetColumn = new ColumnBase$1();\n offsetColumn.width = offset;\n currentColumns.unshift(offsetColumn);\n }\n this.viewportColumns = new QueryList();\n this.viewportColumns.reset(currentColumns);\n this.columnsStartIdx = start;\n this.columnsEndIdx = end;\n this.columnInfo.columnRangeChange.emit({ start, end, offset });\n if (!range) {\n this.updateColumnViewport(startIdx, endIdx);\n }\n }\n handleColumnScroll() {\n const container = this.container.nativeElement;\n const scrollLeft = container.scrollLeft;\n if (this.scrollLeft !== scrollLeft) {\n this.scrollLeft = scrollLeft;\n const range = this.calculateViewportColumns();\n this.updateColumnViewport(range.startIdx, range.endIdx);\n if (range.startIdx < this.columnsStartIdx || this.columnsEndIdx < range.endIdx) {\n cancelAnimationFrame(this.columnUpdateFrame);\n this.columnUpdateFrame = requestAnimationFrame(() => {\n this.ngZone.run(() => {\n this.updateViewportColumns(range);\n this.changeDetector.markForCheck();\n });\n });\n }\n }\n }\n updateColumnViewport(startIdx, endIdx) {\n const lockedCount = this.lockedLeafColumns.length;\n const leafColumns$$1 = this.nonLockedLeafColumns.toArray();\n const viewportStart = lockedCount + startIdx + (this.detailTemplate && startIdx > 0 ? 1 : 0);\n let viewportEnd = lockedCount + endIdx + (this.detailTemplate ? 1 : 0);\n for (let idx = 0; idx < leafColumns$$1.length; idx++) {\n const column = leafColumns$$1[idx];\n if (column.isSpanColumn) {\n viewportEnd += column.childColumns.length;\n }\n }\n this.navigationService.setColumnViewport(viewportStart, viewportEnd);\n }\n calculateViewportColumns() {\n const { scrollLeft, clientWidth } = this.container.nativeElement;\n const columns = this.columns.nonLockedLeafColumns.toArray();\n const normalizedScrollLeft = this.normalizeScrollLeft(scrollLeft);\n const viewportEnd = normalizedScrollLeft + clientWidth;\n let startIdx;\n let endIdx = 0;\n let current = 0;\n let offset = 0;\n let idx;\n for (idx = 0; idx < columns.length; idx++) {\n const column = columns[idx];\n current += column.width || 0;\n if (startIdx === undefined && current > normalizedScrollLeft) {\n startIdx = idx;\n offset = current - (column.width || 0);\n }\n if (current >= viewportEnd) {\n endIdx = idx;\n break;\n }\n }\n if (!endIdx && idx > 0) {\n endIdx = columns.length - 1;\n }\n return { startIdx, endIdx, offset };\n }\n viewportWidthChange() {\n const currentWidth = this.viewportColumns.toArray().reduce((total, column) => total + column.width, 0);\n return currentWidth !== this.viewportColumnsWidth;\n }\n normalizeScrollLeft(position) {\n return this.rtl ? rtlScrollPosition(position, this.container.nativeElement, this.supportService.rtlScrollLeft) : position;\n }\n elementScrollLeft(element) {\n if (this.rtl) {\n return this.normalizeScrollLeft(this.container.nativeElement.scrollWidth - element.offsetLeft - element.offsetWidth);\n }\n return element.offsetLeft;\n }\n}\nListComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: SCROLLER_FACTORY_TOKEN,\n useValue: DEFAULT_SCROLLER_FACTORY\n }\n ],\n selector: 'kendo-grid-list',\n template: `\n
\n
\n \n \n \n \n \n
\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n `\n },] },\n];\n/** @nocollapse */\nListComponent.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Inject, args: [SCROLLER_FACTORY_TOKEN,] }] },\n { type: DetailsService },\n { type: ChangeNotificationService },\n { type: SuspendService },\n { type: GroupsService },\n { type: NgZone },\n { type: Renderer2 },\n { type: ScrollSyncService },\n { type: ResizeService },\n { type: EditService },\n { type: BrowserSupportService },\n { type: NavigationService },\n { type: ScrollRequestService },\n { type: LocalizationService },\n { type: ColumnResizingService },\n { type: ChangeDetectorRef },\n { type: PDFService },\n { type: ColumnInfoService }\n];\nListComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: [\"class.k-grid-container\",] }],\n hostRole: [{ type: HostBinding, args: [\"attr.role\",] }],\n data: [{ type: Input }],\n groups: [{ type: Input }],\n total: [{ type: Input }],\n rowHeight: [{ type: Input }],\n detailRowHeight: [{ type: Input }],\n take: [{ type: Input }],\n skip: [{ type: Input }],\n columns: [{ type: Input }],\n detailTemplate: [{ type: Input }],\n noRecordsTemplate: [{ type: Input }],\n selectable: [{ type: Input }],\n groupable: [{ type: Input }],\n filterable: [{ type: Input }],\n rowClass: [{ type: Input }],\n loading: [{ type: Input }],\n trackBy: [{ type: Input }],\n virtualColumns: [{ type: Input }],\n isVirtual: [{ type: Input }],\n contentScroll: [{ type: Output }],\n pageChange: [{ type: Output }],\n scrollBottom: [{ type: Output }],\n container: [{ type: ViewChild, args: [\"container\", { static: true },] }],\n lockedContainer: [{ type: ViewChild, args: [\"lockedContainer\",] }],\n lockedTable: [{ type: ViewChild, args: [\"lockedTable\",] }],\n table: [{ type: ViewChild, args: [\"table\",] }],\n resizeSensors: [{ type: ViewChildren, args: [ResizeSensorComponent,] }]\n};\n\n/**\n * A directive which encapsulates the in-memory handling of data operations such as [paging]({% slug paging_grid %}),\n * [sorting]({% slug sorting_grid %}), and [grouping]({% slug groupingbasics_grid %})\n * ([more information and examples]({% slug automaticoperations_grid %})).\n */\nclass DataBindingDirective {\n constructor(grid, changeDetector, localDataChangesService) {\n this.grid = grid;\n this.changeDetector = changeDetector;\n this.localDataChangesService = localDataChangesService;\n this.state = {\n skip: 0\n };\n this.originalData = [];\n if (localDataChangesService) {\n this.dataChangedSubscription = this.localDataChangesService.changes.subscribe(this.rebind.bind(this));\n }\n }\n /**\n * Defines the number of records that will be skipped by the pager.\n */\n set skip(value) {\n if (!isPresent(value)) {\n value = 0;\n }\n this.grid.skip = this.state.skip = value;\n }\n /**\n * Defines the descriptors by which the data will be sorted.\n */\n set sort(value) {\n this.grid.sort = this.state.sort = value;\n }\n /**\n * Defines the descriptor by which the data will be filtered.\n */\n set filter(value) {\n this.grid.filter = this.state.filter = value;\n }\n /**\n * Defines the page size used by the Grid pager.\n */\n set pageSize(value) {\n this.grid.pageSize = this.state.take = value;\n }\n /**\n * The descriptors by which the data will be grouped.\n */\n set group(value) {\n this.grid.group = this.state.group = value;\n }\n /**\n * The array of data which will be used to populate the Grid.\n */\n set data(value) {\n this.originalData = value || [];\n if (this.localDataChangesService) {\n this.localDataChangesService.data = value;\n }\n this.dataChanged = true;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.applyState(this.state);\n this.stateChangeSubscription = this.grid\n .dataStateChange\n .subscribe(this.onStateChange.bind(this));\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.stateChangeSubscription) {\n this.stateChangeSubscription.unsubscribe();\n }\n if (this.dataChangedSubscription) {\n this.dataChangedSubscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (anyChanged([\"pageSize\", \"skip\", \"sort\", \"group\", \"filter\"], changes)) {\n this.rebind();\n }\n }\n ngDoCheck() {\n if (this.dataChanged) {\n this.updateGridData();\n }\n }\n /**\n * @hidden\n */\n onStateChange(state$$1) {\n this.applyState(state$$1);\n this.rebind();\n }\n /**\n * @hidden\n */\n rebind() {\n this.data = this.originalData;\n this.updateGridData();\n this.notifyDataChange();\n }\n /**\n * Notifies the Grid that its data has changed.\n */\n notifyDataChange() {\n this.grid.onDataChange();\n if (this.changeDetector) {\n this.changeDetector.markForCheck();\n }\n }\n process(state$$1) {\n return process(this.originalData, state$$1);\n }\n applyState({ skip, take: take$$1, sort, group, filter: filter$$1 }) {\n this.skip = skip;\n this.pageSize = take$$1;\n this.sort = sort;\n this.group = group;\n this.filter = filter$$1;\n }\n updateGridData() {\n this.grid.data = this.process(this.state);\n this.dataChanged = false;\n }\n}\nDataBindingDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridBinding]'\n },] },\n];\n/** @nocollapse */\nDataBindingDirective.ctorParameters = () => [\n { type: GridComponent },\n { type: ChangeDetectorRef },\n { type: LocalDataChangesService }\n];\nDataBindingDirective.propDecorators = {\n skip: [{ type: Input }],\n sort: [{ type: Input }],\n filter: [{ type: Input }],\n pageSize: [{ type: Input }],\n group: [{ type: Input }],\n data: [{ type: Input, args: [\"kendoGridBinding\",] }]\n};\n\n/**\n * A directive which stores the row selection state of the Grid in memory\n * ([see example]({% slug selection_grid %}#toc-during-data-operations)).\n */\nclass SelectionDirective extends Selection {\n constructor(grid, cd) {\n super(grid, cd);\n this.grid = grid;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n if (this.grid.selectable === false) {\n this.grid.selectable = true;\n }\n this.grid.selectionDirective = true;\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n super.destroy();\n }\n}\nSelectionDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridSelectBy]'\n },] },\n];\n/** @nocollapse */\nSelectionDirective.ctorParameters = () => [\n { type: GridComponent },\n { type: ChangeDetectorRef }\n];\n\n/**\n * A directive which controls the expanded state of the master detail rows.\n */\nclass ExpandDetailsDirective {\n constructor(grid) {\n this.grid = grid;\n /**\n * Fires when the expandedDetailKeys are changed.\n */\n this.expandedDetailKeysChange = new EventEmitter();\n /**\n * Defines the collection that will store the expanded keys.\n */\n this.expandedDetailKeys = [];\n /**\n * Specifies if the items should be initially expanded.\n * @default false\n */\n this.initiallyExpanded = false;\n this.subscriptions = new Subscription();\n this.grid.isDetailExpanded = this.isExpanded.bind(this);\n this.subscriptions.add(merge(this.grid.detailExpand.pipe(map(e => (Object.assign({ expand: true }, e)))), this.grid.detailCollapse.pipe(map(e => (Object.assign({ expand: false }, e))))).subscribe(this.toggleState.bind(this)));\n }\n /**\n * Defines the item key that will be stored in the `expandedDetailKeys` collection.\n */\n get expandDetailsKey() {\n return this._expandBy;\n }\n set expandDetailsKey(key) {\n if (isString(key)) {\n this._expandBy = getter(key);\n }\n else {\n this._expandBy = key;\n }\n }\n /**\n *\n * @hidden\n * A deprecated alias for setting the `expandDetailsKey` property.\n */\n get expandDetailBy() {\n return this.expandDetailsKey;\n }\n set expandDetailBy(key) {\n this.expandDetailsKey = key;\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n get keyGetter() {\n return this._expandBy || getter(undefined);\n }\n /**\n * @hidden\n */\n isExpanded(args) {\n const key = this.keyGetter(args.dataItem);\n return this.expandedDetailKeys.indexOf(key) > -1 ? !this.initiallyExpanded : this.initiallyExpanded;\n }\n toggleState(args) {\n const key = this.keyGetter(args.dataItem);\n if (Boolean(this.initiallyExpanded) !== args.expand) {\n this.expandedDetailKeys.push(key);\n }\n else {\n const index = this.expandedDetailKeys.indexOf(key);\n this.expandedDetailKeys.splice(index, 1);\n }\n this.expandedDetailKeysChange.emit(this.expandedDetailKeys);\n }\n}\nExpandDetailsDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridExpandDetailsBy]',\n exportAs: 'kendoGridExpandDetailsBy'\n },] },\n];\n/** @nocollapse */\nExpandDetailsDirective.ctorParameters = () => [\n { type: GridComponent }\n];\nExpandDetailsDirective.propDecorators = {\n expandedDetailKeysChange: [{ type: Output }],\n expandDetailsKey: [{ type: Input, args: ['kendoGridExpandDetailsBy',] }],\n expandDetailBy: [{ type: Input }],\n expandedDetailKeys: [{ type: Input }],\n initiallyExpanded: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.propDecorators = {\n groupPanelEmpty: [{ type: Input }],\n noRecords: [{ type: Input }],\n pagerFirstPage: [{ type: Input }],\n pagerLastPage: [{ type: Input }],\n pagerPreviousPage: [{ type: Input }],\n pagerNextPage: [{ type: Input }],\n pagerPage: [{ type: Input }],\n pagerItemsPerPage: [{ type: Input }],\n pagerOf: [{ type: Input }],\n pagerItems: [{ type: Input }],\n filter: [{ type: Input }],\n filterEqOperator: [{ type: Input }],\n filterNotEqOperator: [{ type: Input }],\n filterIsNullOperator: [{ type: Input }],\n filterIsNotNullOperator: [{ type: Input }],\n filterIsEmptyOperator: [{ type: Input }],\n filterIsNotEmptyOperator: [{ type: Input }],\n filterStartsWithOperator: [{ type: Input }],\n filterContainsOperator: [{ type: Input }],\n filterNotContainsOperator: [{ type: Input }],\n filterEndsWithOperator: [{ type: Input }],\n filterGteOperator: [{ type: Input }],\n filterGtOperator: [{ type: Input }],\n filterLteOperator: [{ type: Input }],\n filterLtOperator: [{ type: Input }],\n filterIsTrue: [{ type: Input }],\n filterIsFalse: [{ type: Input }],\n filterBooleanAll: [{ type: Input }],\n filterAfterOrEqualOperator: [{ type: Input }],\n filterAfterOperator: [{ type: Input }],\n filterBeforeOperator: [{ type: Input }],\n filterBeforeOrEqualOperator: [{ type: Input }],\n filterFilterButton: [{ type: Input }],\n filterClearButton: [{ type: Input }],\n filterAndLogic: [{ type: Input }],\n filterOrLogic: [{ type: Input }],\n loading: [{ type: Input }],\n columnMenu: [{ type: Input }],\n columns: [{ type: Input }],\n lock: [{ type: Input }],\n unlock: [{ type: Input }],\n sortable: [{ type: Input }],\n sortAscending: [{ type: Input }],\n sortDescending: [{ type: Input }],\n sortedAscending: [{ type: Input }],\n sortedDescending: [{ type: Input }],\n sortedDefault: [{ type: Input }],\n columnsApply: [{ type: Input }],\n columnsReset: [{ type: Input }],\n detailExpand: [{ type: Input }],\n detailCollapse: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass LocalizedMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective)\n }\n ],\n selector: '[kendoGridLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug globalization_grid %}#toc-localization)).\n */\nclass CustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent)\n }\n ],\n selector: 'kendo-grid-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * @hidden\n */\nclass FilterRowComponent {\n constructor(localization) {\n this.localization = localization;\n this.columns = [];\n this.groups = [];\n this.filterRowClass = true;\n this.filterLabel = this.localization.get('filter');\n }\n}\nFilterRowComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoGridFilterRow]',\n template: `\n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nFilterRowComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nFilterRowComponent.propDecorators = {\n columns: [{ type: Input }],\n filter: [{ type: Input }],\n groups: [{ type: Input }],\n detailTemplate: [{ type: Input }],\n logicalRowIndex: [{ type: Input }],\n lockedColumnsCount: [{ type: Input }],\n filterRowClass: [{ type: HostBinding, args: ['class.k-filter-row',] }]\n};\n\nconst areDifferent = (a, b) => a.field !== b.field || a.operator !== b.operator || a.value !== b.value;\nconst isChanged$1 = (a, b) => {\n if (a.length !== b.length) {\n return true;\n }\n for (let idx = 0, len = a.length; idx < len; idx++) {\n const prev = a[idx];\n const curr = b[idx];\n if (isCompositeFilterDescriptor(prev)) {\n // tslint:disable-next-line:no-use-before-declare\n if (diffFilters(prev, curr[idx])) {\n return true;\n }\n }\n else if (areDifferent(prev, curr)) {\n return true;\n }\n }\n return false;\n};\nconst copyObject = (obj) => {\n const result = {};\n Object.assign(result, obj);\n if (obj.constructor !== Object) {\n const proto = obj.constructor.prototype;\n Object.getOwnPropertyNames(proto).forEach((property) => {\n if (property !== 'constructor' && proto.hasOwnProperty(property)) {\n result[property] = obj[property];\n }\n });\n }\n return result;\n};\nconst cloneFilter = (filter$$1) => copyObject(filter$$1);\n/**\n * @hidden\n */\nconst cloneFilters = (filter$$1) => {\n if (!filter$$1) {\n return;\n }\n if (isCompositeFilterDescriptor(filter$$1)) {\n return {\n filters: cloneFilters(filter$$1.filters),\n logic: filter$$1.logic\n };\n }\n else if (Array.isArray(filter$$1)) {\n return filter$$1.map(cloneFilters);\n }\n return cloneFilter(filter$$1);\n};\n/**\n * @hidden\n */\nconst diffFilters = (a, b) => {\n if (isPresent(a) && !isPresent(b)) {\n return true;\n }\n if (!isPresent(a) && isPresent(b)) {\n return true;\n }\n return isPresent(a) && isPresent(b) && isChanged$1(a.filters, b.filters);\n};\n\n/**\n * @hidden\n */\nclass FilterCellComponent {\n constructor() {\n this._templateContext = {};\n }\n get filter() {\n return this._filter;\n }\n set filter(value) {\n this._filter = cloneFilters(value);\n }\n get templateContext() {\n this._templateContext.column = this.column;\n this._templateContext.filter = this.filter;\n // tslint:disable-next-line:no-string-literal\n this._templateContext[\"$implicit\"] = this.filter;\n return this._templateContext;\n }\n get hasTemplate() {\n return isPresent(this.column.filterCellTemplateRef);\n }\n get isFilterable() {\n return isPresent(this.column) && !isNullOrEmptyString(this.column.field) && this.column.filterable;\n }\n}\nFilterCellComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoGridFilterCell]',\n template: `\n \n \n \n \n \n \n \n \n
\n
\n
\n `\n },] },\n];\nFilterCellComponent.propDecorators = {\n column: [{ type: Input }],\n filter: [{ type: Input }]\n};\n\nconst localizeOperators = operators => localization => Object.keys(operators).reduce((acc, key) => {\n acc[operators[key]] = localization.get(key);\n return acc;\n}, {}); // tslint:disable-line:align\nconst operatorTexts = localizeOperators({\n \"filterEqOperator\": \"eq\",\n \"filterNotEqOperator\": \"neq\",\n // tslint:disable-next-line:object-literal-sort-keys\n \"filterGteOperator\": \"gte\",\n \"filterGtOperator\": \"gt\",\n \"filterLteOperator\": \"lte\",\n \"filterLtOperator\": \"lt\",\n \"filterIsNullOperator\": \"isnull\",\n \"filterIsNotNullOperator\": \"isnotnull\",\n \"filterIsEmptyOperator\": \"isempty\",\n \"filterIsNotEmptyOperator\": \"isnotempty\",\n \"filterContainsOperator\": \"contains\",\n \"filterNotContainsOperator\": \"doesnotcontain\",\n \"filterStartsWithOperator\": \"startswith\",\n \"filterEndsWithOperator\": \"endswith\",\n \"filterAfterOrEqualOperator\": \"after-eq\",\n \"filterAfterOperator\": \"after\",\n \"filterBeforeOrEqualOperator\": \"before-eq\",\n \"filterBeforeOperator\": \"before\"\n});\n/**\n * @hidden\n */\nconst toJSON = (xs) => xs.map(x => x.toJSON());\n/**\n * @hidden\n */\nclass FilterOperatorBase {\n constructor(operator, localization) {\n this.operator = operator;\n this.localization = localization;\n this.messages = operatorTexts(this.localization);\n this._text = this.messages[this.operator];\n this.localization.changes.subscribe(this.refreshText.bind(this));\n }\n /**\n * The text that will be displayed in the drop-down list.\n * @readonly\n * @type {string}\n * @memberOf FilterOperatorBase\n */\n get text() {\n return this._text;\n }\n /**\n *\n */\n set text(value) {\n this._text = isNullOrEmptyString(value) ? this.messages[this.operator] : value;\n }\n /**\n * @hidden\n */\n toJSON() {\n return {\n text: this.text,\n value: this.operator\n };\n }\n refreshText() {\n const update = this._text === this.messages[this.operator];\n this.messages = operatorTexts(this.localization);\n if (update) {\n this._text = this.messages[this.operator];\n }\n }\n}\nFilterOperatorBase.propDecorators = {\n text: [{ type: Input }]\n};\n\nconst insertDefaultFilter = (index, rootFilter, filter$$1) => {\n rootFilter = (rootFilter || { filters: [], logic: \"and\" });\n rootFilter.filters[index] = filter$$1;\n return filter$$1;\n};\n/**\n * @hidden\n */\nconst setFilter = (index, filter$$1, field, defaultOperator) => {\n if (isPresent(filter$$1) && isPresent(filter$$1.filters) && filter$$1.filters.length > index) {\n return filter$$1.filters[index];\n }\n else {\n return insertDefaultFilter(index, filter$$1, {\n field,\n operator: defaultOperator\n });\n }\n};\n/**\n * @hidden\n */\nconst logicOperators = (localization) => [\n { text: localization.get(\"filterAndLogic\"), value: \"and\" },\n { text: localization.get(\"filterOrLogic\"), value: \"or\" }\n];\n/**\n * @hidden\n */\nconst flatten = (filter$$1) => {\n if (isPresent(filter$$1.filters)) {\n return filter$$1.filters.reduce((acc, curr) => acc.concat(isCompositeFilterDescriptor(curr) ? flatten(curr) : [curr]), []);\n }\n return [];\n};\nconst trimFilterByField = (filter$$1, field) => {\n if (isPresent(filter$$1) && isPresent(filter$$1.filters)) {\n filter$$1.filters = filter$$1.filters.filter(x => {\n if (isCompositeFilterDescriptor(x)) {\n trimFilterByField(x, field);\n return x.filters.length;\n }\n else {\n return x.field !== field;\n }\n });\n }\n};\n/**\n * @hidden\n */\nconst filtersByField = (filter$$1, field) => flatten(filter$$1 || {}).filter(x => x.field === field);\n/**\n * @hidden\n */\nconst filterByField = (filter$$1, field) => {\n let [currentFilter] = filtersByField(filter$$1, field);\n return currentFilter;\n};\n/**\n * @hidden\n */\nconst removeFilter = (filter$$1, field) => {\n trimFilterByField(filter$$1, field);\n return filter$$1;\n};\n/**\n * @hidden\n */\nconst localizeOperators$1 = operators => localization => Object.keys(operators).map(key => ({\n text: localization.get(key),\n value: operators[key]\n}));\n/**\n * An abstract base class for the filter-cell component ([see example]({% slug reusablecustomfilters_grid %}#toc-filter-row)).\n */\nclass BaseFilterCellComponent {\n constructor(filterService) {\n this.filterService = filterService;\n this.operatorList = new QueryList();\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return true;\n }\n get operators() {\n return this._operators.length ? this._operators : this.defaultOperators;\n }\n set operators(values) {\n this._operators = values;\n }\n /**\n * @hidden\n */\n ngAfterContentInit() {\n this.operationListSubscription = observe(this.operatorList)\n .pipe(map(q => q.toArray()), map(toJSON))\n .subscribe(x => {\n this.operators = x;\n });\n }\n ngOnDestroy() {\n if (this.operationListSubscription) {\n this.operationListSubscription.unsubscribe();\n }\n }\n filterByField(field) {\n return filterByField(this.filter, field);\n }\n filtersByField(field) {\n return filtersByField(this.filter, field);\n }\n removeFilter(field) {\n return removeFilter(this.filter, field);\n }\n updateFilter(filter$$1) {\n const root = this.filter || {\n filters: [],\n logic: \"and\"\n };\n let [currentFilter] = flatten(root).filter(x => x.field === filter$$1.field);\n if (!isPresent(currentFilter)) {\n root.filters.push(filter$$1);\n }\n else {\n Object.assign(currentFilter, filter$$1);\n }\n return root;\n }\n applyFilter(filter$$1) {\n this.filterService.filter(filter$$1);\n }\n}\nBaseFilterCellComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-filtercell',] }],\n operatorList: [{ type: ContentChildren, args: [FilterOperatorBase,] }]\n};\n\n// tslint:disable:no-access-missing-member\nconst numericOperators = localizeOperators$1({\n \"filterEqOperator\": \"eq\",\n \"filterNotEqOperator\": \"neq\",\n // tslint:disable-next-line:object-literal-sort-keys\n \"filterGteOperator\": \"gte\",\n \"filterGtOperator\": \"gt\",\n \"filterLteOperator\": \"lte\",\n \"filterLtOperator\": \"lt\",\n \"filterIsNullOperator\": \"isnull\",\n \"filterIsNotNullOperator\": \"isnotnull\"\n});\n/**\n * Represents a base numeric filter component.\n */\nclass NumericFilterComponent extends BaseFilterCellComponent {\n constructor(filterService, localization) {\n super(filterService);\n this.localization = localization;\n /**\n * The default filter operator. Defaults to `eq`.\n * @type {string}\n */\n this.operator = \"eq\";\n /**\n * Specifies the value that is used to increment or decrement the component value.\n * @type {numeric}\n */\n this.step = 1;\n /**\n * Specifies whether the **Up** and **Down** spin buttons will be rendered.\n * @type {boolean}\n */\n this.spinners = true;\n this.defaultOperators = numericOperators(this.localization);\n }\n /**\n * Specifies the number format used when the component is not focused.\n * By default, the `column.format` value is used (if set).\n */\n set format(value) {\n this._format = value;\n }\n /**\n * Specifies the number format used when the component is not focused.\n * By default, the `column.format` value is used (if set).\n *\n * @readonly\n * @type {string}\n */\n get format() {\n return !isNullOrEmptyString(this._format) ? this._format : this.columnFormat;\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n get currentFilter() {\n return this.filterByField(this.column.field);\n }\n /**\n * The current filter operator for the associated column field.\n * @readonly\n * @type {string}\n */\n get currentOperator() {\n return this.currentFilter ? this.currentFilter.operator : this.operator;\n }\n get columnFormat() {\n return this.column && !isNullOrEmptyString(this.column.format) ?\n extractFormat(this.column.format) : \"n2\";\n }\n ngOnInit() {\n this.subscription = this.localization.changes.subscribe(this.localizationChange.bind(this));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n localizationChange() {\n this.defaultOperators = numericOperators(this.localization);\n if (this.operatorList.length) {\n this.operators = toJSON(this.operatorList.toArray());\n }\n }\n}\nNumericFilterComponent.propDecorators = {\n column: [{ type: Input }],\n filter: [{ type: Input }],\n operator: [{ type: Input }],\n step: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n spinners: [{ type: Input }],\n decimals: [{ type: Input }],\n format: [{ type: Input }]\n};\n\n/**\n * Represents a numeric filter cell.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nclass NumericFilterCellComponent extends NumericFilterComponent {\n constructor(filterService, localization) {\n super(filterService, localization);\n this.localization = localization;\n /**\n * Determines the delay time (in milliseconds) before the filter value is submitted.\n * A value of `0` indicates no delay. The default value is `500`.\n * @type {boolean}\n */\n this.filterDelay = 500;\n /**\n * Determines if the drop-down filter operators will be displayed.\n * The default value is `true`.\n * @type {boolean}\n */\n this.showOperators = true;\n }\n}\nNumericFilterCellComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-numeric-filter-cell',\n template: `\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nNumericFilterCellComponent.ctorParameters = () => [\n { type: FilterService },\n { type: LocalizationService }\n];\nNumericFilterCellComponent.propDecorators = {\n filterDelay: [{ type: Input }],\n showOperators: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass FilterInputDirective {\n constructor(valueAccessors, ngZone, element, renderer) {\n this.change = new EventEmitter();\n this.composing = false;\n this.filterDelay = 500;\n this.changeRequests = new Subject();\n this.accessor = valueAccessors[0];\n ngZone.runOutsideAngular(() => {\n const unsubscribeStart = renderer.listen(element.nativeElement, 'compositionstart', () => this.composing = true);\n const unsubscribeEnd = renderer.listen(element.nativeElement, 'compositionend', () => this.composing = false);\n this.unsubscribeEvents = () => {\n unsubscribeStart();\n unsubscribeEnd();\n };\n });\n }\n set value(value) {\n this.accessor.writeValue(value);\n }\n set disabled(value) {\n this.accessor.setDisabledState(value);\n }\n ngAfterViewInit() {\n this.accessor.registerOnChange(x => this.filterDelay > 0 ?\n this.changeRequests.next(x) :\n this.change.emit(x));\n this.subscribeChanges();\n }\n ngOnChanges(changes) {\n if (isChanged('filterDelay', changes)) {\n this.unsubscribeChanges();\n this.subscribeChanges();\n }\n }\n ngOnDestroy() {\n this.unsubscribeChanges();\n this.unsubscribeEvents();\n }\n subscribeChanges() {\n this.changeRequestsSubscription = this.changeRequests\n .pipe(debounceTime(this.filterDelay), filter(() => !this.composing))\n .subscribe(x => this.change.emit(x));\n }\n unsubscribeChanges() {\n if (this.changeRequestsSubscription) {\n this.changeRequestsSubscription.unsubscribe();\n }\n }\n}\nFilterInputDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoFilterInput]'\n },] },\n];\n/** @nocollapse */\nFilterInputDirective.ctorParameters = () => [\n { type: Array, decorators: [{ type: Self }, { type: Inject, args: [NG_VALUE_ACCESSOR,] }] },\n { type: NgZone },\n { type: ElementRef },\n { type: Renderer2 }\n];\nFilterInputDirective.propDecorators = {\n filterDelay: [{ type: Input }],\n value: [{ type: Input }]\n};\n\nconst EMPTY_VALUE_OPERATORS = new Set(['isnull', 'isnotnull', 'isempty', 'isnotempty']);\nconst isEmptyValueOperator = (operator) => EMPTY_VALUE_OPERATORS.has(operator);\n/**\n * @hidden\n */\nclass FilterInputWrapperComponent extends BaseFilterCellComponent {\n constructor(filterService) {\n super(filterService);\n this.operators = [];\n }\n get currentFilter() {\n return this.filterByField(this.column.field);\n }\n get currentOperator() {\n const filter$$1 = this.currentFilter;\n if (!this._operator) {\n this._operator = filter$$1 ? filter$$1.operator : this.defaultOperator;\n }\n return this._operator;\n }\n set currentOperator(value) {\n this._operator = value;\n const emptyValueOperator = isEmptyValueOperator(value);\n this.filterInputDisabled = emptyValueOperator;\n if (emptyValueOperator) {\n this.applyNoValueFilter(value);\n }\n else if (!isBlank(value) && isPresent(this.currentFilter)) {\n this.onChange(this.currentFilter.value);\n }\n }\n get defaultOperator() {\n if (!isNullOrEmptyString(this._defaultOperator)) {\n return this._defaultOperator;\n }\n else if (this.operators && this.operators.length) {\n return this.operators[0].value;\n }\n return \"eq\";\n }\n set defaultOperator(value) {\n this._defaultOperator = value;\n }\n set filterInputDisabled(disabled) {\n if (!this.input) {\n return;\n }\n this.input.disabled = disabled;\n }\n ngAfterContentInit() {\n if (isPresent(this.input)) {\n this.changeSubscription = this.input.change.subscribe(this.onChange.bind(this));\n this.filterInputDisabled = isEmptyValueOperator(this.currentOperator);\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this.changeSubscription) {\n this.changeSubscription.unsubscribe();\n }\n }\n onChange(value) {\n if (!isNullOrEmptyString(value) || this.filterByField(this.column.field)) {\n this.filterChange(isNullOrEmptyString(value) ?\n this.removeFilter(this.column.field) :\n this.updateFilter({\n field: this.column.field,\n operator: this.currentOperator,\n value: value\n }));\n }\n }\n onClear() {\n this.onChange(null);\n this.filterInputDisabled = isEmptyValueOperator(this.defaultOperator);\n }\n applyNoValueFilter(operator) {\n this.filterChange(this.updateFilter({\n field: this.column.field,\n operator: operator,\n value: null\n }));\n }\n ngOnChanges(changes) {\n if (isChanged(\"filter\", changes, false)) {\n this._operator = null;\n this.filterInputDisabled = isEmptyValueOperator(this.currentOperator);\n }\n }\n}\nFilterInputWrapperComponent.propDecorators = {\n operators: [{ type: Input }],\n column: [{ type: Input }],\n filter: [{ type: Input }],\n input: [{ type: ContentChild, args: [FilterInputDirective,] }],\n defaultOperator: [{ type: Input }]\n};\n\nconst EMPTY_FILTER_OPERATORS = ['isnull', 'isnotnull', 'isempty', 'isnotempty'];\n/**\n * @hidden\n */\nclass FilterCellWrapperComponent extends FilterInputWrapperComponent {\n constructor(filterService) {\n super(filterService);\n this.showOperators = true;\n }\n get hostClasses() {\n return true;\n }\n get overrideBaseClasses() {\n return false;\n }\n get showButton() {\n const filter$$1 = this.currentFilter;\n return isPresent(filter$$1) && (!isNullOrEmptyString(filter$$1.value) ||\n EMPTY_FILTER_OPERATORS.indexOf(String(filter$$1.operator)) >= 0);\n }\n filterChange(filter$$1) {\n this.applyFilter(filter$$1);\n }\n}\nFilterCellWrapperComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-filter-wrapper-cell',\n template: `\n \n \n \n `\n },] },\n];\n/** @nocollapse */\nFilterCellWrapperComponent.ctorParameters = () => [\n { type: FilterService }\n];\nFilterCellWrapperComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-filtercell-wrapper',] }],\n overrideBaseClasses: [{ type: HostBinding, args: ['class.k-filtercell',] }],\n showOperators: [{ type: Input }]\n};\n\n// tslint:disable:no-access-missing-member\nconst stringOperators = localizeOperators$1({\n \"filterEqOperator\": \"eq\",\n \"filterNotEqOperator\": \"neq\",\n // tslint:disable-next-line:object-literal-sort-keys\n \"filterContainsOperator\": \"contains\",\n \"filterNotContainsOperator\": \"doesnotcontain\",\n \"filterStartsWithOperator\": \"startswith\",\n \"filterEndsWithOperator\": \"endswith\",\n \"filterIsNullOperator\": \"isnull\",\n \"filterIsNotNullOperator\": \"isnotnull\",\n \"filterIsEmptyOperator\": \"isempty\",\n \"filterIsNotEmptyOperator\": \"isnotempty\"\n});\n/**\n * Represents a base string filter component.\n */\nclass StringFilterComponent extends BaseFilterCellComponent {\n constructor(filterService, localization) {\n super(filterService);\n this.localization = localization;\n /**\n * The default filter operator. Defaults to `contains`.\n * @type {string}\n */\n this.operator = \"contains\";\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n get currentFilter() {\n return this.filterByField((this.column || {}).field);\n }\n /**\n * The current filter operator for the associated column field.\n * @readonly\n * @type {string}\n */\n get currentOperator() {\n return this.currentFilter ? this.currentFilter.operator : this.operator;\n }\n ngOnInit() {\n this.subscription = this.localization.changes.subscribe(this.localizationChange.bind(this));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n localizationChange() {\n this.defaultOperators = stringOperators(this.localization);\n if (this.operatorList.length) {\n this.operators = toJSON(this.operatorList.toArray());\n }\n }\n}\nStringFilterComponent.propDecorators = {\n column: [{ type: Input }],\n filter: [{ type: Input }],\n operator: [{ type: Input }]\n};\n\n/**\n * Represents a string-filter cell component\n * ([see example]({% slug builtinfiltertemplate_grid %}#toc-configuration-components-for-filter-templates)).\n *\n * @example\n *\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nclass StringFilterCellComponent extends StringFilterComponent {\n constructor(filterService, localization) {\n super(filterService, localization);\n /**\n * Determines the delay time (in milliseconds) before the filter value is submitted.\n * A value of `0` indicates no delay. The default value is `500`.\n * @type {boolean}\n */\n this.filterDelay = 500;\n /**\n * Determines if the drop-down filter operators will be displayed.\n * The default value is `true`.\n * @type {boolean}\n */\n this.showOperators = true;\n }\n}\nStringFilterCellComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-string-filter-cell',\n template: `\n \n \n \n `\n },] },\n];\n/** @nocollapse */\nStringFilterCellComponent.ctorParameters = () => [\n { type: FilterService },\n { type: LocalizationService }\n];\nStringFilterCellComponent.propDecorators = {\n filterDelay: [{ type: Input }],\n showOperators: [{ type: Input }]\n};\n\n/**\n * Represents a component which accommodates the filter operators.\n */\nclass FilterCellOperatorsComponent {\n constructor(localization) {\n this.localization = localization;\n this.clearText = 'Clear';\n /**\n * The filter operators that will be displayed.\n */\n this.operators = [];\n /**\n * Determines if the list of operators will be displayed.\n * @type {boolean}\n */\n this.showOperators = true;\n /**\n * Fires when the operator is selected.\n * @type {EventEmitter}\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires when the **Clear** button is clicked.\n * @type {EventEmitter<{}>}\n */\n this.clear = new EventEmitter();\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return true;\n }\n /**\n * @hidden\n */\n onChange(dataItem) {\n this.valueChange.emit(dataItem);\n }\n /**\n * @hidden\n */\n clearClick() {\n this.clear.emit();\n return false;\n }\n /**\n * @hidden\n */\n clearKeydown(args) {\n if (args.keyCode === Keys.Enter || args.keyCode === Keys.Space) {\n this.clear.emit();\n }\n }\n /**\n * @hidden\n */\n dropdownKeydown(args) {\n if (args.defaultPrevented) {\n return;\n }\n if (args.keyCode === Keys.Enter && !this.dropdown.isOpen) {\n this.dropdown.toggle(true);\n args.preventDefault();\n }\n }\n ngOnInit() {\n this.localization.changes.subscribe(() => this.clearText = this.localization.get(\"filterClearButton\"));\n }\n}\nFilterCellOperatorsComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-filter-cell-operators',\n template: `\n \n \n \n `\n },] },\n];\n/** @nocollapse */\nFilterCellOperatorsComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nFilterCellOperatorsComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-filtercell-operator',] }],\n dropdown: [{ type: ViewChild, args: ['dropdown',] }],\n operators: [{ type: Input }],\n showButton: [{ type: Input }],\n showOperators: [{ type: Input }],\n value: [{ type: Input }],\n valueChange: [{ type: Output }],\n clear: [{ type: Output }]\n};\n\n// tslint:disable:no-access-missing-member\nconst stringOperators$1 = localizeOperators$1({\n \"filterContainsOperator\": \"contains\",\n \"filterNotContainsOperator\": \"doesnotcontain\",\n // tslint:disable-next-line:object-literal-sort-keys\n \"filterEqOperator\": \"eq\",\n \"filterNotEqOperator\": \"neq\",\n \"filterStartsWithOperator\": \"startswith\",\n \"filterEndsWithOperator\": \"endswith\",\n \"filterIsNullOperator\": \"isnull\",\n \"filterIsNotNullOperator\": \"isnotnull\",\n \"filterIsEmptyOperator\": \"isempty\",\n \"filterIsNotEmptyOperator\": \"isnotempty\"\n});\n/**\n * @hidden\n */\nclass AutoCompleteFilterCellComponent extends BaseFilterCellComponent {\n constructor(filterService, column, localization) {\n super(filterService);\n this.localization = localization;\n this.showOperators = true;\n this.defaultOperators = stringOperators$1(this.localization);\n this.column = column;\n }\n set valueField(value) {\n this._valueField = value;\n }\n get valueField() {\n return this._valueField ? this._valueField : this.column.field;\n }\n get currentFilter() {\n return this.filterByField(this.column.field);\n }\n get currentOperator() {\n return this.currentFilter ? this.currentFilter.operator : \"contains\";\n }\n}\nAutoCompleteFilterCellComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-autocomplete-filter-cell',\n template: `\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nAutoCompleteFilterCellComponent.ctorParameters = () => [\n { type: FilterService },\n { type: ColumnComponent },\n { type: LocalizationService }\n];\nAutoCompleteFilterCellComponent.propDecorators = {\n showOperators: [{ type: Input }],\n column: [{ type: Input }],\n filter: [{ type: Input }],\n data: [{ type: Input }],\n valueField: [{ type: Input }]\n};\n\n// tslint:disable:no-access-missing-member\n/**\n * @hidden\n */\nclass BooleanFilterComponent extends BaseFilterCellComponent {\n constructor(filterService, localization) {\n super(filterService);\n this.localization = localization;\n /**\n * @hidden\n */\n this.operator = \"eq\";\n /**\n * @hidden\n */\n this.items = [\n { text: this.localization.get(\"filterIsTrue\"), value: true },\n { text: this.localization.get(\"filterIsFalse\"), value: false }\n ];\n /**\n * @hidden\n */\n this.defaultItem = { text: this.localization.get(\"filterBooleanAll\"), value: null };\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return true;\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n get currentFilter() {\n return this.filterByField(this.column.field);\n }\n /**\n * The current filter operator for the associated column field.\n * @readonly\n * @type {string}\n */\n get currentOperator() {\n return this.currentFilter ? this.currentFilter.operator : this.operator;\n }\n ngOnInit() {\n this.subscription = this.localization.changes.subscribe(this.localizationChange.bind(this));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n localizationChange() {\n this.items = [\n { text: this.localization.get(\"filterIsTrue\"), value: true },\n { text: this.localization.get(\"filterIsFalse\"), value: false }\n ];\n this.defaultItem = { text: this.localization.get(\"filterBooleanAll\"), value: null };\n }\n}\nBooleanFilterComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-filtercell-boolean',] }],\n column: [{ type: Input }],\n filter: [{ type: Input }]\n};\n\n/**\n * Represents a Boolean filter-cell component.\n *\n * @example\n *\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nclass BooleanFilterCellComponent extends BooleanFilterComponent {\n constructor(filterService, localization, cd) {\n super(filterService, localization);\n this.cd = cd;\n }\n localizationChange() {\n super.localizationChange();\n this.cd.markForCheck();\n }\n}\nBooleanFilterCellComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-boolean-filter-cell',\n template: `\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nBooleanFilterCellComponent.ctorParameters = () => [\n { type: FilterService },\n { type: LocalizationService },\n { type: ChangeDetectorRef }\n];\n\n// tslint:disable:no-access-missing-member\nconst dateOperators = localizeOperators$1({\n \"filterEqOperator\": \"eq\",\n \"filterNotEqOperator\": \"neq\",\n // tslint:disable-next-line:object-literal-sort-keys\n \"filterAfterOrEqualOperator\": \"gte\",\n \"filterAfterOperator\": \"gt\",\n \"filterBeforeOrEqualOperator\": \"lte\",\n \"filterBeforeOperator\": \"lt\",\n \"filterIsNullOperator\": \"isnull\",\n \"filterIsNotNullOperator\": \"isnotnull\"\n});\n/**\n * @hidden\n */\nclass DateFilterComponent extends BaseFilterCellComponent {\n constructor(filterService, localization) {\n super(filterService);\n this.localization = localization;\n /**\n * The default filter operator. Defaults to `contains`.\n * @type {string}\n */\n this.operator = \"gte\";\n /**\n * Defines the active view that the calendar initially renders.\n * By default, the active view is `month`.\n *\n * > You have to set `activeView` within the `topView`-`bottomView` range.\n */\n this.activeView = \"month\";\n /**\n * Defines the bottommost calendar view, to which the user can navigate.\n */\n this.bottomView = \"month\";\n /**\n * Defines the topmost calendar view, to which the user can navigate.\n */\n this.topView = \"century\";\n /**\n * Determines whether to display a week number column in the `month` view of the Calendar.\n */\n this.weekNumber = false;\n this.defaultOperators = dateOperators(this.localization);\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n get currentFilter() {\n return this.filterByField(this.column.field);\n }\n /**\n * Specifies the date format that is used when the component is not focused.\n * By default, the `column.format` value is used (if set).\n */\n set format(value) {\n this._format = value;\n }\n /**\n * Specifies the date format that is used when the component is not focused.\n * By default, the `column.format` value is used (if set).\n *\n * @readonly\n * @type {string}\n */\n get format() {\n return !isNullOrEmptyString(this._format) ? this._format : this.columnFormat;\n }\n get columnFormat() {\n return this.column && !isNullOrEmptyString(this.column.format) ?\n extractFormat(this.column.format) : \"d\";\n }\n /**\n * The current filter operator for the associated column field.\n * @readonly\n * @type {string}\n */\n get currentOperator() {\n return this.currentFilter ? this.currentFilter.operator : this.operator;\n }\n ngOnInit() {\n this.subscription = this.localization.changes.subscribe(this.localizationChange.bind(this));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n localizationChange() {\n this.defaultOperators = dateOperators(this.localization);\n if (this.operatorList.length) {\n this.operators = toJSON(this.operatorList.toArray());\n }\n }\n}\nDateFilterComponent.propDecorators = {\n column: [{ type: Input }],\n filter: [{ type: Input }],\n operator: [{ type: Input }],\n format: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n formatPlaceholder: [{ type: Input }],\n placeholder: [{ type: Input }],\n activeView: [{ type: Input }],\n bottomView: [{ type: Input }],\n topView: [{ type: Input }],\n weekNumber: [{ type: Input }]\n};\n\n/**\n * Represents a date-filter cell component.\n *\n * @example\n *\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nclass DateFilterCellComponent extends DateFilterComponent {\n constructor(filterService, localization) {\n super(filterService, localization);\n this.localization = localization;\n /**\n * Determines if the drop-down filter operators will be displayed. The default value is `true`.\n * @type {boolean}\n */\n this.showOperators = true;\n }\n}\nDateFilterCellComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-date-filter-cell',\n template: `\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nDateFilterCellComponent.ctorParameters = () => [\n { type: FilterService },\n { type: LocalizationService }\n];\nDateFilterCellComponent.propDecorators = {\n showOperators: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass ColGroupComponent {\n constructor() {\n this.columns = [];\n this.groups = [];\n }\n get columnsToRender() {\n return columnsToRender(this.columns);\n }\n trackBy(index, _item) {\n return index;\n }\n}\nColGroupComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoGridColGroup]',\n template: `\n \n \n \n \n \n `\n },] },\n];\nColGroupComponent.propDecorators = {\n columns: [{ type: Input }],\n groups: [{ type: Input }],\n detailTemplate: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass LoadingComponent {\n constructor(localization) {\n this.localization = localization;\n this.hostClass = true;\n }\n get loadingText() {\n return this.localization.get('loading');\n }\n}\nLoadingComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoGridLoading]',\n template: `\n {{ loadingText }}\n
\n
\n `\n },] },\n];\n/** @nocollapse */\nLoadingComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nLoadingComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-loading-mask',] }]\n};\n\n/**\n * @hidden\n */\nclass ResizableContainerDirective {\n constructor(el, renderer, resizeService, grid) {\n this.el = el;\n this.renderer = renderer;\n this.resizeService = resizeService;\n this.grid = grid;\n this.enabled = false;\n }\n set lockedWidth(value) {\n this._lockedWidth = value;\n if (this.enabled) {\n this.attachResize();\n this.resize();\n }\n }\n set kendoGridResizableContainer(enabled) {\n const refresh = enabled !== this.enabled;\n this.enabled = enabled;\n if (refresh) {\n this.attachResize();\n this.resize();\n }\n }\n ngOnDestroy() {\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n attachResize() {\n if (this.resizeSubscription && !this.enabled) {\n this.resizeSubscription.unsubscribe();\n this.resizeSubscription = null;\n }\n if (!this.resizeSubscription && this.enabled) {\n this.resizeSubscription = this.resizeService.changes.subscribe(this.resize.bind(this));\n }\n }\n resize() {\n if (this.grid && this.grid.wrapper) {\n const containerElement = this.grid.wrapper.nativeElement;\n const width = Math.max(containerElement.clientWidth - this._lockedWidth, 0);\n if (this.enabled && width > 0) {\n this.renderer.setStyle(this.el.nativeElement, \"width\", width + \"px\");\n }\n else {\n this.renderer.setStyle(this.el.nativeElement, \"width\", \"\");\n }\n }\n }\n}\nResizableContainerDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridResizableContainer]'\n },] },\n];\n/** @nocollapse */\nResizableContainerDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: ResizeService },\n { type: GridComponent, decorators: [{ type: Optional }] }\n];\nResizableContainerDirective.propDecorators = {\n lockedWidth: [{ type: Input, args: ['lockedWidth',] }],\n kendoGridResizableContainer: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass TemplateContextDirective {\n constructor(viewContainerRef) {\n this.viewContainerRef = viewContainerRef;\n }\n set templateContext(context) {\n this.removeView();\n if (context.templateRef) {\n this.insertedViewRef = this.viewContainerRef.createEmbeddedView(context.templateRef, context);\n }\n }\n ngOnDestroy() {\n this.removeView();\n }\n removeView() {\n if (this.insertedViewRef) {\n this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.insertedViewRef));\n this.insertedViewRef = undefined;\n }\n }\n}\nTemplateContextDirective.decorators = [\n { type: Directive, args: [{\n selector: '[templateContext]' // tslint:disable-line:directive-selector\n },] },\n];\n/** @nocollapse */\nTemplateContextDirective.ctorParameters = () => [\n { type: ViewContainerRef }\n];\nTemplateContextDirective.propDecorators = {\n templateContext: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass FocusGroup {\n constructor(root) {\n this.root = root;\n this.active = true;\n this.children = [];\n this.root.registerGroup(this);\n }\n get focusableChildren() {\n return this.children.filter(el => el.canFocus());\n }\n get isActive() {\n return this.active;\n }\n ngOnDestroy() {\n this.root.unregisterGroup(this);\n }\n registerElement(element) {\n this.unregisterElement(element);\n this.children.push(element);\n }\n unregisterElement(element) {\n this.children = this.children.filter(f => f !== element);\n }\n /**\n * Returns a Boolean value which indicates if the group will receive focus when the cell is focused.\n * Requires a single \"simple\" focusable element such as a button or a checkbox.\n */\n isNavigable() {\n const focusable = this.focusableChildren;\n return focusable.length === 1 && focusable[0].isNavigable();\n }\n canFocus() {\n return this.focusableChildren.length > 0;\n }\n focus() {\n if (this.canFocus() && !this.hasFocus()) {\n this.focusableChildren[0].focus();\n }\n }\n activate() {\n this.toggleState(true);\n }\n deactivate() {\n this.toggleState(false);\n }\n hasFocus() {\n return this.children.reduce((focused, element) => focused || element.hasFocus(), false);\n }\n toggleState(active) {\n if (this.active !== active) {\n this.active = active;\n this.children.forEach(f => f.toggle(active));\n }\n }\n}\nFocusGroup.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nFocusGroup.ctorParameters = () => [\n { type: FocusRoot }\n];\n\nlet id = 0;\nfunction nextId() {\n return id++;\n}\n/**\n * @hidden\n */\nclass LogicalCellDirective {\n constructor(focusGroup, element, columnInfoService, idService, navigationService, renderer, zone, cellContext) {\n this.focusGroup = focusGroup;\n this.element = element;\n this.columnInfoService = columnInfoService;\n this.idService = idService;\n this.navigationService = navigationService;\n this.renderer = renderer;\n this.zone = zone;\n this.cellContext = cellContext;\n this.logicalSlaveCell = false;\n this.colSpan = 1;\n this.rowSpan = 1;\n this.dataRowIndex = -1;\n this.detailExpandCell = false;\n this.uid = nextId();\n }\n get id() {\n if (!this.logicalSlaveCell && this.columnInfoService.isLocked) {\n return this.idService.cellId(this.logicalRowIndex, this.logicalColIndex);\n }\n }\n get ariaColIndex() {\n if (this.logicalSlaveCell || this.logicalColIndex === -1) {\n return undefined;\n }\n return this.logicalColIndex + 1;\n }\n ngOnInit() {\n if (!this.navigationService.enabled) {\n return;\n }\n this.navigationChange = this.navigationService.changes.subscribe((e) => this.onNavigationChange(e));\n }\n ngDoCheck() {\n if (!this.navigationService.enabled || this.logicalColIndex === -1) {\n return;\n }\n if (this.cellContext) {\n this.cellContext.focusGroup = this.focusGroup;\n }\n this.registerNoChanges();\n }\n ngOnChanges(changes) {\n if (!this.navigationService.enabled) {\n return;\n }\n const keys = Object.keys(changes);\n if ((keys.length === 1 && keys[0] === 'groupItem') || this.logicalColIndex === -1) {\n // Ignore groupItem changes as the reference is not stable\n return;\n }\n const indexChange = changes.logicalColIndex;\n const rowIndexChange = changes.logicalRowIndex;\n const index = indexChange && !indexChange.isFirstChange() ? indexChange.previousValue : this.logicalColIndex;\n const rowIndex = rowIndexChange && !rowIndexChange.isFirstChange() ? rowIndexChange.previousValue : this.logicalRowIndex;\n this.navigationService.unregisterCell(index, rowIndex, this);\n this.registerChanges();\n this.updateElement();\n }\n ngOnDestroy() {\n if (this.navigationChange) {\n this.navigationChange.unsubscribe();\n }\n this.navigationService.unregisterCell(this.logicalColIndex, this.logicalRowIndex, this);\n }\n onNavigationChange(e) {\n const active = this.logicalColIndex === e.colIndex && this.logicalRowIndex === e.rowIndex;\n const wasActive = this.logicalColIndex === e.prevColIndex && this.logicalRowIndex === e.prevRowIndex;\n if (active || wasActive) {\n this.updateElement();\n }\n }\n updateElement() {\n const el = this.element.nativeElement;\n this.renderer.setAttribute(el, 'tabIndex', this.isFocusable() && !this.logicalSlaveCell ? '0' : '-1');\n if (this.isFocused()) {\n if (this.focusGroup.isNavigable()) {\n this.focusGroup.focus();\n }\n else {\n if (!this.logicalSlaveCell && this.navigationService.autoFocusCell(this.logicalColIndex, this.logicalColIndex + this.colSpan - 1)) {\n this.microtask(() => this.isFocused() && el.focus());\n }\n this.renderer.addClass(el, 'k-state-focused');\n }\n }\n else {\n this.renderer.removeClass(el, 'k-state-focused');\n }\n }\n microtask(callback) {\n this.zone.runOutsideAngular(() => Promise.resolve(null).then(callback));\n }\n registerChanges() {\n if (!this.logicalSlaveCell) {\n this.navigationService.registerCell(this);\n }\n }\n registerNoChanges() {\n if (!this.logicalSlaveCell) {\n this.navigationService.registerCellOnCurrentRow(this);\n }\n }\n isFocusable() {\n return this.navigationService.isCellFocusable(this);\n }\n isFocused() {\n return this.navigationService.isCellFocused(this);\n }\n}\nLogicalCellDirective.decorators = [\n { type: Directive, args: [{\n providers: [{\n provide: FocusGroup,\n deps: [FocusRoot],\n useClass: FocusGroup\n }],\n selector: '[kendoGridLogicalCell]'\n },] },\n];\n/** @nocollapse */\nLogicalCellDirective.ctorParameters = () => [\n { type: FocusGroup },\n { type: ElementRef },\n { type: ColumnInfoService },\n { type: IdService },\n { type: NavigationService },\n { type: Renderer2 },\n { type: NgZone },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [CELL_CONTEXT,] }] }\n];\nLogicalCellDirective.propDecorators = {\n logicalColIndex: [{ type: Input }],\n logicalRowIndex: [{ type: Input }],\n logicalSlaveCell: [{ type: Input }],\n colIndex: [{ type: Input }],\n colSpan: [{ type: Input }],\n rowSpan: [{ type: Input }],\n groupItem: [{ type: Input }],\n dataRowIndex: [{ type: Input }],\n dataItem: [{ type: Input }],\n detailExpandCell: [{ type: Input }],\n id: [{ type: HostBinding, args: ['attr.id',] }],\n ariaColIndex: [{ type: HostBinding, args: ['attr.aria-colindex',] }]\n};\n\nlet id$1 = 0;\nfunction nextId$1() {\n return id$1++;\n}\n/**\n * @hidden\n */\nclass LogicalRowDirective {\n constructor(idService, navigation) {\n this.idService = idService;\n this.navigation = navigation;\n this.logicalSlaveRow = false;\n this.logicalSlaveCellsCount = 0;\n this.dataRowIndex = -1;\n this.uid = nextId$1();\n }\n get hostRole() {\n return this.logicalSlaveRow ? 'presentation' : 'row';\n }\n get ariaRowIndex() {\n if (this.navigation.enabled) {\n return this.logicalRowIndex + 1;\n }\n }\n get ariaOwns() {\n if (!this.navigation.enabled || this.logicalSlaveRow || this.logicalSlaveCellsCount === 0) {\n return undefined;\n }\n const ids = [];\n const total = this.logicalCellsCount + this.logicalSlaveCellsCount;\n for (let cellIndex = this.logicalCellsCount; cellIndex < total; cellIndex++) {\n ids.push(this.idService.cellId(this.logicalRowIndex, cellIndex));\n }\n return ids.join(' ');\n }\n ngOnChanges(changes) {\n if (!this.navigation.enabled || this.logicalSlaveRow) {\n return;\n }\n const indexChange = changes.logicalRowIndex;\n const logicalSlaveRowChange = changes.logicalSlaveRow;\n if (indexChange || logicalSlaveRowChange) {\n const index = indexChange && !indexChange.isFirstChange() ? indexChange.previousValue : this.logicalRowIndex;\n this.navigation.unregisterRow(index, this);\n this.navigation.registerRow(this);\n }\n else if (anyChanged(['dataRowIndex', 'dataItem'], changes)) {\n this.navigation.updateRow(this);\n }\n }\n ngOnDestroy() {\n this.navigation.unregisterRow(this.logicalRowIndex, this);\n }\n}\nLogicalRowDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridLogicalRow]'\n },] },\n];\n/** @nocollapse */\nLogicalRowDirective.ctorParameters = () => [\n { type: IdService },\n { type: NavigationService }\n];\nLogicalRowDirective.propDecorators = {\n logicalRowIndex: [{ type: Input }],\n logicalSlaveRow: [{ type: Input }],\n logicalCellsCount: [{ type: Input }],\n logicalSlaveCellsCount: [{ type: Input }],\n dataRowIndex: [{ type: Input }],\n dataItem: [{ type: Input }],\n hostRole: [{ type: HostBinding, args: ['attr.role',] }],\n ariaRowIndex: [{ type: HostBinding, args: ['attr.aria-rowindex',] }],\n ariaOwns: [{ type: HostBinding, args: ['attr.aria-owns',] }]\n};\n\n/* tslint:disable:pipe-naming */\nconst FORMAT_REGEX = /\\{\\d+:?/;\n/**\n * @hidden\n */\nclass FieldAccessorPipe {\n constructor(intlService) {\n this.intlService = intlService;\n }\n transform(dataItem, fieldName, format) {\n if (!isNullOrEmptyString(fieldName)) {\n const value = getter(fieldName)(dataItem);\n if (!isNullOrEmptyString(format)) {\n return this.formatValue(format, value);\n }\n return value;\n }\n return dataItem;\n }\n formatValue(format, value) {\n const intl = this.intlService;\n if (isString(format) && format.match(FORMAT_REGEX)) {\n return intl.format(format, value);\n }\n return intl.toString(value, format);\n }\n}\nFieldAccessorPipe.decorators = [\n { type: Pipe, args: [{\n name: 'valueOf',\n pure: false\n },] },\n];\n/** @nocollapse */\nFieldAccessorPipe.ctorParameters = () => [\n { type: IntlService }\n];\n\n/**\n * @hidden\n */\nconst columnsToResize = ({ columns }) => Math.max(1, resizableColumns(columns).length);\n/**\n * @hidden\n */\nconst row = selector => element => element.querySelector(selector);\n/**\n * @hidden\n */\nconst headerRow = index => element => element.querySelectorAll('thead>tr')[index];\n/**\n * @hidden\n */\nconst cell = (index, selector = 'td') => element => element.querySelectorAll(`${selector}:not(.k-group-cell):not(.k-hierarchy-cell)`)[index];\n/**\n * @hidden\n */\nconst offsetWidth = element => element.offsetWidth;\n/**\n * @hidden\n */\nconst pipe = (...fns) => data => fns.reduce((state$$1, fn) => state$$1 ? fn(state$$1) : 0, data);\n/**\n * @hidden\n */\nclass TableDirective {\n constructor(element, renderer, service, zone, cdr) {\n this.element = element;\n this.renderer = renderer;\n this.service = service;\n this.zone = zone;\n this.cdr = cdr;\n this.locked = false;\n this.firstResize = false;\n }\n get minWidth() {\n return this.firstResize ? 0 : null;\n }\n ngOnInit() {\n const obs = this.service\n .changes.pipe(filter(e => this.locked === e.locked));\n this.subscription = obs.pipe(filter(e => e.type === 'start'), tap(this.initState.bind(this)), map(columnsToResize), switchMap((take$$1) => obs.pipe(filter(e => e.type === 'resizeTable'), map(e => e.delta), bufferCount(take$$1)))).subscribe(this.resize.bind(this));\n this.autoFitSubscription = this.service\n .registerTable({\n autoFit: this.autoFitObservable.bind(this),\n locked: this.locked\n });\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n if (this.autoFitSubscription) {\n this.autoFitSubscription();\n this.autoFitSubscription = null;\n }\n }\n initState() {\n this.firstResize = true;\n if (!this.virtualColumns || this.locked) {\n this.originalWidth = offsetWidth(this.element.nativeElement);\n }\n }\n resize(deltas) {\n if (!this.virtualColumns || this.locked) {\n const delta = deltas.reduce((sum, item) => sum + item, 0);\n const width = this.originalWidth + delta;\n this.renderer.setStyle(this.element.nativeElement, 'width', width + 'px');\n }\n this.cdr.detectChanges();\n }\n autoFitObservable(columnInfo) {\n return Observable.create(observer => {\n this.zone.runOutsideAngular(() => {\n this.renderer.addClass(this.element.nativeElement, 'k-autofitting');\n this.cdr.detectChanges();\n const widths = columnInfo.map(this.measureColumn.bind(this));\n this.renderer.removeClass(this.element.nativeElement, 'k-autofitting');\n observer.next(widths);\n });\n });\n }\n measureColumn(info) {\n const dom = this.element.nativeElement;\n const header = pipe(headerRow(info.level), cell(info.headerIndex, 'th'), offsetWidth)(dom);\n let data = 0;\n if (!info.isParentSpan || (info.isParentSpan && info.isLastInSpan)) {\n data = pipe(row('tbody>tr:not(.k-grouping-row):not(.k-grid-norecords)'), cell(info.index), offsetWidth)(dom);\n }\n const footer = pipe(row('tfoot>tr'), cell(info.index), offsetWidth)(dom);\n return Math.max(header, data, footer);\n }\n}\nTableDirective.decorators = [\n { type: Directive, args: [{\n selector: 'table' // tslint:disable-line:directive-selector\n },] },\n];\n/** @nocollapse */\nTableDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: ColumnResizingService },\n { type: NgZone },\n { type: ChangeDetectorRef }\n];\nTableDirective.propDecorators = {\n locked: [{ type: Input }],\n virtualColumns: [{ type: Input }],\n minWidth: [{ type: HostBinding, args: ['style.min-width',] }]\n};\n\nconst exportedModules = [\n ColumnComponent,\n ColumnGroupComponent,\n LogicalCellDirective,\n LogicalRowDirective,\n FocusableDirective,\n FooterTemplateDirective,\n ColGroupComponent,\n ResizableContainerDirective,\n TemplateContextDirective,\n FieldAccessorPipe,\n DetailTemplateDirective,\n SpanColumnComponent,\n TableDirective,\n LoadingComponent\n];\n/**\n * @hidden\n */\nclass SharedModule {\n static exports() {\n return [\n ColumnComponent,\n SpanColumnComponent,\n ColumnGroupComponent,\n FooterTemplateDirective,\n DetailTemplateDirective,\n FocusableDirective\n ];\n }\n}\nSharedModule.decorators = [\n { type: NgModule, args: [{\n declarations: [exportedModules],\n exports: [exportedModules, DraggableModule, EventsModule],\n imports: [CommonModule]\n },] },\n];\n\n/**\n * Represents the `Contains` (**Contains**) filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass ContainsFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"contains\", localization); }\n}\nContainsFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => ContainsFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-contains-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nContainsFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the `DoesNotContain` (**Does not contain**) filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass DoesNotContainFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"doesnotcontain\", localization); }\n}\nDoesNotContainFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => DoesNotContainFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-not-contains-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nDoesNotContainFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the `EndsWith` (**Ends with**) string filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass EndsWithFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"endswith\", localization); }\n}\nEndsWithFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EndsWithFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-endswith-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nEndsWithFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the `Equal` (**Is equal to**) filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass EqualFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"eq\", localization); }\n}\nEqualFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EqualFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-eq-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nEqualFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the `IsEmpty` (**Is empty**) filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass IsEmptyFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isempty\", localization); }\n}\nIsEmptyFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsEmptyFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-isempty-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nIsEmptyFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the `IsNotEmpty` (**Is not empty**) filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass IsNotEmptyFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isnotempty\", localization); }\n}\nIsNotEmptyFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotEmptyFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-isnotempty-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nIsNotEmptyFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the `IsNotNull` (**Is not null**) filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass IsNotNullFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isnotnull\", localization); }\n}\nIsNotNullFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotNullFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-isnotnull-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nIsNotNullFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the `IsNull` (**Is null**) filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass IsNullFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isnull\", localization); }\n}\nIsNullFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNullFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-isnull-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nIsNullFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the `NotEqual` (**Is not equal to**) filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass NotEqualFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"neq\", localization); }\n}\nNotEqualFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => NotEqualFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-neq-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nNotEqualFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the `StartsWith` (**Starts with**) filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass StartsWithFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"startswith\", localization); }\n}\nStartsWithFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => StartsWithFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-startswith-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nStartsWithFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/*\n * Represents the `Greater` (**Is greater than**) numeric filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass GreaterFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"gt\", localization); }\n}\nGreaterFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-gt-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nGreaterFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the `GreaterOrEqualTo` (**Is greater than or equal to**) numeric filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass GreaterOrEqualToFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"gte\", localization); }\n}\nGreaterOrEqualToFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterOrEqualToFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-gte-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nGreaterOrEqualToFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/*\n * Represents the `Less` (**Is less than**) numeric filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass LessFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"lt\", localization); }\n}\nLessFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-lt-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nLessFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/*\n * Represents the `LessOrEqualTo` (**Is less than or equal to**) numeric filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass LessOrEqualToFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"lte\", localization); }\n}\nLessOrEqualToFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessOrEqualToFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-lte-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nLessOrEqualToFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/*\n * Represents the `Greater` (**Is after**) date filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass AfterFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"after\", localization); }\n /**\n * @hidden\n */\n toJSON() {\n return {\n text: this.text,\n value: \"gt\"\n };\n }\n}\nAfterFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-after-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nAfterFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/*\n * Represents the `GreaterOrEqualTo` (**Is after or equal to**) date filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass AfterEqFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"after-eq\", localization); }\n /**\n * @hidden\n */\n toJSON() {\n return {\n text: this.text,\n value: \"gte\"\n };\n }\n}\nAfterEqFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterEqFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-after-eq-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nAfterEqFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/*\n * Represents the `LessOrEqualTo` (**Is before or equal to**) date filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass BeforeEqFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"before-eq\", localization); }\n /**\n * @hidden\n */\n toJSON() {\n return {\n text: this.text,\n value: \"lte\"\n };\n }\n}\nBeforeEqFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeEqFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-before-eq-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nBeforeEqFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/*\n * Represents the `Less then` (**Is before**) date filter operator.\n *\n * For more information and examples, refer to:\n * * [Setting the default filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_grid %}#toc-setting-the-order-of-the-filter-operators)\n */\nclass BeforeFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"before\", localization); }\n /**\n * @hidden\n */\n toJSON() {\n return {\n text: this.text,\n value: \"lt\"\n };\n }\n}\nBeforeFilterOperatorComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeFilterOperatorComponent)\n }\n ],\n selector: 'kendo-filter-before-operator',\n template: ``\n },] },\n];\n/** @nocollapse */\nBeforeFilterOperatorComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\nconst FILTER_OPERATORS = [\n FilterCellOperatorsComponent,\n ContainsFilterOperatorComponent,\n DoesNotContainFilterOperatorComponent,\n EndsWithFilterOperatorComponent,\n EqualFilterOperatorComponent,\n IsEmptyFilterOperatorComponent,\n IsNotEmptyFilterOperatorComponent,\n IsNotNullFilterOperatorComponent,\n IsNullFilterOperatorComponent,\n NotEqualFilterOperatorComponent,\n StartsWithFilterOperatorComponent,\n GreaterFilterOperatorComponent,\n GreaterOrEqualToFilterOperatorComponent,\n LessFilterOperatorComponent,\n LessOrEqualToFilterOperatorComponent,\n AfterFilterOperatorComponent,\n AfterEqFilterOperatorComponent,\n BeforeEqFilterOperatorComponent,\n BeforeFilterOperatorComponent\n];\nconst importedModules = [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n DropDownListModule,\n AutoCompleteModule,\n InputsModule,\n DatePickerModule,\n PopupModule,\n SharedModule\n];\nconst COMPONENTS = [\n FilterInputDirective\n];\n/**\n * @hidden\n */\nclass SharedFilterModule {\n static exports() {\n return [\n ...FILTER_OPERATORS\n ];\n }\n}\nSharedFilterModule.decorators = [\n { type: NgModule, args: [{\n declarations: [FILTER_OPERATORS, COMPONENTS],\n exports: [FILTER_OPERATORS, importedModules, COMPONENTS],\n imports: [...importedModules]\n },] },\n];\n\n/**\n * @hidden\n */\nclass FilterHostDirective {\n constructor(host, resolver) {\n this.host = host;\n this.resolver = resolver;\n }\n ngOnInit() {\n this.component = this.host.createComponent(this.resolver.resolveComponentFactory(this.componentType()));\n this.initComponent({\n column: this.column,\n filter: this.filter\n });\n }\n ngOnDestroy() {\n if (this.component) {\n this.component.destroy();\n this.component = null;\n }\n }\n ngOnChanges(changes) {\n if (anyChanged([\"column\", \"filter\"], changes)) {\n this.initComponent({\n column: this.column,\n filter: this.filter\n });\n }\n }\n initComponent({ column, filter: filter$$1 }) {\n const instance = this.component.instance;\n instance.column = column;\n instance.filter = filter$$1;\n }\n}\nFilterHostDirective.propDecorators = {\n column: [{ type: Input }],\n filter: [{ type: Input }]\n};\n\n/**\n * @hidden\n *\n * > List the following components in the GridModule as `entryComponents`.\n */\nconst filterComponentFactory = (type) => ({\n \"boolean\": BooleanFilterCellComponent,\n \"date\": DateFilterCellComponent,\n \"numeric\": NumericFilterCellComponent,\n \"text\": StringFilterCellComponent\n}[type]);\n\n/**\n * @hidden\n */\nclass FilterCellHostDirective extends FilterHostDirective {\n constructor(host, resolver) {\n super(host, resolver);\n }\n componentType() {\n if (!isNullOrEmptyString(this.column.filter)) {\n return filterComponentFactory(this.column.filter);\n }\n return StringFilterCellComponent;\n }\n}\nFilterCellHostDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoFilterCellHost]'\n },] },\n];\n/** @nocollapse */\nFilterCellHostDirective.ctorParameters = () => [\n { type: ViewContainerRef },\n { type: ComponentFactoryResolver }\n];\n\nconst INTERNAL_COMPONENTS = [\n FilterRowComponent,\n FilterCellComponent,\n FilterCellTemplateDirective,\n StringFilterCellComponent,\n NumericFilterCellComponent,\n AutoCompleteFilterCellComponent,\n BooleanFilterCellComponent,\n FilterCellHostDirective,\n FilterCellWrapperComponent,\n DateFilterCellComponent\n];\nconst ENTRY_COMPONENTS = [\n StringFilterCellComponent,\n NumericFilterCellComponent,\n BooleanFilterCellComponent,\n DateFilterCellComponent\n];\n/**\n * @hidden\n */\nclass RowFilterModule {\n static exports() {\n return [\n FilterRowComponent,\n FilterCellComponent,\n FilterCellTemplateDirective,\n FilterCellOperatorsComponent,\n StringFilterCellComponent,\n NumericFilterCellComponent,\n AutoCompleteFilterCellComponent,\n BooleanFilterCellComponent,\n DateFilterCellComponent,\n SharedFilterModule.exports()\n ];\n }\n}\nRowFilterModule.decorators = [\n { type: NgModule, args: [{\n declarations: [INTERNAL_COMPONENTS],\n entryComponents: ENTRY_COMPONENTS,\n exports: [INTERNAL_COMPONENTS, SharedFilterModule],\n imports: [SharedFilterModule]\n },] },\n];\n\n/**\n * @hidden\n */\nconst normalizeSettings = ({ buttonCount = 10, info = true, type = 'numeric', pageSizes = false, previousNext = true }) => ({\n buttonCount,\n info,\n pageSizes: pageSizes === true ? [5, 10, 20] : pageSizes,\n previousNext,\n type\n});\n/**\n * @hidden\n */\nconst normalize = (settings) => normalizeSettings(settings === true ? {} : settings);\n\n/**\n * @hidden\n */\nclass PagerComponent {\n constructor(pagerContext) {\n this.pagerContext = pagerContext;\n this.total = 0;\n this.skip = 1;\n this.pageChange = new EventEmitter();\n this.settings = normalize({});\n this._templateContext = {};\n }\n set options(value) {\n this.settings = normalize(value);\n }\n get pagerWrapClass() {\n return true;\n }\n get gridPagerClass() {\n return true;\n }\n get widgetClass() {\n return true;\n }\n get totalPages() {\n return Math.ceil((this.total || 0) / this.pageSize);\n }\n get currentPage() {\n return Math.floor((this.skip || 0) / this.pageSize) + 1;\n }\n get templateContext() {\n const context = this._templateContext;\n context.totalPages = this.totalPages;\n context.total = this.total;\n context.skip = this.skip;\n context.pageSize = this.pageSize;\n context.currentPage = this.currentPage;\n return context;\n }\n ngOnInit() {\n this.pageChangeSubscription = this.pagerContext.pageChange.subscribe(this.changePage.bind(this));\n }\n ngOnChanges(changes) {\n if (anyChanged([\"pageSize\", \"skip\", \"total\"], changes, false)) {\n this.pagerContext.notifyChanges({\n pageSize: this.pageSize,\n skip: this.skip,\n total: this.total\n });\n }\n }\n ngOnDestroy() {\n if (this.pageChangeSubscription) {\n this.pageChangeSubscription.unsubscribe();\n }\n }\n changePage(event) {\n this.pageChange.emit(event);\n }\n}\nPagerComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-pager',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nPagerComponent.ctorParameters = () => [\n { type: PagerContextService }\n];\nPagerComponent.propDecorators = {\n total: [{ type: Input }],\n skip: [{ type: Input }],\n pageSize: [{ type: Input }],\n options: [{ type: Input }],\n template: [{ type: Input }],\n pageChange: [{ type: Output }],\n pagerWrapClass: [{ type: HostBinding, args: ['class.k-pager-wrap',] }],\n gridPagerClass: [{ type: HostBinding, args: ['class.k-grid-pager',] }],\n widgetClass: [{ type: HostBinding, args: ['class.k-widget',] }]\n};\n\n/**\n * @hidden\n */\nclass PagerElementComponent {\n constructor(localization, pagerContext, cd) {\n this.localization = localization;\n this.pagerContext = pagerContext;\n this.cd = cd;\n this.total = this.pagerContext.total;\n this.skip = this.pagerContext.skip;\n this.pageSize = this.pagerContext.pageSize;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerElementComponent\n */\n get currentPage() {\n return Math.floor((this.skip || 0) / this.pageSize) + 1;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerElementComponent\n */\n get totalPages() {\n return Math.ceil((this.total || 0) / this.pageSize);\n }\n /**\n * @hidden\n *\n * @param {string} key\n * @returns {string}\n *\n * @memberOf PagerElementComponent\n */\n textFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n *\n * @param {number} page\n *\n * @memberOf PagerElementComponent\n */\n changePage(page) {\n this.pagerContext.changePage(page);\n return false;\n }\n /**\n * @hidden\n *\n * @memberOf PagerElementComponent\n */\n ngOnInit() {\n this.subscriptions = this.pagerContext.changes.subscribe(this.onChanges.bind(this));\n this.subscriptions.add(this.localization.changes.subscribe(() => this.cd.markForCheck()));\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n}\n\n// tslint:disable:no-access-missing-member\n/**\n * Displays buttons for navigating to the first and to the previous page ([see example]({% slug paging_grid %}#toc-pager-templates)).\n */\nclass PagerPrevButtonsComponent extends PagerElementComponent {\n constructor(localization, pagerContext, cd) {\n super(localization, pagerContext, cd);\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerPrevButtonsComponent\n */\n get disabled() {\n return this.currentPage === 1 || !this.total;\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n}\nPagerPrevButtonsComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-pager-prev-buttons',\n template: `\n \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nPagerPrevButtonsComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: PagerContextService },\n { type: ChangeDetectorRef }\n];\n\n// tslint:disable: no-access-missing-member\n/**\n * Displays buttons for navigating to the next and to the last page ([see example]({% slug paging_grid %}#toc-pager-templates)).\n */\nclass PagerNextButtonsComponent extends PagerElementComponent {\n constructor(localization, pagerContext, cd) {\n super(localization, pagerContext, cd);\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerNextButtonsComponent\n */\n get disabled() {\n return this.currentPage === this.totalPages || !this.total;\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n}\nPagerNextButtonsComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-pager-next-buttons',\n template: `\n \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nPagerNextButtonsComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: PagerContextService },\n { type: ChangeDetectorRef }\n];\n\n/**\n * Displays numeric buttons to enable navigation between the pages.\n */\nclass PagerNumericButtonsComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number[]}\n * @memberOf PagerNumericButtonsComponent\n */\n get buttons() {\n let result = [];\n for (let idx = this.start; idx <= this.end; idx++) {\n result.push(idx);\n }\n return result;\n }\n /**\n * @hidden\n */\n get end() {\n return Math.min((this.start + this.buttonCount) - 1, this.totalPages);\n }\n /**\n * @hidden\n */\n get start() {\n const page = this.currentPage;\n const buttonCount = this.buttonCount;\n if (page > buttonCount) {\n const reminder = (page % buttonCount);\n return (reminder === 0) ? (page - buttonCount) + 1 : (page - reminder) + 1;\n }\n return 1;\n }\n /**\n * @hidden\n */\n pageLabel(num) {\n const pageText = this.textFor('pagerPage');\n if (pageText) {\n return pageText + ' ' + num;\n }\n return num.toString();\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n}\nPagerNumericButtonsComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-pager-numeric-buttons',\n template: `\n \n `\n },] },\n];\n/** @nocollapse */\nPagerNumericButtonsComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: ChangeDetectorRef },\n { type: PagerContextService }\n];\nPagerNumericButtonsComponent.propDecorators = {\n buttonCount: [{ type: Input }]\n};\n\n/**\n * Displays an input element which allows the typing and rendering of page numbers.\n */\nclass PagerInputComponent extends PagerElementComponent {\n constructor(localization, pagerContext, zone, cd) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n this.zone = zone;\n /**\n * @hidden\n *\n * @param {string} value\n *\n * @memberOf PagerInputComponent\n */\n this.handleKeyDown = (event) => {\n let incomingValue = this.numericInput.value || this.current;\n if (event.keyCode === Keys.Enter) {\n event.preventDefault();\n if (incomingValue !== this.current) {\n this.zone.run(() => {\n this.changePage(incomingValue - 1);\n });\n }\n }\n };\n /**\n * @hidden\n *\n * @param {string} value\n *\n * @memberOf PagerInputComponent\n */\n this.handleBlur = () => {\n const inputValue = this.numericInput.value;\n if (!inputValue) {\n this.numericInput.writeValue(this.current);\n return;\n }\n if (inputValue !== this.current) {\n this.zone.run(() => {\n this.changePage(inputValue - 1);\n });\n }\n };\n }\n /**\n * @hidden\n */\n get current() {\n return this.hasPages ? this.currentPage : 0;\n }\n get hasPages() {\n return this.totalPages !== 0;\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n}\nPagerInputComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-pager-input',\n template: `\n \n {{textFor('pagerPage')}}\n \n {{textFor('pagerOf')}} {{totalPages}}\n \n `\n },] },\n];\n/** @nocollapse */\nPagerInputComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: PagerContextService },\n { type: NgZone },\n { type: ChangeDetectorRef }\n];\nPagerInputComponent.propDecorators = {\n numericInput: [{ type: ViewChild, args: [NumericTextBoxComponent,] }]\n};\n\n// tslint:disable:no-access-missing-member\n/**\n * Displays information about the current page and the total number of records ([see example]({% slug paging_grid %}#toc-pager-templates)).\n */\nclass PagerInfoComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerInfoComponent\n */\n get maxItems() {\n return Math.min(this.currentPage * this.pageSize, this.total);\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerInfoComponent\n */\n get currentPageText() {\n return this.total ?\n (this.currentPage - 1) * this.pageSize + 1 :\n 0;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerInfoComponent\n */\n get classes() {\n return true;\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n}\nPagerInfoComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-pager-info',\n template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`\n },] },\n];\n/** @nocollapse */\nPagerInfoComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: ChangeDetectorRef },\n { type: PagerContextService }\n];\nPagerInfoComponent.propDecorators = {\n classes: [{ type: HostBinding, args: [\"class.k-pager-info\",] }, { type: HostBinding, args: [\"class.k-label\",] }]\n};\n\n// tslint:disable:no-access-missing-member\n/**\n * Displays a drop-down list for the page size selection ([see example]({% slug paging_grid %}#toc-pager-templates)).\n */\nclass PagerPageSizesComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n this._pageSizes = [];\n }\n get pageSizes() {\n return this._pageSizes;\n }\n /**\n * The page sizes collection. Can be an Array of numbers and/or PageSizeItem objects.\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * `\n * })\n * class AppComponent {\n * public gridData: any[] = products;\n * public pageSize = 2;\n * public pagesizes = [{text: 'One', value: 1}, {text: 'Two', value: 2}, {text: 'All', value : 'all'}];\n * }\n *\n * const products = [{\n * 'ProductID' : 1,\n * 'ProductName' : \"Chai\",\n * 'SupplierID' : 1,\n * 'CategoryID' : 1,\n * 'QuantityPerUnit' : \"10 boxes x 20 bags\",\n * 'UnitPrice' : 18.0000,\n * 'UnitsInStock' : 39,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 10,\n * 'Discontinued' : false\n *\n * }, {\n * 'ProductID' : 2,\n * 'ProductName' : \"Chang\",\n * 'SupplierID' : 1,\n * 'CategoryID' : 1,\n * 'QuantityPerUnit' : \"24 - 12 oz bottles\",\n * 'UnitPrice' : 19.0000,\n * 'UnitsInStock' : 17,\n * 'UnitsOnOrder' : 40,\n * 'ReorderLevel' : 25,\n * 'Discontinued' : false\n * }, {\n * 'ProductID' : 3,\n * 'ProductName' : \"Aniseed Syrup\",\n * 'SupplierID' : 1,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"12 - 550 ml bottles\",\n * 'UnitPrice' : 10.0000,\n * 'UnitsInStock' : 13,\n * 'UnitsOnOrder' : 70,\n * 'ReorderLevel' : 25,\n * 'Discontinued' : false\n * }, {\n * 'ProductID' : 4,\n * 'ProductName' : \"Chef Anton\\'s Cajun Seasoning\",\n * 'SupplierID' : 2,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"48 - 6 oz jars\",\n * 'UnitPrice' : 22.0000,\n * 'UnitsInStock' : 53,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 0,\n * 'Discontinued' : false\n * }, {\n * 'ProductID' : 5,\n * 'ProductName' : \"Chef Anton\\'s Gumbo Mix\",\n * 'SupplierID' : 2,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"36 boxes\",\n * 'UnitPrice' : 21.3500,\n * 'UnitsInStock' : 0,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 0,\n * 'Discontinued' : true\n * }, {\n * 'ProductID' : 6,\n * 'ProductName' : \"Grandma\\'s Boysenberry Spread\",\n * 'SupplierID' : 3,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"12 - 8 oz jars\",\n * 'UnitPrice' : 25.0000,\n * 'UnitsInStock' : 120,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 25,\n * 'Discontinued' : false\n * }];\n * ```\n */\n set pageSizes(pageSizes) {\n const normalizedItems = [];\n pageSizes.forEach(item => {\n if (typeof item === 'number') {\n normalizedItems.push({\n text: item.toString(),\n value: item\n });\n }\n else {\n normalizedItems.push(item);\n }\n });\n this._pageSizes = normalizedItems;\n }\n /**\n * @hidden\n *\n * @readonly\n */\n get classes() {\n return true;\n }\n /**\n * @hidden\n *\n * @readonly\n */\n get showInitialPageSize() {\n return this.pageSizes\n .filter(item => {\n if (typeof item.value === 'number') {\n return item.value === Number(this.pageSize);\n }\n return this.total === Number(this.pageSize);\n })\n .length === 0;\n }\n /**\n * @hidden\n */\n pageSizeChange(value) {\n this.pageSize = parseInt(value, 10);\n this.pagerContext.changePageSize(this.pageSize);\n }\n /**\n * @hidden\n */\n getValue(page) {\n return typeof page.value === 'number' ? page.value : this.total;\n }\n /**\n * @hidden\n */\n getSelectedState(page) {\n if (typeof page.value === 'number') {\n return page.value === this.pageSize ? true : undefined;\n }\n return this.pageSize === this.total;\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;\n this.cd.markForCheck();\n }\n}\nPagerPageSizesComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-pager-page-sizes',\n template: `\n \n {{ textFor('pagerItemsPerPage') }}\n `\n },] },\n];\n/** @nocollapse */\nPagerPageSizesComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: ChangeDetectorRef },\n { type: PagerContextService }\n];\nPagerPageSizesComponent.propDecorators = {\n pageSizes: [{ type: Input }],\n classes: [{ type: HostBinding, args: [\"class.k-pager-sizes\",] }, { type: HostBinding, args: [\"class.k-label\",] }]\n};\n\nconst importedModules$1 = [\n CommonModule,\n InputsModule,\n SharedModule\n];\nconst INTERNAL_COMPONENTS$1 = [\n PagerComponent,\n PagerPrevButtonsComponent,\n PagerNextButtonsComponent,\n PagerNumericButtonsComponent,\n PagerInputComponent,\n PagerInfoComponent,\n PagerPageSizesComponent,\n PagerTemplateDirective\n];\n/**\n * @hidden\n */\nclass PagerModule {\n static exports() {\n return [\n PagerComponent,\n PagerPrevButtonsComponent,\n PagerNextButtonsComponent,\n PagerNumericButtonsComponent,\n PagerInputComponent,\n PagerInfoComponent,\n PagerPageSizesComponent,\n PagerTemplateDirective\n ];\n }\n}\nPagerModule.decorators = [\n { type: NgModule, args: [{\n declarations: [INTERNAL_COMPONENTS$1],\n exports: [INTERNAL_COMPONENTS$1],\n imports: [...importedModules$1]\n },] },\n];\n\n/**\n * @hidden\n */\nclass GroupHeaderComponent {\n constructor(groupsService, groupInfoService) {\n this.groupsService = groupsService;\n this.groupInfoService = groupInfoService;\n this.skipGroupDecoration = false;\n this.hasDetails = false;\n this.totalColumnsCount = 0;\n this.groups = [];\n this.isExpanded = false;\n }\n get groupItemClass() {\n return true;\n }\n ngDoCheck() {\n this.isExpanded = this.groupsService.isExpanded(this.item.index);\n }\n prefixGroupCell(item) {\n return new Array(item.level);\n }\n toggleGroup(item) {\n this.groupsService.toggleRow(item.index, item.data);\n return false;\n }\n groupSpan(item) {\n const groupCount = (this.groups || []).length;\n const detailOffset = this.hasDetails ? 1 : 0;\n if (this.hasGroupHeaderColumn) {\n return groupCount + 1 + detailOffset - item.level;\n }\n let columnCount = columnsSpan(this.columns);\n if (this.skipGroupDecoration) {\n return columnCount;\n }\n return groupCount + columnCount + detailOffset - item.level;\n }\n logicalColSpan() {\n return this.skipGroupDecoration ? 1 : this.totalColumnsCount;\n }\n ariaRole() {\n if (this.skipGroupDecoration) {\n return 'presentation';\n }\n return 'gridcell';\n }\n formatForGroup(item) {\n return this.groupInfoService.formatForGroup(item);\n }\n groupTitle(item) {\n return this.groupInfoService.groupTitle(item);\n }\n groupHeaderTemplate(item) {\n return this.groupInfoService.groupHeaderTemplate(item);\n }\n}\nGroupHeaderComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoGridGroupHeader]',\n template: `\n \n \n \n \n

\n \n \n \n \n {{groupTitle(item)}}: {{item.data | valueOf:\"value\": formatForGroup(item)}}\n \n \n \n \n

\n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nGroupHeaderComponent.ctorParameters = () => [\n { type: GroupsService },\n { type: GroupInfoService }\n];\nGroupHeaderComponent.propDecorators = {\n rowIndex: [{ type: Input }],\n logicalRowIndex: [{ type: Input }],\n item: [{ type: Input }],\n skipGroupDecoration: [{ type: Input }],\n hasDetails: [{ type: Input }],\n totalColumnsCount: [{ type: Input }],\n hasGroupHeaderColumn: [{ type: Input }],\n groupHeaderColumns: [{ type: Input }],\n columns: [{ type: Input }],\n groups: [{ type: Input }],\n groupItemClass: [{ type: HostBinding, args: ['class.k-grouping-row',] }]\n};\n\n/**\n * @hidden\n */\nclass DropTargetDirective {\n constructor(element, service) {\n this.element = element;\n this.service = service;\n this.context = {};\n this.enter = new EventEmitter();\n this.leave = new EventEmitter();\n this.drop = new EventEmitter();\n this.subscriptions = new Subscription();\n }\n ngOnInit() {\n this.service.add(this);\n const changes = this.service.changes.pipe(filter(({ target }) => target === this));\n this.subscriptions.add(changes.pipe(filter(({ type }) => type === 'leave'))\n .subscribe(e => {\n this.leave.next(this.eventArgs(e));\n }));\n this.subscriptions.add(changes.pipe(filter(({ type }) => type === 'enter'))\n .subscribe(e => {\n this.enter.next(this.eventArgs(e));\n }));\n this.subscriptions.add(changes.pipe(filter(({ type }) => type === 'drop'))\n .subscribe(e => {\n this.drop.next(this.eventArgs(e));\n }));\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n eventArgs(e) {\n return {\n target: this,\n mouseEvent: e.mouseEvent,\n draggable: e.draggable\n };\n }\n}\nDropTargetDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDropTarget]'\n },] },\n];\n/** @nocollapse */\nDropTargetDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: DragAndDropService }\n];\nDropTargetDirective.propDecorators = {\n context: [{ type: Input }],\n enter: [{ type: Output }],\n leave: [{ type: Output }],\n drop: [{ type: Output }]\n};\n\nconst withoutField = ({ field }) => isNullOrEmptyString(field);\nconst alreadyGrouped = ({ groups, field }) => groups.some(group => group.field === field);\nconst overSameTarget = ({ target, field }) => target.field === field;\nconst overLastTarget = ({ target }) => target.lastTarget;\nconst isLastGroup = ({ groups, field }) => groups.map(group => group.field).indexOf(field) === groups.length - 1;\nconst isNotGroupable = (groupsService) => ({ field }) => !groupsService.isGroupable(field);\nconst columnRules = (groupService) => or(withoutField, alreadyGrouped, isNotGroupable(groupService));\nconst indicatorRules = or(overSameTarget, and(overLastTarget, isLastGroup));\n/**\n * @hidden\n */\nclass GroupPanelComponent {\n constructor(hint, cue, groupInfoService, localization, cd) {\n this.hint = hint;\n this.cue = cue;\n this.groupInfoService = groupInfoService;\n this.localization = localization;\n this.cd = cd;\n this.change = new EventEmitter();\n this.groups = [];\n this.dropTargets = new QueryList();\n this.groupTitles = [];\n this.subscription = new Subscription();\n }\n get groupHeaderClass() {\n return true;\n }\n set text(value) {\n this.emptyText = value;\n }\n get text() {\n return this.emptyText ? this.emptyText : this.localization.get('groupPanelEmpty');\n }\n ngAfterViewInit() {\n this.subscription.add(observe(this.dropTargets)\n .subscribe(this.attachTargets.bind(this)));\n }\n ngOnInit() {\n this.subscription.add(this.localization.changes.subscribe(() => this.cd.markForCheck()));\n }\n ngDoCheck() {\n const currentTitles = this.groups.map(group => this.groupInfoService.groupTitle(group));\n if (currentTitles.length !== this.groupTitles.length || currentTitles.some((current, idx) => current !== this.groupTitles[idx])) {\n this.groupTitles = currentTitles;\n this.cd.markForCheck();\n }\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n if (this.targetSubscription) {\n this.targetSubscription.unsubscribe();\n }\n }\n directionChange(group) {\n const index = this.groups.findIndex(x => x.field === group.field);\n const groups = [...this.groups.slice(0, index), group, ...this.groups.slice(index + 1)];\n this.change.emit(groups);\n }\n insert(field, index) {\n const groups = this.groups.filter(x => x.field !== field);\n if (groups.length || this.groups.length === 0) {\n this.change.emit([...groups.slice(0, index), { field: field }, ...groups.slice(index)]);\n }\n }\n remove(group) {\n this.change.emit(this.groups.filter(x => x.field !== group.field));\n }\n canDrop(draggable, target) {\n const isIndicator = draggable.type === 'groupIndicator';\n const rules = isIndicator\n ? indicatorRules\n : columnRules(this.groupInfoService);\n return !rules({\n field: draggable.field,\n groups: this.groups,\n target\n });\n }\n attachTargets() {\n if (this.targetSubscription) {\n this.targetSubscription.unsubscribe();\n }\n this.targetSubscription = new Subscription();\n const enterStream = this.dropTargets\n .reduce((acc, target) => merge(acc, target.enter), from([]));\n const leaveStream = this.dropTargets\n .reduce((acc, target) => merge(acc, target.leave), from([]));\n const dropStream = this.dropTargets\n .reduce((acc, target) => merge(acc, target.drop), from([]));\n this.targetSubscription.add(enterStream.pipe(tap(_ => this.hint.removeLock()), filter(({ draggable, target }) => this.canDrop(draggable.context, target.context)), tap(this.enter.bind(this)), switchMapTo(dropStream.pipe(takeUntil(leaveStream.pipe(tap(this.leave.bind(this))))))).subscribe(this.drop.bind(this)));\n }\n enter({ draggable, target }) {\n this.hint.enable();\n let before = target.context.lastTarget || isTargetBefore(draggable.element.nativeElement, target.element.nativeElement);\n if (this.localization.rtl) {\n before = !before;\n }\n this.cue.position(position(target.element.nativeElement, before));\n }\n leave() {\n this.hint.disable();\n this.cue.hide();\n }\n drop({ target, draggable }) {\n const field = draggable.context.field;\n const index = this.dropTargets.toArray().indexOf(target);\n this.insert(field, index);\n }\n}\nGroupPanelComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-grid-group-panel',\n template: `\n \n \n {{ text }}\n \n \n
\n \n
\n \n
 
\n `\n },] },\n];\n/** @nocollapse */\nGroupPanelComponent.ctorParameters = () => [\n { type: DragHintService },\n { type: DropCueService },\n { type: GroupInfoService },\n { type: LocalizationService },\n { type: ChangeDetectorRef }\n];\nGroupPanelComponent.propDecorators = {\n change: [{ type: Output }],\n groupHeaderClass: [{ type: HostBinding, args: [\"class.k-grouping-header\",] }, { type: HostBinding, args: [\"class.k-grouping-header-flex\",] }],\n text: [{ type: Input }],\n groups: [{ type: Input }],\n dropTargets: [{ type: ViewChildren, args: [DropTargetDirective,] }]\n};\n\n/**\n * @hidden\n */\nclass GroupIndicatorComponent {\n constructor() {\n this.directionChange = new EventEmitter();\n this.remove = new EventEmitter();\n }\n get groupIndicatorClass() {\n return true;\n }\n get dir() {\n return this.group.dir ? this.group.dir : \"asc\";\n }\n toggleDirection() {\n this.directionChange.emit({\n dir: this.dir === \"asc\" ? \"desc\" : \"asc\",\n field: this.group.field\n });\n return false;\n }\n removeDescriptor() {\n this.remove.emit({\n dir: this.group.dir,\n field: this.group.field\n });\n return false;\n }\n}\nGroupIndicatorComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: '[kendoGroupIndicator]',\n template: `\n \n \n {{groupTitle}}\n \n \n \n `\n },] },\n];\nGroupIndicatorComponent.propDecorators = {\n directionChange: [{ type: Output }],\n remove: [{ type: Output }],\n group: [{ type: Input }],\n groupTitle: [{ type: Input }],\n groupIndicatorClass: [{ type: HostBinding, args: [\"class.k-group-indicator\",] }]\n};\n\n// TODO\n// tslint:disable:rxjs-no-unsafe-takeuntil\n/**\n * @hidden\n */\nconst preventOnDblClick = release => mouseDown => of(mouseDown).pipe(delay(150), takeUntil(release));\nconst hasClass = className => el => new RegExp(`(^| )${className}( |$)`).test(el.className);\nconst isDeleteButton = or(hasClass(\"k-i-group-delete\"), hasClass(\"k-button-icon\"));\nconst isSortIcon = or(hasClass(\"k-i-sort-asc-sm\"), hasClass(\"k-i-sort-desc-sm\"));\nconst skipButtons = and(not(isDeleteButton), not(isSortIcon), not(isFocusableWithTabKey), not(matchesNodeName(\"label\")));\nconst elementUnderCursor = ({ clientX, clientY }) => document.elementFromPoint(clientX, clientY);\nconst hideThenShow = (element, cont) => {\n element.style.display = 'none';\n const result = cont();\n element.style.display = 'block';\n return result;\n};\n/**\n * @hidden\n */\nclass DraggableColumnDirective {\n constructor(draggable, element, zone, service, hint, cue, nav, renderer) {\n this.draggable = draggable;\n this.element = element;\n this.zone = zone;\n this.service = service;\n this.hint = hint;\n this.cue = cue;\n this.nav = nav;\n this.renderer = renderer;\n this.context = {};\n this.drag = new EventEmitter();\n this.subscriptions = new Subscription();\n }\n set enableDrag(enabled) {\n this.enabled = enabled;\n this.updateTouchAction();\n }\n get hostClass() {\n return this.enabled;\n }\n ngOnInit() {\n this.subscriptions.add(this.zone.runOutsideAngular(() => this.draggable.kendoPress.pipe(filter(_ => this.enabled), filter(({ originalEvent: { target } }) => target === this.element.nativeElement || skipButtons(target)), tap((e) => {\n const originalEvent = e.originalEvent;\n if (!e.isTouch) {\n originalEvent.preventDefault();\n }\n this.nav.navigateTo(originalEvent.target);\n }), switchMap(preventOnDblClick(this.draggable.kendoRelease)), tap(down => {\n this.hint.create(down, this.element.nativeElement, this.context.hint);\n this.cue.create();\n }), switchMap(down => this.draggable.kendoDrag.pipe(tap((e) => {\n if (e.isTouch) {\n e.originalEvent.preventDefault();\n }\n }), tap(this.hint.attach()), tap(this.cue.attach()), takeUntil(this.draggable.kendoRelease), map(move => ({ move, down })))), tap(this.performDrag.bind(this)), switchMapTo(this.draggable.kendoRelease)).subscribe(this.drop.bind(this))));\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n drop(upEvent) {\n this.hint.remove();\n this.cue.remove();\n this.service.notifyDrop(this, upEvent);\n }\n performDrag({ move }) {\n this.hint.move(move);\n const cursorElement = this.elementUnderCursor(move);\n if (cursorElement) {\n this.service.notifyDrag(this, cursorElement, move);\n }\n this.drag.emit({\n draggable: this,\n mouseEvent: move\n });\n }\n elementUnderCursor(mouseEvent) {\n this.hint.hide();\n let target = elementUnderCursor(mouseEvent);\n if (target && /k-grouping-dropclue/.test(target.className)) {\n target = hideThenShow(target, elementUnderCursor.bind(this, mouseEvent));\n }\n this.hint.show();\n return target;\n }\n updateTouchAction() {\n if (!this.element) {\n return;\n }\n this.renderer.setStyle(this.element.nativeElement, 'touch-action', this.enabled ? 'none' : '');\n }\n}\nDraggableColumnDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDraggableColumn]'\n },] },\n];\n/** @nocollapse */\nDraggableColumnDirective.ctorParameters = () => [\n { type: DraggableDirective, decorators: [{ type: Host }] },\n { type: ElementRef },\n { type: NgZone },\n { type: DragAndDropService },\n { type: DragHintService },\n { type: DropCueService },\n { type: NavigationService },\n { type: Renderer2 }\n];\nDraggableColumnDirective.propDecorators = {\n context: [{ type: Input }],\n enableDrag: [{ type: Input }],\n drag: [{ type: Output }],\n hostClass: [{ type: HostBinding, args: ['class.k-grid-draggable-header',] }]\n};\n\nconst exported = [\n DraggableColumnDirective,\n DropTargetDirective\n];\n/**\n * @hidden\n */\nclass DragAndDropModule {\n}\nDragAndDropModule.decorators = [\n { type: NgModule, args: [{\n declarations: [exported],\n exports: [exported]\n },] },\n];\n\nconst exportedModules$1 = [\n GroupHeaderTemplateDirective,\n GroupHeaderColumnTemplateDirective,\n GroupFooterTemplateDirective,\n GroupHeaderComponent,\n GroupPanelComponent,\n GroupIndicatorComponent\n];\n/**\n * @hidden\n */\nclass GroupModule {\n static exports() {\n return [\n GroupHeaderTemplateDirective,\n GroupHeaderColumnTemplateDirective,\n GroupFooterTemplateDirective\n ];\n }\n}\nGroupModule.decorators = [\n { type: NgModule, args: [{\n declarations: [exportedModules$1],\n exports: [exportedModules$1],\n imports: [CommonModule, SharedModule, DragAndDropModule]\n },] },\n];\n\n/**\n * @hidden\n */\nconst DEFAULTS = {\n allowUnsort: true,\n mode: 'single',\n showIndexes: true,\n initialDirection: 'asc'\n};\n/**\n * @hidden\n */\nconst normalize$1 = (...settings) => Object.assign({}, DEFAULTS, ...settings);\n\n/**\n * @hidden\n */\nconst hasFilter = (settings, column) => settings.filter !== false && column.field && column.filterable;\n/**\n * @hidden\n */\nconst hasSort = (settings, column) => settings.sort !== false && column.field && column.sortable;\n/**\n * @hidden\n */\nconst hasLock = (settings, column) => settings.lock && column.lockable && !(column.parent && !column.parent.isSpanColumn);\n/**\n * @hidden\n */\nconst hasColumnChooser = (settings) => settings.columnChooser !== false;\n/**\n * @hidden\n */\nconst hasItems = (settings, column) => hasColumnChooser(settings) || hasLock(settings, column) || hasSort(settings, column) || hasFilter(settings, column);\n\nconst mergeObjects = (...args) => Object.assign.apply(null, [{}].concat(args));\nconst directions = initialDirection => initialDirection === \"asc\" ? [\"asc\", \"desc\"] : [\"desc\", \"asc\"];\n/**\n * @hidden\n */\nconst isRootLevel = ({ parent }) => !isTruthy(parent);\nconst ofColumnType = ({ draggable }) => ['column', 'columnGroup']\n .indexOf(draggable.context.type) >= 0;\nconst notSameElement = ({ draggable, target }) => draggable.element.nativeElement !== target.element.nativeElement;\nconst inSameParent = (x, y) => x.parent === y.parent ||\n (isInSpanColumn(y) && inSameParent(x, y.parent));\nconst sameParent = ({ draggable, target }) => inSameParent(draggable.context.column, target.context.column);\nconst lastNonLocked = ({ draggable }) => !isTruthy(draggable.context.column.locked) &&\n isRootLevel(draggable.context.column) &&\n draggable.context.lastColumn;\nconst notInSpanColumn = ({ draggable }) => !isInSpanColumn(draggable.context.column);\nconst reorderable = ({ draggable }) => draggable.context.column.reorderable;\nconst lockable = ({ draggable, target }) => draggable.context.column.lockable !== false ||\n draggable.context.column.isLocked === target.context.column.isLocked;\nconst rules = and(ofColumnType, reorderable, notInSpanColumn, notSameElement, sameParent, not(lastNonLocked), lockable);\n/**\n * @hidden\n */\nclass HeaderComponent {\n constructor(popupService, hint, cue, reorderService, idService, sortService, localization, cd) {\n this.popupService = popupService;\n this.hint = hint;\n this.cue = cue;\n this.reorderService = reorderService;\n this.idService = idService;\n this.sortService = sortService;\n this.localization = localization;\n this.cd = cd;\n this.columns = [];\n this.groups = [];\n this.sort = new Array();\n this.sortable = false;\n this.groupable = false;\n this.lockedColumnsCount = 0;\n this.resizable = false;\n this.reorderable = false;\n this.columnMenu = false;\n this.totalColumnsCount = 0;\n this.sortedFields = {};\n this.dropTargets = new QueryList();\n this.subscription = new Subscription();\n }\n get headerClass() {\n return !this.scrollable;\n }\n get sortableLabel() {\n return this.localization.get('sortable');\n }\n // Number of unlocked columns in the next table, if any\n get unlockedColumnsCount() {\n return this.totalColumnsCount - this.lockedColumnsCount - this.columns.length;\n }\n sortColumn(column) {\n this.sortService.sort(this.toggleSort(column));\n }\n onSortClick(column, event, link) {\n const target = event.target;\n if (column.headerTemplateRef && target !== link) {\n const hasFocusableParent = Boolean(closestInScope(target, isFocusable, link));\n if (hasFocusableParent) {\n // Do not sort when clicking focusable template elements.\n return;\n }\n }\n this.sortColumn(column);\n }\n onHeaderKeydown(column, args) {\n if (!this.sortable || args.defaultPrevented || column.sortable === false) {\n return;\n }\n if (args.keyCode === Keys.Enter) {\n this.sortService.sort(this.toggleSort(column));\n }\n }\n showSortNumbering(column) {\n const { showIndexes } = normalize$1(this.sortable);\n return showIndexes\n && this.sort\n && this.sort.filter(({ dir }) => isPresent(dir)).length > 1\n && this.sortOrder(column.field) > 0;\n }\n sortOrder(field) {\n return this.sort\n .filter(({ dir }) => isPresent(dir))\n .findIndex(x => x.field === field)\n + 1;\n }\n sortIcon(field) {\n const state$$1 = this.sortDescriptor(field);\n return {\n 'k-icon': isPresent(state$$1.dir),\n 'k-i-sort-desc-sm': state$$1.dir === \"desc\",\n 'k-i-sort-asc-sm': state$$1.dir === \"asc\"\n };\n }\n sortState(column) {\n if (!this.isSortable(column)) {\n return;\n }\n const state$$1 = this.sortDescriptor(column.field);\n if (state$$1.dir === 'asc') {\n return 'ascending';\n }\n if (state$$1.dir === 'desc') {\n return 'descending';\n }\n }\n sortStatus(column) {\n if (!this.sortedFields[column.field] || !this.isSortable(column)) {\n return;\n }\n let msg = 'sortedDefault';\n const state$$1 = this.sortDescriptor(column.field);\n if (state$$1.dir === 'asc') {\n msg = 'sortedAscending';\n }\n else if (state$$1.dir === 'desc') {\n msg = 'sortedDescending';\n }\n return this.localization.get(msg);\n }\n toggleSort(column) {\n const { allowUnsort, mode, initialDirection } = normalize$1(this.sortable, column.sortable);\n const descriptor = this.toggleDirection(column.field, allowUnsort, initialDirection);\n if (mode === 'single') {\n return [descriptor];\n }\n return [...this.sort.filter(desc => desc.field !== column.field), descriptor];\n }\n ngAfterViewInit() {\n this.subscription.add(observe(this.dropTargets)\n .subscribe(this.attachTargets.bind(this)));\n }\n ngDoCheck() {\n this._leafColumns = columnsToRender(this.columns || []).filter(x => !isColumnGroupComponent(x));\n }\n ngOnChanges(changes) {\n const sortChange = changes.sort;\n if (sortChange && !sortChange.isFirstChange()) {\n sortChange.currentValue.forEach(change => {\n this.sortedFields[change.field] = true;\n });\n }\n }\n ngOnInit() {\n this.subscription.add(this.localization.changes\n .subscribe(() => this.cd.markForCheck()));\n }\n ngOnDestroy() {\n if (this.targetSubscription) {\n this.targetSubscription.unsubscribe();\n }\n if (this.popupService) {\n this.popupService.destroy();\n }\n this.subscription.unsubscribe();\n }\n selectAllCheckboxId() {\n return this.idService.selectAllCheckboxId();\n }\n isFirstOnRow(column, index) {\n const isTailing = (c) => c &&\n (this.columnsForLevel(c.level).indexOf(c) > 0 || isTailing(c.parent));\n return index === 0 && !this.groups.length && !this.detailTemplate && isTailing(column.parent);\n }\n logicalColumnIndex(column) {\n const index = column.leafIndex;\n if (isPresent(index)) {\n return index + (isPresent(this.detailTemplate) ? 1 : 0);\n }\n return -1;\n }\n get showFilterMenu() {\n return !this.columnMenu && hasFilterMenu(this.filterable);\n }\n get showFilterRow() {\n return hasFilterRow(this.filterable);\n }\n showColumnMenu(column) {\n return this.columnMenu && column.columnMenu &&\n (this.columnMenuTemplate || column.columnMenuTemplates.length || hasItems(this.columnMenu, column));\n }\n isFilterable(column) {\n return !isNullOrEmptyString(column.field) && column.filterable === true;\n }\n canDrop(draggable, target) {\n return this.reorderable && rules({ draggable, target });\n }\n shouldActivate(column) {\n const canReorder = this.reorderable && column.reorderable;\n if (!canReorder && !isColumnComponent(column)) {\n return false;\n }\n const groupable = this.groupable && isColumnComponent(column) && column.groupable !== false;\n return groupable || canReorder;\n }\n isSortable(column) {\n return !isNullOrEmptyString(column.field)\n && isTruthy(this.sortable) && isTruthy(column.sortable);\n }\n isCheckboxColumn(column) {\n return isCheckboxColumn(column) && !column.templateRef;\n }\n trackByIndex(index, _item) {\n return index;\n }\n toggleDirection(field, allowUnsort, initialDirection) {\n const descriptor = this.sortDescriptor(field);\n const [first, second] = directions(initialDirection);\n let dir = first;\n if (descriptor.dir === first) {\n dir = second;\n }\n else if (descriptor.dir === second && allowUnsort) {\n dir = undefined;\n }\n return { dir, field };\n }\n columnsForLevel(level) {\n const columns = this.columns ? this.columns.filter(column => column.level === level) : [];\n return sortColumns(columnsToRender(columns));\n }\n isColumnGroupComponent(column) {\n return isColumnGroupComponent(column);\n }\n get columnLevels() {\n return new Array((this.totalColumnLevels || 0) + 1);\n }\n sortDescriptor(field) {\n return this.sort.find(item => item.field === field) || { field };\n }\n get leafColumns() {\n return this._leafColumns;\n }\n attachTargets() {\n if (this.targetSubscription) {\n this.targetSubscription.unsubscribe();\n }\n this.targetSubscription = new Subscription();\n const enterStream = merge(...this.dropTargets.map(target => target.enter));\n const leaveStream = merge(...this.dropTargets.map(target => target.leave));\n const dropStream = merge(...this.dropTargets.map(target => target.drop));\n this.targetSubscription.add(enterStream.pipe(tap(({ target, draggable }) => {\n if (draggable.context.type === 'groupIndicator') {\n return;\n }\n const targetLocked = isTruthy(target.context.column.isLocked);\n const draggableLocked = isTruthy(draggable.context.column.isLocked);\n if (this.lockedColumnsCount > 0 || targetLocked || draggableLocked) {\n this.hint.toggleLock(targetLocked);\n }\n }), filter(({ draggable, target }) => this.canDrop(draggable, target)), switchMap(this.trackMove.bind(this, leaveStream, dropStream)), map((e) => mergeObjects(e, { before: this.calculateBefore(e), changeContainer: e.changeContainer })), map(this.normalizeTarget.bind(this)), tap(this.enter.bind(this)), switchMap((args) => dropStream.pipe(map(() => args), takeUntil(leaveStream.pipe(tap(this.leave.bind(this)))))))\n .subscribe(this.drop.bind(this)));\n }\n normalizeTarget(e) {\n let target = e.target;\n const parent = target.context.column.parent;\n if (parent && parent.isSpanColumn) {\n const arr = this.dropTargets.toArray();\n const firstSpan = arr.find(t => t.context.column.parent === parent);\n const index = arr.indexOf(firstSpan);\n const adjust = e.before ? 0 : parent.childColumns.length - 1;\n target = arr[index + adjust];\n }\n return mergeObjects(e, { target });\n }\n trackMove(leaveStream, dropStream, e) {\n const column = e.target.context.column;\n const levelColumns = this.columnsForLevel(column.level);\n const index = levelColumns.indexOf(column);\n const isFirst = (column.locked ? index === levelColumns.length - 1 : index === 0);\n const changed = e.draggable.context.column.isLocked !== column.isLocked;\n if (changed && isFirst) {\n return e.draggable.drag\n .pipe(takeUntil(leaveStream), takeUntil(dropStream), map(({ mouseEvent }) => mergeObjects({ changeContainer: true }, e, { mouseEvent })));\n }\n return of(mergeObjects({ changeContainer: changed }, e));\n }\n calculateBefore({ draggable, target, mouseEvent, changeContainer = false }) {\n const targetElement = target.element.nativeElement;\n let before = false;\n if (changeContainer) {\n const { left } = offset(targetElement);\n const halfWidth = targetElement.offsetWidth / 2;\n const middle = left + halfWidth;\n before = middle > mouseEvent.pageX;\n if (this.localization.rtl) {\n before = !before;\n }\n }\n else {\n before = isTargetBefore(draggable.element.nativeElement, targetElement);\n }\n return before;\n }\n enter({ target, before }) {\n this.hint.enable();\n if (this.localization.rtl) {\n before = !before;\n }\n this.cue.position(position(target.element.nativeElement, before));\n }\n leave() {\n this.hint.disable();\n this.cue.hide();\n }\n drop({ draggable, target, before, changeContainer }) {\n this.reorderService.reorder({\n before,\n changeContainer,\n source: draggable.context.column,\n target: target.context.column\n });\n }\n}\nHeaderComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoGridHeader]',\n styles: [`\n .k-column-resizer {\n cursor: col-resize;\n display: block;\n height: 1000%;\n position: absolute;\n top: 0;\n width: .5em;\n }\n `],\n template: `\n \n 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n {{column.displayTitle}}\n \n \n \n \n \n {{column.displayTitle}}\n \n {{sortOrder(column.field)}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{column.displayTitle}}\n \n \n \n
\n \n 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\"\n >\n
\n `\n },] },\n];\n/** @nocollapse */\nHeaderComponent.ctorParameters = () => [\n { type: SinglePopupService },\n { type: DragHintService },\n { type: DropCueService },\n { type: ColumnReorderService },\n { type: IdService },\n { type: SortService },\n { type: LocalizationService },\n { type: ChangeDetectorRef }\n];\nHeaderComponent.propDecorators = {\n totalColumnLevels: [{ type: Input }],\n columns: [{ type: Input }],\n groups: [{ type: Input }],\n detailTemplate: [{ type: Input }],\n scrollable: [{ type: Input }],\n filterable: [{ type: Input }],\n sort: [{ type: Input }],\n filter: [{ type: Input }],\n sortable: [{ type: Input }],\n groupable: [{ type: Input }],\n lockedColumnsCount: [{ type: Input }],\n resizable: [{ type: Input }],\n reorderable: [{ type: Input }],\n columnMenu: [{ type: Input }],\n columnMenuTemplate: [{ type: Input }],\n totalColumnsCount: [{ type: Input }],\n headerClass: [{ type: HostBinding, args: ['class.k-grid-header',] }],\n dropTargets: [{ type: ViewChildren, args: [DropTargetDirective,] }]\n};\n\n// TODO\n// tslint:disable:rxjs-no-unsafe-takeuntil\n/**\n * @hidden\n */\nconst fromPercentage = (value, percent) => {\n const sign = percent < 0 ? -1 : 1;\n return Math.ceil((Math.abs(percent) / 100) * value) * sign;\n};\n/**\n * @hidden\n */\nconst toPercentage = (value, whole) => (value / whole) * 100;\n/**\n * @hidden\n */\nconst headerWidth = (handle) => handle.nativeElement.parentElement.offsetWidth;\n/**\n * @hidden\n */\nconst allLeafColumns = columns => expandColumns(columns)\n .filter(c => !c.isColumnGroup);\n/**\n * @hidden\n */\nconst stopPropagation = ({ originalEvent: event }) => {\n event.stopPropagation();\n event.preventDefault();\n};\n/**\n * @hidden\n */\nconst createMoveStream = (service, draggable) => mouseDown => draggable.kendoDrag.pipe(takeUntil(draggable.kendoRelease.pipe(tap(() => service.end()))), map(({ pageX }) => ({\n originalX: mouseDown.pageX,\n pageX\n})));\n/**\n * @hidden\n */\nconst preventOnDblClick$1 = release => mouseDown => of(mouseDown).pipe(delay(150), takeUntil(release));\n/**\n * @hidden\n */\nconst isInSpanColumn$1 = column => !!(column.parent && column.parent.isSpanColumn);\n/**\n * @hidden\n *\n * Calculates the column index. If the column is stated in `SpanColumn`,\n * the index for all child columns equals the index of the first child.\n */\nconst indexOf = (target, list) => {\n let index = 0;\n let ignore = 0;\n let skip = 0;\n while (index < list.length) {\n const current = list[index];\n const isParentSpanColumn = isInSpanColumn$1(current);\n if (current === target) {\n break;\n }\n if ((ignore-- <= 0) && isParentSpanColumn) {\n ignore = current.parent.childColumns.length - 1;\n skip += ignore;\n }\n index++;\n }\n return index - skip;\n};\n/**\n * @hidden\n */\nclass ColumnHandleDirective {\n constructor(draggable, element, service, zone, cdr, localization) {\n this.draggable = draggable;\n this.element = element;\n this.service = service;\n this.zone = zone;\n this.cdr = cdr;\n this.localization = localization;\n this.columns = [];\n this.subscriptions = new Subscription();\n this.rtl = false;\n }\n get visible() {\n return this.column.resizable ? 'block' : 'none';\n }\n get leftStyle() {\n return isTruthy(this.rtl) ? 0 : null;\n }\n get rightStyle() {\n return isTruthy(this.rtl) ? null : 0;\n }\n autoFit() {\n const allLeafs = allLeafColumns(this.columns);\n const currentLeafs = leafColumns([this.column]).filter(column => isTruthy(column.resizable));\n const columnInfo = currentLeafs.map(column => {\n const isParentSpan = isInSpanColumn$1(column);\n const isLastInSpan = isParentSpan ? column.parent.childColumns.last === column : false;\n const index = indexOf(column, allLeafs);\n return {\n column,\n headerIndex: this.columnsForLevel(column.level).indexOf(column),\n index,\n isLastInSpan,\n isParentSpan,\n level: column.level\n };\n });\n currentLeafs.forEach(column => column.width = 0);\n this.service.measureColumns(columnInfo);\n }\n ngOnInit() {\n const service = this.service.changes.pipe(filter(() => this.column.resizable), filter(e => isPresent(e.columns.find(column => column === this.column))));\n this.subscriptions.add(service.pipe(filter(e => e.type === 'start'))\n .subscribe(this.initState.bind(this)));\n this.subscriptions.add(service.pipe(filter(e => e.type === 'resizeColumn'))\n .subscribe(this.resize.bind(this)));\n this.subscriptions.add(this.service.changes.pipe(filter(e => e.type === 'start'), filter(this.shouldUpdate.bind(this)), take(1) //on first resize only\n ).subscribe(this.initColumnWidth.bind(this)));\n this.subscriptions.add(this.zone.runOutsideAngular(() => this.draggable.kendoPress.pipe(tap(stopPropagation), tap(() => this.service.start(this.column)), switchMap(preventOnDblClick$1(this.draggable.kendoRelease)), switchMap(createMoveStream(this.service, this.draggable)))\n .subscribe(({ pageX, originalX }) => {\n const delta = pageX - originalX;\n const percent = toPercentage(delta, this.column.resizeStartWidth || this.column.width);\n this.service.resizeColumns(percent);\n })));\n this.subscriptions.add(service.pipe(filter(e => e.type === 'autoFitComplete'))\n .subscribe(this.sizeToFit.bind(this)));\n this.subscriptions.add(service.pipe(filter(e => e.type === 'triggerAutoFit'))\n .subscribe(this.autoFit.bind(this)));\n this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => this.rtl = rtl));\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n shouldUpdate() {\n return !allLeafColumns(this.columns)\n .map(column => column.width)\n .some(isBlank);\n }\n initColumnWidth() {\n this.column.width = headerWidth(this.element);\n }\n initState() {\n this.column.resizeStartWidth = headerWidth(this.element);\n this.service.resizedColumn({\n column: this.column,\n oldWidth: this.column.resizeStartWidth\n });\n }\n resize({ deltaPercent }) {\n let delta = fromPercentage(this.column.resizeStartWidth, deltaPercent);\n if (isTruthy(this.rtl)) {\n delta *= -1;\n }\n const newWidth = Math.max(this.column.resizeStartWidth + delta, this.column.minResizableWidth);\n const tableDelta = newWidth > this.column.minResizableWidth ?\n delta : this.column.minResizableWidth - this.column.resizeStartWidth;\n this.updateWidth(this.column, newWidth);\n this.service.resizeTable(this.column, tableDelta);\n }\n sizeToFit({ columns, widths }) {\n const index = columns.indexOf(this.column);\n const width = Math.max(...widths.map(w => w[index])) + 1; //add 1px for IE\n const tableDelta = width - this.column.resizeStartWidth;\n this.updateWidth(this.column, width);\n this.service.resizeTable(this.column, tableDelta);\n }\n updateWidth(column, width) {\n column.width = width;\n this.cdr.markForCheck(); //force CD cycle\n }\n columnsForLevel(level) {\n return columnsToRender(this.columns ? this.columns.filter(column => column.level === level) : []);\n }\n}\nColumnHandleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridColumnHandle]'\n },] },\n];\n/** @nocollapse */\nColumnHandleDirective.ctorParameters = () => [\n { type: DraggableDirective, decorators: [{ type: Host }] },\n { type: ElementRef },\n { type: ColumnResizingService },\n { type: NgZone },\n { type: ChangeDetectorRef },\n { type: LocalizationService }\n];\nColumnHandleDirective.propDecorators = {\n columns: [{ type: Input }],\n column: [{ type: Input }],\n visible: [{ type: HostBinding, args: ['style.display',] }],\n leftStyle: [{ type: HostBinding, args: ['style.left',] }],\n rightStyle: [{ type: HostBinding, args: ['style.right',] }],\n autoFit: [{ type: HostListener, args: ['dblclick',] }]\n};\n\n/**\n * Represents the select-all checkbox feature of the Grid ([see example]({% slug selection_grid %}#toc-select-all-feature)).\n */\nclass SelectAllCheckboxDirective {\n constructor(selectionService, el, renderer, ngZone) {\n this.selectionService = selectionService;\n this.el = el;\n this.renderer = renderer;\n this.ngZone = ngZone;\n /**\n * Fires when the user clicks the `kendoGridSelectAllCheckbox` select-all checkbox\n * ([see example]({% slug selection_grid %}#toc-select-all-feature)).\n */\n this.selectAllChange = new EventEmitter();\n this.type = \"checkbox\";\n this.stateSet = false;\n this.ngZone.runOutsideAngular(() => {\n this.destroyClick = this.renderer.listen(this.el.nativeElement, \"click\", this.onClick.bind(this));\n });\n }\n ngAfterContentChecked() {\n this.setState();\n }\n ngOnChanges() {\n this.stateSet = true;\n }\n ngOnDestroy() {\n if (this.destroyClick) {\n this.destroyClick();\n }\n }\n /**\n * @hidden\n */\n onClick() {\n const isChecked = this.el.nativeElement.checked;\n const options = this.selectionService.options;\n this.selectAllChange.emit(isChecked ? \"checked\" : \"unchecked\");\n if (options.enabled && options.mode === \"multiple\") {\n this.ngZone.run(() => {\n this.selectionService.updateAll(isChecked);\n });\n }\n }\n /**\n * @hidden\n */\n setState() {\n const state$$1 = this.stateSet ? this.stateToBool() : this.selectionService.selectAllState;\n const elem = this.el.nativeElement;\n this.renderer.setProperty(elem, \"indeterminate\", !isPresent(state$$1));\n this.renderer.setProperty(elem, \"checked\", isPresent(state$$1) ? state$$1 : false);\n }\n /**\n * @hidden\n */\n stateToBool() {\n switch (this.state) {\n case \"checked\":\n return true;\n case \"unchecked\":\n return false;\n default:\n return undefined;\n }\n }\n}\nSelectAllCheckboxDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridSelectAllCheckbox]'\n },] },\n];\n/** @nocollapse */\nSelectAllCheckboxDirective.ctorParameters = () => [\n { type: SelectionService },\n { type: ElementRef },\n { type: Renderer2 },\n { type: NgZone }\n];\nSelectAllCheckboxDirective.propDecorators = {\n state: [{ type: Input }],\n selectAllChange: [{ type: Output }],\n type: [{ type: HostBinding, args: ['attr.type',] }]\n};\n\n/**\n * @hidden\n */\nclass FilterMenuComponent {\n constructor(filterService, popupService, localization) {\n this.filterService = filterService;\n this.popupService = popupService;\n this.localization = localization;\n /**\n * @hidden\n */\n this.filterLabel = this.localization.get('filter');\n }\n get hasFilters() {\n return filtersByField(this.filter, (this.column || {}).field).length > 0;\n }\n toggle(anchor, template) {\n this.popupRef = this.popupService.open(anchor, template, this.popupRef);\n return false;\n }\n close() {\n this.popupService.destroy();\n }\n}\nFilterMenuComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-filter-menu',\n template: `\n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nFilterMenuComponent.ctorParameters = () => [\n { type: FilterService },\n { type: SinglePopupService },\n { type: LocalizationService }\n];\nFilterMenuComponent.propDecorators = {\n column: [{ type: Input }],\n filter: [{ type: Input }]\n};\n\nconst isNoValueOperator = operator => (operator === \"isnull\"\n || operator === \"isnotnull\"\n || operator === \"isempty\"\n || operator === \"isnotempty\");\nconst validFilters = ({ value, operator }) => !isNullOrEmptyString(value) || isNoValueOperator(operator);\nconst trimFilters = filter$$1 => {\n filter$$1.filters = filter$$1.filters.filter(validFilters);\n return filter$$1;\n};\nconst findParent = (filters, field, parent) => {\n return filters.reduce((acc, filter$$1) => {\n if (acc) {\n return acc;\n }\n if (filter$$1.filters) {\n return findParent(filter$$1.filters, field, filter$$1);\n }\n else if (filter$$1.field === field) {\n return parent;\n }\n return acc;\n }, undefined); // tslint:disable-line:align\n};\nconst parentLogicOfDefault = (filter$$1, field, def = \"and\") => {\n const parent = findParent(((filter$$1 || {}).filters || []), field);\n return isPresent(parent) ? parent.logic : def;\n};\n/**\n * @hidden\n */\nclass FilterMenuContainerComponent {\n constructor(parentService, childService, localization, cd) {\n this.parentService = parentService;\n this.childService = childService;\n this.localization = localization;\n this.cd = cd;\n this.close = new EventEmitter();\n /**\n * @hidden\n */\n this.actionsClass = 'k-action-buttons k-button-group';\n this._templateContext = {};\n }\n get filter() {\n return this._filter;\n }\n /**\n * The current root filter.\n * @type {CompositeFilterDescriptor}\n */\n set filter(value) {\n this._filter = cloneFilters(value);\n }\n get childFilter() {\n if (!isPresent(this._childFilter)) {\n this._childFilter = {\n filters: filtersByField(this.filter, (this.column || {}).field),\n logic: parentLogicOfDefault(this.filter, (this.column || {}).field)\n };\n }\n return this._childFilter;\n }\n ngOnInit() {\n this.subscription = this.childService.changes.subscribe(filter$$1 => this._childFilter = filter$$1);\n this.subscription.add(this.localization.changes.subscribe(() => this.cd.markForCheck()));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n get disabled() {\n return !this.childFilter.filters.some(validFilters);\n }\n get templateContext() {\n this._templateContext.column = this.column;\n this._templateContext.filter = this.childFilter;\n this._templateContext.filterService = this.childService;\n // tslint:disable-next-line:no-string-literal\n this._templateContext[\"$implicit\"] = this.childFilter;\n return this._templateContext;\n }\n get hasTemplate() {\n return isPresent(this.column) && isPresent(this.column.filterMenuTemplateRef);\n }\n submit() {\n const filter$$1 = trimFilters(this.childFilter);\n if (filter$$1.filters.length) {\n const root = this.filter || {\n filters: [],\n logic: \"and\"\n };\n removeFilter(root, this.column.field);\n root.filters.push(filter$$1);\n this.parentService.filter(root);\n }\n this.close.emit();\n return false;\n }\n reset() {\n const root = this.filter || {\n filters: [],\n logic: \"and\"\n };\n removeFilter(root, this.column.field);\n this.parentService.filter(root);\n this.close.emit();\n }\n get clearText() {\n return this.localization.get(\"filterClearButton\");\n }\n get filterText() {\n return this.localization.get(\"filterFilterButton\");\n }\n}\nFilterMenuContainerComponent.decorators = [\n { type: Component, args: [{\n providers: [FilterService],\n selector: 'kendo-grid-filter-menu-container',\n template: `\n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n \n \n
\n
\n
\n `\n },] },\n];\n/** @nocollapse */\nFilterMenuContainerComponent.ctorParameters = () => [\n { type: FilterService, decorators: [{ type: SkipSelf }] },\n { type: FilterService },\n { type: LocalizationService },\n { type: ChangeDetectorRef }\n];\nFilterMenuContainerComponent.propDecorators = {\n close: [{ type: Output }],\n column: [{ type: Input }],\n filter: [{ type: Input }],\n actionsClass: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass FilterMenuInputWrapperComponent extends FilterInputWrapperComponent {\n constructor() {\n super(null);\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return false;\n }\n operatorChange(dataItem) {\n this.currentOperator = dataItem;\n }\n filterChange(filter$$1) {\n this.applyFilter(filter$$1);\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n get currentFilter() {\n return this._currentFilter;\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n set currentFilter(value) {\n this._currentFilter = value;\n }\n updateFilter(filter$$1) {\n Object.assign(this.currentFilter, filter$$1);\n return this.filter;\n }\n onChange(value) {\n this.filterChange(this.updateFilter({\n field: this.column.field,\n operator: this.currentOperator,\n value: value\n }));\n }\n}\nFilterMenuInputWrapperComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-filter-menu-input-wrapper',\n template: `\n \n \n \n `\n },] },\n];\n/** @nocollapse */\nFilterMenuInputWrapperComponent.ctorParameters = () => [];\nFilterMenuInputWrapperComponent.propDecorators = {\n filterService: [{ type: Input }],\n currentFilter: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass StringFilterMenuInputComponent {\n constructor() {\n this.operators = [];\n }\n}\nStringFilterMenuInputComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-string-filter-menu-input',\n template: `\n \n \n \n `\n },] },\n];\nStringFilterMenuInputComponent.propDecorators = {\n operators: [{ type: Input }],\n column: [{ type: Input }],\n filter: [{ type: Input }],\n operator: [{ type: Input }],\n currentFilter: [{ type: Input }],\n filterService: [{ type: Input }]\n};\n\n/**\n * Represents a string-filter menu component.\n * ([see example]({% slug builtinfiltertemplate_grid %}#toc-configuration-components-for-filter-templates)).\n */\nclass StringFilterMenuComponent extends StringFilterComponent {\n constructor(localization) {\n super(null, localization);\n this.logicOperators = logicOperators(this.localization);\n /**\n * The current menu filter.\n * @type {CompositeFilterDescriptor}\n */\n this.filter = { filters: [], logic: \"and\" };\n /**\n * Determines if the inputs of second criteria will displayed.\n */\n this.extra = true;\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return false;\n }\n get firstFilter() {\n return setFilter(0, this.filter, (this.column || {}).field, this.operator);\n }\n get secondFilter() {\n return setFilter(1, this.filter, (this.column || {}).field, this.operator);\n }\n logicChange(value) {\n this.filter.logic = value;\n }\n localizationChange() {\n this.logicOperators = logicOperators(this.localization);\n super.localizationChange();\n }\n}\nStringFilterMenuComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-string-filter-menu',\n template: `\n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nStringFilterMenuComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nStringFilterMenuComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-filtercell',] }],\n column: [{ type: Input }],\n filter: [{ type: Input }],\n extra: [{ type: Input }],\n filterService: [{ type: Input }]\n};\n\n/**\n * Represents a numeric-filter menu component.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nclass NumericFilterMenuComponent extends NumericFilterComponent {\n constructor(localization) {\n super(null, localization);\n this.logicOperators = logicOperators(this.localization);\n /**\n * The current menu filter.\n * @type {CompositeFilterDescriptor}\n */\n this.filter = { filters: [], logic: \"and\" };\n /**\n * Determines if the inputs of second criteria will displayed.\n */\n this.extra = true;\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return false;\n }\n get firstFilter() {\n return setFilter(0, this.filter, (this.column || {}).field, this.operator);\n }\n get secondFilter() {\n return setFilter(1, this.filter, (this.column || {}).field, this.operator);\n }\n logicChange(value) {\n this.filter.logic = value;\n }\n localizationChange() {\n this.logicOperators = logicOperators(this.localization);\n super.localizationChange();\n }\n}\nNumericFilterMenuComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-numeric-filter-menu',\n template: `\n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nNumericFilterMenuComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nNumericFilterMenuComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-filtercell',] }],\n column: [{ type: Input }],\n filter: [{ type: Input }],\n extra: [{ type: Input }],\n filterService: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass NumericFilterMenuInputComponent {\n constructor() {\n this.operators = [];\n /**\n * Specifies the value which is used to increment or decrement the component value.\n * @type {numeric}\n */\n this.step = 1;\n /**\n * Specifies whether the **Up** and **Down** spin buttons will be rendered.\n * @type {boolean}\n */\n this.spinners = true;\n }\n}\nNumericFilterMenuInputComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-numeric-filter-menu-input',\n template: `\n \n \n \n \n `\n },] },\n];\nNumericFilterMenuInputComponent.propDecorators = {\n operators: [{ type: Input }],\n column: [{ type: Input }],\n filter: [{ type: Input }],\n operator: [{ type: Input }],\n currentFilter: [{ type: Input }],\n filterService: [{ type: Input }],\n step: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n spinners: [{ type: Input }],\n decimals: [{ type: Input }],\n format: [{ type: Input }]\n};\n\n/**\n * Represents a date-filter menu component.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nclass DateFilterMenuComponent extends DateFilterComponent {\n constructor(localization) {\n super(null, localization);\n this.logicOperators = logicOperators(this.localization);\n /**\n * The current menu filter.\n * @type {CompositeFilterDescriptor}\n */\n this.filter = { filters: [], logic: \"and\" };\n /**\n * Determines if the inputs of second criteria will be displayed.\n */\n this.extra = true;\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return false;\n }\n get firstFilter() {\n return setFilter(0, this.filter, (this.column || {}).field, this.operator);\n }\n get secondFilter() {\n return setFilter(1, this.filter, (this.column || {}).field, this.operator);\n }\n logicChange(value) {\n this.filter.logic = value;\n }\n localizationChange() {\n this.logicOperators = logicOperators(this.localization);\n super.localizationChange();\n }\n}\nDateFilterMenuComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-date-filter-menu',\n template: `\n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nDateFilterMenuComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nDateFilterMenuComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-filtercell',] }],\n column: [{ type: Input }],\n filter: [{ type: Input }],\n extra: [{ type: Input }],\n filterService: [{ type: Input }]\n};\n\n/**\n * Represents a Boolean-filter menu component.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nclass BooleanFilterMenuComponent extends BooleanFilterComponent {\n constructor(localization) {\n super(null, localization);\n /**\n * The current menu filter.\n * @type {CompositeFilterDescriptor}\n */\n this.filter = { filters: [], logic: \"and\" };\n this.idPrefix = guid();\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return false;\n }\n /**\n * @hidden\n */\n radioId(value) {\n return `${this.idPrefix}_${value}`;\n }\n /**\n * @hidden\n */\n onChange(value) {\n this.applyFilter(this.updateFilter({\n field: this.column.field,\n operator: \"eq\",\n value: value\n }));\n }\n /**\n * @hidden\n */\n isSelected(radioValue) {\n return this.filtersByField(this.column.field).some(({ value }) => value === radioValue);\n }\n}\nBooleanFilterMenuComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-boolean-filter-menu',\n template: `\n
    \n
  • \n \n \n
  • \n
\n `\n },] },\n];\n/** @nocollapse */\nBooleanFilterMenuComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nBooleanFilterMenuComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-filtercell',] }],\n filter: [{ type: Input }],\n filterService: [{ type: Input }]\n};\n\n/**\n * @hidden\n *\n * > List the following components as `entryComponents` in the GridModule.\n */\nconst filterMenuComponentFactory = (type) => ({\n \"boolean\": BooleanFilterMenuComponent,\n \"date\": DateFilterMenuComponent,\n \"numeric\": NumericFilterMenuComponent,\n \"text\": StringFilterMenuComponent\n}[type]);\n\n/**\n * @hidden\n */\nclass FilterMenuHostDirective extends FilterHostDirective {\n constructor(host, resolver) {\n super(host, resolver);\n }\n componentType() {\n if (isPresent(this.column) && !isNullOrEmptyString(this.column.filter)) {\n return filterMenuComponentFactory(this.column.filter);\n }\n return StringFilterMenuComponent;\n }\n initComponent(ctx) {\n super.initComponent(ctx);\n this.component.instance.filterService = this.filterService;\n }\n}\nFilterMenuHostDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoFilterMenuHost]'\n },] },\n];\n/** @nocollapse */\nFilterMenuHostDirective.ctorParameters = () => [\n { type: ViewContainerRef },\n { type: ComponentFactoryResolver }\n];\nFilterMenuHostDirective.propDecorators = {\n filterService: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass DateFilterMenuInputComponent {\n constructor(popupService) {\n this.popupService = popupService;\n this.operators = [];\n }\n open(picker) {\n this.subscription = this.popupService.onClose\n .pipe(filter(() => picker.isActive))\n .subscribe(e => e.preventDefault());\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\nDateFilterMenuInputComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-date-filter-menu-input',\n template: `\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nDateFilterMenuInputComponent.ctorParameters = () => [\n { type: SinglePopupService }\n];\nDateFilterMenuInputComponent.propDecorators = {\n operators: [{ type: Input }],\n column: [{ type: Input }],\n filter: [{ type: Input }],\n operator: [{ type: Input }],\n currentFilter: [{ type: Input }],\n filterService: [{ type: Input }],\n format: [{ type: Input }],\n formatPlaceholder: [{ type: Input }],\n placeholder: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n activeView: [{ type: Input }],\n bottomView: [{ type: Input }],\n topView: [{ type: Input }],\n weekNumber: [{ type: Input }]\n};\n\nconst INTERNAL_COMPONENTS$2 = [\n FilterMenuComponent,\n FilterMenuContainerComponent,\n FilterMenuInputWrapperComponent,\n StringFilterMenuInputComponent,\n StringFilterMenuComponent,\n FilterMenuTemplateDirective,\n NumericFilterMenuComponent,\n NumericFilterMenuInputComponent,\n DateFilterMenuInputComponent,\n DateFilterMenuComponent,\n FilterMenuHostDirective,\n BooleanFilterMenuComponent\n];\nconst ENTRY_COMPONENTS$1 = [\n StringFilterMenuComponent,\n NumericFilterMenuComponent,\n DateFilterMenuComponent,\n BooleanFilterMenuComponent\n];\n/**\n * @hidden\n */\nclass FilterMenuModule {\n static exports() {\n return [\n StringFilterMenuComponent,\n FilterMenuTemplateDirective,\n NumericFilterMenuComponent,\n DateFilterMenuComponent,\n BooleanFilterMenuComponent,\n SharedFilterModule.exports()\n ];\n }\n}\nFilterMenuModule.decorators = [\n { type: NgModule, args: [{\n declarations: [INTERNAL_COMPONENTS$2],\n entryComponents: ENTRY_COMPONENTS$1,\n exports: [INTERNAL_COMPONENTS$2, SharedFilterModule],\n imports: [SharedFilterModule]\n },] },\n];\n\n/**\n * @hidden\n */\nclass ColumnListComponent {\n constructor(element, ngZone, renderer) {\n this.element = element;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.reset = new EventEmitter();\n this.apply = new EventEmitter();\n this.columnChange = new EventEmitter();\n this.autoSync = true;\n this.allowHideAll = false;\n this.actionsClass = 'k-action-buttons';\n this.unlockedCount = 0;\n }\n get className() {\n return true;\n }\n set columns(value) {\n this._columns = value.filter(column => column.includeInChooser !== false);\n this.allColumns = value;\n this.updateColumnState();\n }\n get columns() {\n return this._columns;\n }\n isDisabled(column) {\n return !(this.allowHideAll || this.hasFiltered || column.hidden || this.columns.find(current => current !== column && !current.hidden)) ||\n (this.hasVisibleLocked && !this.hasUnlockedFiltered && this.unlockedCount === 1 && !column.locked && !column.hidden);\n }\n ngOnInit() {\n if (!this.element) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n this.domSubscriptions = this.renderer.listen(this.element.nativeElement, 'click', (e) => {\n if (hasClasses(e.target, 'k-checkbox')) {\n if (this.autoSync) {\n const index = parseInt(e.target.getAttribute('data-index'), 10);\n const column = this.columns[index];\n const hidden = !e.target.checked;\n if (Boolean(column.hidden) !== hidden) {\n this.ngZone.run(() => {\n column.hidden = hidden;\n this.columnChange.emit([column]);\n });\n }\n }\n else {\n this.updateDisabled();\n }\n }\n });\n });\n }\n ngOnDestroy() {\n if (this.domSubscriptions) {\n this.domSubscriptions();\n }\n }\n cancelChanges() {\n this.forEachCheckBox((element, index) => {\n element.checked = !this.columns[index].hidden;\n });\n this.updateDisabled();\n this.reset.emit();\n }\n applyChanges() {\n const changed = [];\n this.forEachCheckBox((element, index) => {\n const column = this.columns[index];\n const hidden = !element.checked;\n if (Boolean(column.hidden) !== hidden) {\n column.hidden = hidden;\n changed.push(column);\n }\n });\n this.updateDisabled();\n this.apply.emit(changed);\n }\n forEachCheckBox(callback) {\n const checkboxes = this.element.nativeElement.getElementsByClassName('k-checkbox');\n const length = checkboxes.length;\n for (let idx = 0; idx < length; idx++) {\n callback(checkboxes[idx], idx);\n }\n }\n updateDisabled() {\n if (this.allowHideAll && !this.hasLocked) {\n return;\n }\n const checkedItems = [];\n this.forEachCheckBox((checkbox, index) => {\n if (checkbox.checked) {\n checkedItems.push({ checkbox, index });\n }\n checkbox.disabled = false;\n });\n if (!this.allowHideAll && checkedItems.length === 1 && !this.hasFiltered) {\n checkedItems[0].checkbox.disabled = true;\n }\n else if (this.hasLocked && !this.hasUnlockedFiltered) {\n const columns = this.columns;\n const checkedUnlocked = checkedItems.filter(item => !columns[item.index].locked);\n if (checkedUnlocked.length === 1) {\n checkedUnlocked[0].checkbox.disabled = true;\n }\n }\n }\n updateColumnState() {\n this.hasLocked = this.allColumns.filter(column => column.locked && (!column.hidden || column.includeInChooser !== false)).length > 0;\n this.hasVisibleLocked = this.allColumns.filter(column => column.locked && !column.hidden).length > 0;\n this.unlockedCount = this.columns.filter(column => !column.locked && !column.hidden).length;\n const filteredColumns = this.allColumns.filter(column => column.includeInChooser === false && !column.hidden);\n if (filteredColumns.length) {\n this.hasFiltered = filteredColumns.length > 0;\n this.hasUnlockedFiltered = filteredColumns.filter(column => !column.locked).length > 0;\n }\n else {\n this.hasFiltered = false;\n this.hasUnlockedFiltered = false;\n }\n }\n}\nColumnListComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-columnlist',\n template: `\n
\n \n
\n
\n \n \n
\n `\n },] },\n];\n/** @nocollapse */\nColumnListComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone },\n { type: Renderer2 }\n];\nColumnListComponent.propDecorators = {\n className: [{ type: HostBinding, args: [\"class.k-column-list-wrapper\",] }],\n reset: [{ type: Output }],\n apply: [{ type: Output }],\n columnChange: [{ type: Output }],\n columns: [{ type: Input }],\n autoSync: [{ type: Input }],\n allowHideAll: [{ type: Input }],\n applyText: [{ type: Input }],\n resetText: [{ type: Input }],\n actionsClass: [{ type: Input }]\n};\n\n/**\n * Represents the component for selecting columns in the Grid. To enable the user to show or hide columns,\n * add the component inside a [`ToolbarTemplate`]({% slug api_grid_toolbartemplatedirective %}) directive.\n *\n * @example\n * {% meta height:300 %}\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }];\n * }\n *\n * ```\n * {% endmeta %}\n */\nclass ColumnChooserComponent {\n constructor(localization, columnInfoService, popupService, ngZone, renderer, changeDetector) {\n this.localization = localization;\n this.columnInfoService = columnInfoService;\n this.popupService = popupService;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.changeDetector = changeDetector;\n /**\n * Specifies if the changes in the visibility of the column will be immediately applied.\n */\n this.autoSync = false;\n /**\n * Specifies if all columns can be hidden.\n */\n this.allowHideAll = true;\n }\n get columns() {\n return this.columnInfoService.leafNamedColumns;\n }\n ngOnDestroy() {\n this.close();\n }\n /**\n * @hidden\n */\n toggle(anchor, template) {\n if (!this.popupRef) {\n const direction = this.localization.rtl ? 'right' : 'left';\n this.popupRef = this.popupService.open({\n anchor: anchor,\n content: template,\n positionMode: 'absolute',\n anchorAlign: { vertical: 'bottom', horizontal: direction },\n popupAlign: { vertical: 'top', horizontal: direction }\n });\n this.renderer.setAttribute(this.popupRef.popupElement, 'dir', this.localization.rtl ? 'rtl' : 'ltr');\n this.ngZone.runOutsideAngular(() => this.closeClick = this.renderer.listen(\"document\", \"click\", ({ target }) => {\n if (!closest(target, node => node === this.popupRef.popupElement || node === anchor)) {\n this.close();\n }\n }));\n }\n else {\n this.close();\n }\n }\n /**\n * @hidden\n */\n onApply(changed) {\n this.close();\n if (changed.length) {\n this.changeDetector.markForCheck();\n this.columnInfoService.changeVisibility(changed);\n }\n }\n /**\n * @hidden\n */\n onChange(changed) {\n this.changeDetector.markForCheck();\n this.columnInfoService.changeVisibility(changed);\n }\n close() {\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n }\n this.detachClose();\n }\n detachClose() {\n if (this.closeClick) {\n this.closeClick();\n this.closeClick = null;\n }\n }\n}\nColumnChooserComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-column-chooser',\n template: `\n \n \n {{ localization.get('columns') }}\n \n \n \n `\n },] },\n];\n/** @nocollapse */\nColumnChooserComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: ColumnInfoService },\n { type: PopupService },\n { type: NgZone },\n { type: Renderer2 },\n { type: ChangeDetectorRef }\n];\nColumnChooserComponent.propDecorators = {\n autoSync: [{ type: Input }],\n allowHideAll: [{ type: Input }]\n};\n\n/**\n * Represents the service that is passed to the\n * [`ColumnMenuTemplate`]({% slug api_grid_columnmenutemplatedirective %}) directive.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }];\n * }\n *\n * ```\n */\nclass ColumnMenuService {\n constructor() {\n /**\n * @hidden\n */\n this.closeMenu = new EventEmitter();\n }\n /**\n * Closes the column menu.\n */\n close() {\n this.closeMenu.emit();\n }\n}\nColumnMenuService.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nclass ColumnMenuItemBase {\n constructor() {\n this.hostClass = true;\n }\n ngOnInit() {\n if (isDevMode() && !this.service) {\n throw new Error('The service input of the predefined column menu components is mandatory.');\n }\n }\n /**\n * @hidden\n */\n close() {\n this.service.close();\n }\n}\nColumnMenuItemBase.propDecorators = {\n service: [{ type: Input }],\n hostClass: [{ type: HostBinding, args: ['class.k-columnmenu-item-wrapper',] }]\n};\n\n/* tslint:disable:max-line-length */\n/**\n * Represents the component for selecting columns in the Grid that can be placed\n * inside a [`ColumnMenuTemplate`]({% slug api_grid_columnmenutemplatedirective %}) directive.\n *\n * > You have to set the [ColumnMenuService]({% slug api_grid_columnmenuservice %}) that is passed by\n * > the template to the service input of the `kendo-grid-columnmenu-chooser` component.\n *\n * @example\n * {% meta height:300 %}\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }];\n * }\n *\n * ```\n * {% endmeta %}\n */\nclass ColumnMenuChooserComponent extends ColumnMenuItemBase {\n constructor(localization, columnInfoService, changeDetector) {\n super();\n this.localization = localization;\n this.columnInfoService = columnInfoService;\n this.changeDetector = changeDetector;\n /**\n * Fires when the content is expanded.\n */\n this.expand = new EventEmitter();\n /**\n * Fires when the content is collapsed.\n */\n this.collapse = new EventEmitter();\n /**\n * Specifies if the content is expanded.\n */\n this.expanded = false;\n /**\n * @hidden\n */\n this.actionsClass = 'k-columnmenu-actions';\n }\n get columns() {\n return this.columnInfoService.leafNamedColumns;\n }\n /**\n * @hidden\n */\n onApply(changed) {\n this.close();\n if (changed.length) {\n this.changeDetector.markForCheck();\n this.columnInfoService.changeVisibility(changed);\n }\n }\n}\nColumnMenuChooserComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-columnmenu-chooser',\n template: `\n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nColumnMenuChooserComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: ColumnInfoService },\n { type: ChangeDetectorRef }\n];\nColumnMenuChooserComponent.propDecorators = {\n expand: [{ type: Output }],\n collapse: [{ type: Output }],\n expanded: [{ type: Input }]\n};\n\n/* tslint:disable:max-line-length */\n/**\n * Represents the component for editing column filters in the Grid that can be placed\n * inside a [`ColumnMenuTemplate`]({% slug api_grid_columnmenutemplatedirective %}) directive.\n *\n * > You have to set the [ColumnMenuService]({% slug api_grid_columnmenuservice %}) that is passed by\n * > the template to the service input of the `kendo-grid-columnmenu-filter` component.\n *\n * @example\n * {% meta height:400 %}\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }];\n * }\n *\n * ```\n * {% endmeta %}\n */\nclass ColumnMenuFilterComponent extends ColumnMenuItemBase {\n constructor(localization) {\n super();\n this.localization = localization;\n /**\n * Fires when the content is expanded.\n */\n this.expand = new EventEmitter();\n /**\n * Fires when the content is collapsed.\n */\n this.collapse = new EventEmitter();\n /**\n * Specifies if the content is expanded.\n */\n this.expanded = false;\n /**\n * @hidden\n */\n this.actionsClass = 'k-columnmenu-actions';\n }\n}\nColumnMenuFilterComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-columnmenu-filter',\n template: `\n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nColumnMenuFilterComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nColumnMenuFilterComponent.propDecorators = {\n expand: [{ type: Output }],\n collapse: [{ type: Output }],\n expanded: [{ type: Input }]\n};\n\n/* tslint:disable:max-line-length */\n/**\n * Represents the content template of the\n * [`kendo-grid-columnmenu-item`]({% slug api_grid_columnmenuitemcomponent %}) component.\n * Provides an option for specifying the content of a column item.\n * To define the content template, nest an `` tag with the\n * `kendoGridColumnMenuItemContentTemplate` directive inside a ``.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * Item Content\n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }];\n * }\n *\n * ```\n */\nclass ColumnMenuItemContentTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nColumnMenuItemContentTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridColumnMenuItemContentTemplate]'\n },] },\n];\n/** @nocollapse */\nColumnMenuItemContentTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents an item that can be placed inside a\n * [`ColumnMenuTemplate`]({% slug api_grid_columnmenutemplatedirective %}) directive.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }];\n * }\n *\n * ```\n */\nclass ColumnMenuItemComponent {\n constructor() {\n /**\n * Fires when the item is clicked.\n */\n this.itemClick = new EventEmitter();\n /**\n * Fires when the content is expanded.\n */\n this.expand = new EventEmitter();\n /**\n * Fires when the content is collapsed.\n */\n this.collapse = new EventEmitter();\n this.contentState = 'collapsed';\n }\n get iconClass() {\n return `k-i-${this.icon}`;\n }\n ngOnChanges(changes) {\n if (changes.expanded) {\n this.updateContentState();\n }\n }\n /**\n * @hidden\n */\n onClick(e) {\n this.itemClick.emit(e);\n if (this.contentTemplate) {\n this.expanded = !this.expanded;\n this.updateContentState();\n if (this.expanded) {\n this.expand.emit();\n }\n else {\n this.collapse.emit();\n }\n }\n }\n updateContentState() {\n this.contentState = this.expanded ? 'expanded' : 'collapsed';\n }\n}\nColumnMenuItemComponent.decorators = [\n { type: Component, args: [{\n animations: [\n trigger('state', [\n state('collapsed', style({ display: 'none' })),\n state('expanded', style({ display: 'block' })),\n transition('collapsed => expanded', [\n style({\n height: '0px',\n display: 'block'\n }),\n animate('100ms ease-in', style({\n height: '*'\n }))\n ]),\n transition('expanded => collapsed', [\n style({\n height: '*'\n }),\n animate('100ms ease-in', style({\n height: '0px'\n }))\n ])\n ])\n ],\n selector: 'kendo-grid-columnmenu-item',\n template: `\n
\n \n \n {{ text }}\n
\n
\n \n \n
\n `\n },] },\n];\nColumnMenuItemComponent.propDecorators = {\n itemClick: [{ type: Output }],\n expand: [{ type: Output }],\n collapse: [{ type: Output }],\n icon: [{ type: Input }],\n text: [{ type: Input }],\n selected: [{ type: Input }],\n disabled: [{ type: Input }],\n expanded: [{ type: Input }],\n contentTemplate: [{ type: ContentChild, args: [ColumnMenuItemContentTemplateDirective,] }]\n};\n\n/* tslint:disable:max-line-length */\n/**\n * Represents a column-menu item for sorting Grid columns that can be placed inside a\n * [`ColumnMenuTemplate`]({% slug api_grid_columnmenutemplatedirective %}) directive.\n * Allows the user to sort the column.\n *\n * > You have to set the [ColumnMenuService]({% slug api_grid_columnmenuservice %}) that is passed by\n * > the template to the service input of the `kendo-grid-columnmenu-sort` component.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }, { Field1: 'Foo1', Field2: 'Bar1' }];\n * }\n *\n * ```\n */\nclass ColumnMenuSortComponent extends ColumnMenuItemBase {\n constructor(localization, sortService) {\n super();\n this.localization = localization;\n this.sortService = sortService;\n }\n get sortedAsc() {\n const descriptor = this.descriptor;\n return descriptor && (!descriptor.dir || descriptor.dir === 'asc');\n }\n get sortedDesc() {\n const descriptor = this.descriptor;\n return descriptor && descriptor.dir === 'desc';\n }\n /**\n * @hidden\n */\n toggleSort(dir) {\n const field = this.service.column.field;\n const { mode, allowUnsort } = normalize$1(this.service.sortable);\n const descriptor = this.descriptor;\n const sort = mode === 'multiple' ? this.service.sort.filter(s => s.field !== field) : [];\n if (descriptor && descriptor.dir === dir) {\n if (!allowUnsort) {\n return;\n }\n }\n else {\n sort.push({ field, dir });\n }\n this.sortService.sort(sort);\n this.close();\n }\n get descriptor() {\n return [].concat(this.service.sort || []).find(s => s.field === this.service.column.field);\n }\n}\nColumnMenuSortComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-columnmenu-sort',\n template: `\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nColumnMenuSortComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: SortService }\n];\n\nconst POPUP_CLASS = 'k-grid-columnmenu-popup';\n/**\n * Represents the [column menu]({% slug columnmenu_grid %}) component.\n */\nclass ColumnMenuComponent {\n constructor(popupService, localization, service) {\n this.popupService = popupService;\n this.localization = localization;\n this.service = service;\n /**\n * @hidden\n */\n this.standalone = true;\n /**\n * The settings for the Column Menu.\n */\n this.settings = {};\n /**\n * @hidden\n */\n this.sortable = true;\n /**\n * @hidden\n */\n this.expandedFilter = false;\n /**\n * @hidden\n */\n this.expandedColumns = false;\n this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this));\n }\n /**\n * @hidden\n */\n get isActive() {\n return (this.hasFilter && filtersByField(this.filter, this.column.field).length > 0) ||\n (!this.sortable && this.hasSort && this.sort.find(descriptor => descriptor.field === this.column.field));\n }\n /**\n * @hidden\n */\n get hasFilter() {\n return hasFilter(this.settings, this.column);\n }\n /**\n * @hidden\n */\n get hasSort() {\n return hasSort(this.settings, this.column);\n }\n /**\n * @hidden\n */\n get hasColumnChooser() {\n return hasColumnChooser(this.settings);\n }\n /**\n * @hidden\n */\n get hasLock() {\n return hasLock(this.settings, this.column);\n }\n ngOnChanges() {\n this.service.column = this.column;\n this.service.sort = this.sort;\n this.service.filter = this.filter;\n this.service.sortable = this.sortable;\n }\n ngOnDestroy() {\n this.close();\n this.closeSubscription.unsubscribe();\n }\n /**\n * @hidden\n */\n toggle(e, anchor, template) {\n e.preventDefault();\n this.expandedFilter = !this.hasColumnChooser;\n this.expandedColumns = !this.hasFilter;\n this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASS);\n }\n /**\n * @hidden\n */\n close() {\n this.popupService.destroy();\n this.popupRef = null;\n }\n /**\n * @hidden\n */\n onColumnsExpand() {\n this.expandedColumns = true;\n this.expandedFilter = false;\n }\n /**\n * @hidden\n */\n onFilterExpand() {\n this.expandedFilter = true;\n this.expandedColumns = false;\n }\n}\nColumnMenuComponent.decorators = [\n { type: Component, args: [{\n providers: [ColumnMenuService],\n selector: 'kendo-grid-column-menu',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nColumnMenuComponent.ctorParameters = () => [\n { type: SinglePopupService },\n { type: LocalizationService },\n { type: ColumnMenuService }\n];\nColumnMenuComponent.propDecorators = {\n standalone: [{ type: HostBinding, args: ['class.k-grid-column-menu-standalone',] }, { type: Input }],\n column: [{ type: Input }],\n settings: [{ type: Input }],\n sort: [{ type: Input }],\n filter: [{ type: Input }],\n sortable: [{ type: Input }],\n columnMenuTemplate: [{ type: Input }]\n};\n\n/* tslint:disable:max-line-length */\n/**\n * Represents a column-menu item that can be placed inside a\n * [`ColumnMenuTemplate`]({% slug api_grid_columnmenutemplatedirective %}) directive.\n * Allows the user to lock or unlock the columns.\n *\n * > You have to set the [ColumnMenuService]({% slug api_grid_columnmenuservice %}) that is passed by\n * > the template to the service input of the `kendo-grid-columnmenu-lock` component.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public data: any[] = [{ Field1: 'Foo', Field2: 'Bar' }];\n * }\n *\n * ```\n */\nclass ColumnMenuLockComponent extends ColumnMenuItemBase {\n constructor(localization, columnInfoService, changeDetector) {\n super();\n this.localization = localization;\n this.columnInfoService = columnInfoService;\n this.changeDetector = changeDetector;\n }\n get text() {\n return this.localization.get(this.locked ? 'unlock' : 'lock');\n }\n get icon() {\n return this.locked ? 'unlock' : 'lock';\n }\n get disabled() {\n return !this.locked && this.columnInfoService.unlockedRootCount < 2;\n }\n /**\n * @hidden\n */\n toggleColumn() {\n this.toggleHierarchy(!this.locked);\n this.close();\n this.changeDetector.markForCheck();\n }\n toggleHierarchy(locked) {\n let root = this.service.column;\n while (root.parent) {\n root = root.parent;\n }\n const columns = [root];\n const allChanged = [];\n while (columns.length) {\n const column = columns.shift();\n column.locked = locked;\n allChanged.push(column);\n if (column.hasChildren) {\n columns.push(...column.childrenArray);\n }\n }\n this.columnInfoService.changeLocked(allChanged);\n }\n get locked() {\n return this.service.column.locked;\n }\n}\nColumnMenuLockComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-columnmenu-lock',\n template: `\n \n \n `\n },] },\n];\n/** @nocollapse */\nColumnMenuLockComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: ColumnInfoService },\n { type: ChangeDetectorRef }\n];\n\nconst COMPONENTS$1 = [\n ColumnListComponent,\n ColumnChooserComponent,\n ColumnMenuChooserComponent,\n ColumnMenuFilterComponent,\n ColumnMenuItemComponent,\n ColumnMenuItemContentTemplateDirective,\n ColumnMenuSortComponent,\n ColumnMenuComponent,\n ColumnMenuLockComponent,\n ColumnMenuTemplateDirective\n];\n/**\n * @hidden\n */\nclass ColumnMenuModule {\n static exports() {\n return [\n ColumnChooserComponent,\n ColumnMenuFilterComponent,\n ColumnMenuItemComponent,\n ColumnMenuItemContentTemplateDirective,\n ColumnMenuSortComponent,\n ColumnMenuLockComponent,\n ColumnMenuChooserComponent,\n ColumnMenuTemplateDirective,\n ColumnMenuComponent\n ];\n }\n}\nColumnMenuModule.decorators = [\n { type: NgModule, args: [{\n declarations: [COMPONENTS$1],\n imports: [CommonModule, FilterMenuModule],\n exports: [COMPONENTS$1]\n },] },\n];\n\nconst exportedModules$2 = [\n HeaderComponent,\n HeaderTemplateDirective,\n ColumnHandleDirective,\n SelectAllCheckboxDirective\n];\nconst importedModules$2 = [\n CommonModule,\n GroupModule,\n RowFilterModule,\n FilterMenuModule,\n SharedModule,\n DragAndDropModule,\n ColumnMenuModule\n];\n/**\n * @hidden\n */\nclass HeaderModule {\n static exports() {\n return [\n HeaderTemplateDirective,\n SelectAllCheckboxDirective\n ];\n }\n}\nHeaderModule.decorators = [\n { type: NgModule, args: [{\n declarations: [exportedModules$2],\n exports: [exportedModules$2],\n imports: [...importedModules$2]\n },] },\n];\n\n/**\n * Represents the command columns of the Grid. You have to define the content of the\n * column inside an `` tag. The template context is set to the current\n * data item. For more information and examples on using the passed fields\n * and the command directives, refer to the article on\n * [editing the Grid in Angular Reactive Forms]({% slug editing_reactive_forms_grid %}).\n *\n * The following additional fields are passed:\n * - `columnIndex`—The current column index.\n * - `rowIndex`—The current data row index. If inside a new item row, `rowIndex`is `-1`.\n * - `dataItem`—The current data item.\n * - `column`—The current column instance.\n * - `isNew`—The state of the current item.\n *\n * Usually, the template contains CRUD command directives such as:\n * - [`EditCommandDirective`]({% slug api_grid_editcommanddirective %})\n * - [`RemoveCommandDirective`]({% slug api_grid_removecommanddirective %})\n * - [`CancelCommandDirective`]({% slug api_grid_cancelcommanddirective %})\n * - [`SaveCommandDirective`]({% slug api_grid_savecommanddirective %})\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public gridData: any[];\n *\n * constructor() {\n * this.gridData = products;\n * }\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n *\n * ```\n */\nclass CommandColumnComponent extends ColumnBase$1 {\n constructor(parent) {\n super(parent);\n this.parent = parent;\n }\n get templateRef() {\n return this.template ? this.template.templateRef : undefined;\n }\n}\nCommandColumnComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => CommandColumnComponent)\n }\n ],\n selector: 'kendo-grid-command-column',\n template: ``\n },] },\n];\n/** @nocollapse */\nCommandColumnComponent.ctorParameters = () => [\n { type: ColumnBase$1, decorators: [{ type: SkipSelf }, { type: Host }, { type: Optional }] }\n];\nCommandColumnComponent.propDecorators = {\n template: [{ type: ContentChild, args: [CellTemplateDirective,] }]\n};\n\n/**\n * Represents the checkbox for selecting columns in the Grid. If the column is\n * defined as empty, it renders a default checkbox for row selection.\n * You can also define the content of the column inside an `` tag.\n * The input requires you to include the `SelectionCheckbox` option.\n *\n * The template context is set to the current data item and the following additional fields are passed:\n * - `columnIndex`—The current column index.\n * - `rowIndex`—The current data row index. If inside a new item row, it will be `-1`.\n * - `dataItem`—The current data item.\n * - `column`—The current column instance.\n * - `isNew`—The state of the current item.\n *\n * For more examples, refer to:\n * - [Selecting or deselecting all items on a page]({% slug selection_grid %}#toc-select-all-feature)\n * - [Persisting the selection]({% slug selection_grid %}#toc-in-combination-with-the-select-all-feature)\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * Select row \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public gridData: any[];\n *\n * constructor() {\n * this.gridData = products;\n * }\n * }\n *\n * const products = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000,\n * \"Discontinued\": true\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000,\n * \"Discontinued\": false\n * }\n * ];\n *\n * ```\n */\nclass CheckboxColumnComponent extends ColumnBase$1 {\n constructor(parent) {\n super(parent);\n this.parent = parent;\n /*\n * @hidden\n */\n this.isCheckboxColumn = true;\n }\n get templateRef() {\n return this.template ? this.template.templateRef : undefined;\n }\n}\nCheckboxColumnComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => CheckboxColumnComponent)\n }\n ],\n selector: 'kendo-grid-checkbox-column',\n template: ``\n },] },\n];\n/** @nocollapse */\nCheckboxColumnComponent.ctorParameters = () => [\n { type: ColumnBase$1, decorators: [{ type: SkipSelf }, { type: Host }, { type: Optional }] }\n];\nCheckboxColumnComponent.propDecorators = {\n showSelectAll: [{ type: Input }],\n template: [{ type: ContentChild, args: [CellTemplateDirective,] }]\n};\n\n/* tslint:disable:no-input-rename */\n/**\n * Represents the row-selection checkbox of the Grid. The directive expects the\n * index of the current row as an input parameter. Inside the\n * [`CheckboxColumnComponent`]({% slug api_grid_checkboxcolumncomponent %}), apply the\n * directive to an `input` element. When the user clicks the checkbox that is associated\n * with the directive, a [`selectionChange`]({% slug api_grid_gridcomponent %}#toc-selectionChange)\n * event is triggered.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nclass SelectionCheckboxDirective {\n constructor(selectionService, el, renderer, ngZone) {\n this.selectionService = selectionService;\n this.el = el;\n this.renderer = renderer;\n this.ngZone = ngZone;\n this.type = \"checkbox\";\n this.ngZone.runOutsideAngular(() => {\n this.destroyClick = this.renderer.listen(this.el.nativeElement, \"click\", this.onClick.bind(this));\n this.destroyKeyDown = this.renderer.listen(this.el.nativeElement, \"keydown\", this.onKeyDown.bind(this));\n });\n }\n ngAfterContentChecked() {\n this.setCheckedState();\n }\n ngOnDestroy() {\n if (this.destroyClick) {\n this.destroyClick();\n }\n if (this.destroyKeyDown) {\n this.destroyKeyDown();\n }\n }\n onClick() {\n if (this.selectionService.options.enabled) {\n this.ngZone.run(() => {\n const ev = this.selectionService.toggleByIndex(this.itemIndex);\n ev.ctrlKey = true;\n ev.shiftKey = false;\n this.selectionService.changes.emit(ev);\n });\n }\n }\n onKeyDown(e) {\n if (e.keyCode === Keys.Enter) {\n this.onClick();\n }\n }\n /*\n * @hidden\n */\n setCheckedState() {\n this.renderer.setProperty(this.el.nativeElement, \"checked\", this.selectionService.isSelected(this.itemIndex));\n }\n}\nSelectionCheckboxDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridSelectionCheckbox]'\n },] },\n];\n/** @nocollapse */\nSelectionCheckboxDirective.ctorParameters = () => [\n { type: SelectionService },\n { type: ElementRef },\n { type: Renderer2 },\n { type: NgZone }\n];\nSelectionCheckboxDirective.propDecorators = {\n itemIndex: [{ type: Input, args: [\"kendoGridSelectionCheckbox\",] }],\n type: [{ type: HostBinding, args: ['attr.type',] }]\n};\n\nconst columnCellIndex = (cell, cells) => {\n let cellIndex = 0;\n for (let idx = 0; idx < cells.length; idx++) {\n if (cells[idx] === cell) {\n return cellIndex;\n }\n if (!hasClasses(cells[idx], 'k-hierarchy-cell k-group-cell')) {\n cellIndex++;\n }\n }\n};\n/**\n * @hidden\n */\nclass TableBodyComponent {\n constructor(detailsService, groupsService, changeNotification, editService, localization, ngZone, renderer, element, domEvents, selectionService, columnInfoService, navigationService) {\n this.detailsService = detailsService;\n this.groupsService = groupsService;\n this.changeNotification = changeNotification;\n this.editService = editService;\n this.localization = localization;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.element = element;\n this.domEvents = domEvents;\n this.selectionService = selectionService;\n this.columnInfoService = columnInfoService;\n this.navigationService = navigationService;\n this.columns = [];\n this.groups = [];\n this.skip = 0;\n this.noRecordsText = this.localization.get('noRecords');\n this.isLocked = false;\n this.skipGroupDecoration = false;\n this.showGroupFooters = false;\n this.lockedColumnsCount = 0;\n this.totalColumnsCount = 0;\n this.trackBy = defaultTrackBy;\n this.rowClass = () => null;\n this.cellKeydownSubscription = this.navigationService.cellKeydown.subscribe((args) => this.cellKeydownHandler(args));\n this.trackByWrapper = this.trackByWrapper.bind(this);\n this.trackByColumns = this.trackByColumns.bind(this);\n }\n get newDataItem() {\n return this.editService.newDataItem;\n }\n // Number of unlocked columns in the next table, if any\n get unlockedColumnsCount() {\n return this.totalColumnsCount - this.lockedColumnsCount - (this.allColumns || this.columns).length;\n }\n toggleRow(index, dataItem) {\n this.detailsService.toggleRow(index, dataItem);\n return false;\n }\n isExpanded(viewItem) {\n return this.detailsService.isExpanded(viewItem.index, viewItem.data);\n }\n detailButtonStyles(viewItem) {\n const expanded = this.isExpanded(viewItem);\n return expanded ? 'k-minus' : 'k-plus';\n }\n detailButtonTitle(viewItem) {\n const messageKey = this.isExpanded(viewItem) ? 'detailCollapse' : 'detailExpand';\n return this.localization.get(messageKey);\n }\n isGroup(item) {\n return item.type === 'group';\n }\n isDataItem(item) {\n return !this.isGroup(item) && !this.isFooter(item);\n }\n isFooter(item) {\n return item.type === 'footer';\n }\n isInExpandedGroup(item) {\n return this.groupsService.isInExpandedGroup(item.groupIndex, false);\n }\n isParentGroupExpanded(item) {\n return this.groupsService.isInExpandedGroup(item.index || item.groupIndex);\n }\n isOdd(item) {\n return item.index % 2 !== 0;\n }\n isSelectable() {\n return this.selectable && this.selectable.enabled !== false;\n }\n isRowSelected(item) {\n return this.selectionService.isSelected(item.index);\n }\n trackByWrapper(index, item) {\n if (item.type === 'data') {\n item.isEditing = this.editService.hasEdited(item.index);\n }\n return this.trackBy(index, item);\n }\n trackByColumns(index, item) {\n return this.virtualColumns ? index : item;\n }\n ngDoCheck() {\n if (this.hasGroupHeaderColumn) {\n this.groupHeaderColumns = columnsToRender(this.skipGroupDecoration ? this.columns : this.columns.toArray().slice(1));\n }\n else {\n this.groupHeaderColumns = [];\n }\n if (this.isLocked) {\n this.groupHeaderSlaveCellsCount =\n this.hasGroupHeaderColumn ? this.columnsContainer.nonLockedColumnsToRender.length : 1;\n }\n else {\n this.groupHeaderSlaveCellsCount = 0;\n }\n }\n ngOnChanges(changes) {\n if (isChanged(\"columns\", changes, false)) {\n this.changeNotification.notify();\n }\n }\n logicalRowIndex(rowIndex) {\n let pos = this.skip + rowIndex;\n if (this.hasDetailTemplate) {\n pos *= 2;\n }\n const absoluteRowIndex = 1 + pos;\n const addRowOffset = this.editService.hasNewItem ? 1 : 0;\n const filterRowOffset = hasFilterRow(this.filterable) ? 1 : 0;\n const headerRowCount = this.columnInfoService.totalLevels + filterRowOffset + addRowOffset;\n return absoluteRowIndex + headerRowCount;\n }\n addRowLogicalIndex() {\n return this.columnInfoService.totalLevels + 1;\n }\n logicalColIndex(column) {\n if (!isPresent(column.leafIndex)) {\n return -1;\n }\n return column.leafIndex + (this.hasDetailTemplate ? 1 : 0);\n }\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n const clickHandler = this.clickHandler.bind(this);\n const mousedownSubscription = this.renderer.listen(this.element.nativeElement, 'mousedown', clickHandler);\n const clickSubscription = this.renderer.listen(this.element.nativeElement, 'click', clickHandler);\n const contextmenuSubscription = this.renderer.listen(this.element.nativeElement, 'contextmenu', clickHandler);\n this.clickSubscription = () => {\n mousedownSubscription();\n clickSubscription();\n contextmenuSubscription();\n };\n });\n let originalNoRecordText = this.localization.get('noRecords');\n this.localization.changes.subscribe(() => {\n if (this.noRecordsText === originalNoRecordText) {\n this.noRecordsText = this.localization.get('noRecords');\n originalNoRecordText = this.noRecordsText;\n }\n });\n }\n ngOnDestroy() {\n if (this.clickSubscription) {\n this.clickSubscription();\n }\n this.cellKeydownSubscription.unsubscribe();\n clearTimeout(this.clickTimeout);\n }\n isEditingCell(index, column) {\n return this.editService.isEditing() && this.editService.isEditedColumn(index, column);\n }\n isEditingRow(index) {\n return this.editService.isEditing() && this.editService.hasEdited(index);\n }\n get hasGroupHeaderColumn() {\n return this.columnsContainer.hasGroupHeaderColumn;\n }\n get columnsContainer() {\n return this.columnInfoService.columnsContainer;\n }\n get columnsSpan() {\n return columnsSpan(this.columns);\n }\n get allColumnsSpan() {\n return columnsSpan(this.allColumns || this.columns);\n }\n get colSpan() {\n return this.columnsSpan + this.groups.length + (this.hasDetailTemplate ? 1 : 0);\n }\n get footerColumns() {\n return this.isLocked ? this.columnsContainer.lockedColumnsToRender : this.columnsContainer.nonLockedColumnsToRender;\n }\n showGroupHeader(item) {\n return !item.data.skipHeader;\n }\n get hasDetailTemplate() {\n return isPresent(this.detailTemplate);\n }\n clickHandler(eventArg) {\n const element = this.element.nativeElement;\n const target = eventArg.target;\n let cell, row, body, gridElement;\n let currentTarget = target;\n do {\n cell = closest(currentTarget, matchesNodeName('td'));\n row = closest(cell, matchesNodeName('tr'));\n body = closest(row, matchesNodeName('tbody'));\n currentTarget = body;\n gridElement = closestInScope(currentTarget, matchesClasses('k-grid'), element);\n } while (body && body !== element && !gridElement);\n if (cell && !hasClasses(cell, NON_DATA_CELL_CLASSES) &&\n !hasClasses(row, NON_DATA_ROW_CLASSES) &&\n body === element && !gridElement) {\n this.editService.preventCellClose();\n const focusable = target !== cell && isFocusableWithTabKey(target, false);\n if (!focusable && !matchesNodeName('label')(target) && !hasClasses(target, IGNORE_TARGET_CLASSSES) &&\n !closestInScope(target, matchesClasses(IGNORE_CONTAINER_CLASSES), cell)) {\n const args = this.cellClickArgs(cell, row, eventArg);\n if (eventArg.type === 'mousedown') {\n this.domEvents.cellMousedown.emit(args);\n }\n else {\n if (args.isEditedColumn || !this.editService.closeCell(eventArg)) {\n if (eventArg.type === 'click') {\n this.clickTimeout = setTimeout(() => {\n this.emitCellClick(args);\n }, 0);\n }\n else {\n this.emitCellClick(args);\n }\n }\n }\n }\n }\n }\n emitCellClick(args) {\n this.domEvents.cellClick.emit(Object.assign(args, {\n isEdited: args.isEditedRow || args.isEditedColumn\n }));\n }\n cellKeydownHandler(args) {\n if (args.keyCode === Keys.Enter) {\n this.clickHandler(args);\n }\n }\n cellClickArgs(cell, row, eventArg) {\n const index = columnCellIndex(cell, row.cells);\n const column = this.columns.toArray()[index];\n const columnIndex = this.lockedColumnsCount + index;\n let rowIndex = row.getAttribute('data-kendo-grid-item-index');\n rowIndex = rowIndex ? parseInt(rowIndex, 10) : -1;\n const dataItem = rowIndex === -1 ? this.editService.newDataItem : this.data.at(rowIndex - this.skip);\n const isEditedColumn = this.editService.isEditedColumn(rowIndex, column);\n const isEditedRow = this.editService.isEdited(rowIndex);\n const type = eventArg.type === 'keydown' ? 'click' : eventArg.type;\n return {\n column: column,\n columnIndex: columnIndex,\n dataItem: dataItem,\n isEditedColumn: isEditedColumn,\n isEditedRow: isEditedRow,\n originalEvent: eventArg,\n rowIndex: rowIndex,\n type: type\n };\n }\n}\nTableBodyComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoGridTableBody]',\n template: `\n \n 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{noRecordsText}}\n \n \n \n \n 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"groupHeaderSlaveCellsCount\">\n \n 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\"\n [ngClass]=\"rowClass({ dataItem: item.data, index: item.index })\"\n [class.k-alt]=\"isOdd(item)\"\n [class.k-master-row]=\"detailTemplate?.templateRef\"\n [class.k-grid-edit-row]=\"isEditingRow(item.index)\"\n [attr.data-kendo-grid-item-index]=\"item.index\"\n [class.k-state-selected]=\"isSelectable() && isRowSelected(item)\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\">\n \n \n \n \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nTableBodyComponent.ctorParameters = () => [\n { type: DetailsService },\n { type: GroupsService },\n { type: ChangeNotificationService },\n { type: EditService },\n { type: LocalizationService },\n { type: NgZone },\n { type: Renderer2 },\n { type: ElementRef },\n { type: DomEventsService },\n { type: SelectionService },\n { type: ColumnInfoService },\n { type: NavigationService }\n];\nTableBodyComponent.propDecorators = {\n columns: [{ type: Input }],\n allColumns: [{ type: Input }],\n groups: [{ type: Input }],\n detailTemplate: [{ type: Input }],\n noRecordsTemplate: [{ type: Input }],\n data: [{ type: Input }],\n skip: [{ type: Input }],\n selectable: [{ type: Input }],\n filterable: [{ type: Input }],\n noRecordsText: [{ type: Input }],\n isLocked: [{ type: Input }],\n skipGroupDecoration: [{ type: Input }],\n showGroupFooters: [{ type: Input }],\n lockedColumnsCount: [{ type: Input }],\n totalColumnsCount: [{ type: Input }],\n virtualColumns: [{ type: Input }],\n trackBy: [{ type: Input }],\n rowClass: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass CellComponent {\n constructor(editService, idService, cellContext) {\n this.editService = editService;\n this.idService = idService;\n this.cellContext = cellContext;\n this.isNew = false;\n this._templateContext = {};\n this._editTemplateContext = {};\n }\n get commandCellClass() {\n return this.isCommand(this.column);\n }\n set rowIndex(index) {\n this._rowIndex = index;\n this.updateCellContext();\n }\n get rowIndex() {\n return this._rowIndex;\n }\n get isEdited() {\n if (!(this.editService.isEditing() || this.isNew) || !this.isColumnEditable) {\n return false;\n }\n const editContext = this.editService.columnContext(this.rowIndex, this.column);\n return this.isFieldEditable(editContext, this.column);\n }\n get formGroup() {\n return this.editService.context(this.rowIndex).group;\n }\n get templateContext() {\n return this._templateContext;\n }\n get editTemplateContext() {\n this._editTemplateContext.$implicit = this.formGroup;\n this._editTemplateContext.isNew = this.isNew;\n this._editTemplateContext.column = this.column;\n this._editTemplateContext.dataItem = this.dataItem;\n this._editTemplateContext.formGroup = this.formGroup;\n this._editTemplateContext.rowIndex = this.rowIndex;\n return this._editTemplateContext;\n }\n get format() {\n if (isColumnComponent(this.column) && !isNullOrEmptyString(this.column.format)) {\n return extractFormat(this.column.format);\n }\n return undefined;\n }\n get isBoundColumn() {\n return this.column.field && !this.column.templateRef;\n }\n get isCheckboxColumn() {\n return isCheckboxColumn(this.column) && !this.column.templateRef;\n }\n get selectionCheckboxId() {\n return this.idService.selectionCheckboxId(this.rowIndex);\n }\n get isSpanColumn() {\n return isSpanColumn(this.column) && !this.column.templateRef;\n }\n get childColumns() {\n return columnsToRender([this.column]);\n }\n get isColumnEditable() {\n if (!this.column || this.isCommand(this.column)) {\n return false;\n }\n return this.column.editable !== false;\n }\n ngDoCheck() {\n this.updateCellContext();\n }\n ngOnChanges(_changes) {\n this.updateTemplateContext();\n }\n isCommand(column) {\n return column instanceof CommandColumnComponent;\n }\n isFieldEditable(editContext, column) {\n if (!isPresent(editContext)) {\n return false;\n }\n if (isPresent(column.editTemplate)) {\n return true;\n }\n return isPresent(editContext.group) && isPresent(editContext.group.get(column.field));\n }\n updateCellContext() {\n if (this.cellContext) {\n this.cellContext.rowIndex = this._rowIndex;\n }\n }\n updateTemplateContext() {\n if (!this.column.templateRef) {\n return;\n }\n const context = this._templateContext;\n context.isNew = this.isNew;\n context.column = this.column;\n context.dataItem = this.dataItem;\n context.rowIndex = this.rowIndex;\n context.columnIndex = this.columnIndex;\n context.$implicit = this.dataItem;\n }\n}\nCellComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoGridCell]',\n template: `\n \n \n \n \n \n \n {{ dataItem | valueOf: childColumn.field: childColumn.format}}\n \n \n {{ dataItem | valueOf: column.field: column.format}}\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nCellComponent.ctorParameters = () => [\n { type: EditService },\n { type: IdService },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [CELL_CONTEXT,] }] }\n];\nCellComponent.propDecorators = {\n commandCellClass: [{ type: HostBinding, args: ['class.k-command-cell',] }],\n column: [{ type: Input }],\n columnIndex: [{ type: Input }],\n isNew: [{ type: Input }],\n rowIndex: [{ type: Input }],\n dataItem: [{ type: Input }]\n};\n\n/**\n * Represents the `edit` command of the Grid. You can apply this directive to any `button`\n * element inside a [`CommandColumnComponent`]({% slug api_grid_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`edit`]({% slug api_grid_gridcomponent %}#toc-edit) event\n * is triggered ([see example]({% slug editing_grid %})).\n *\n * > When the row is in the edit mode, the button with `kendoGridEditCommand` is automatically hidden.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n *\n */\nclass EditCommandDirective extends Button {\n constructor(editService, cellContext, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.editService = editService;\n this.cellContext = cellContext;\n /**\n * @hidden\n */\n this.commandClass = true;\n }\n /**\n * @hidden\n */\n get visible() {\n return this.isEdited ? 'none' : '';\n }\n /**\n * @hidden\n */\n onClick(e) {\n e.preventDefault();\n this.editService.beginEdit(this.rowIndex);\n }\n ngDoCheck() {\n if (this.cellContext) {\n this.rowIndex = this.cellContext.rowIndex;\n this.isEdited = this.editService.isEdited(this.rowIndex);\n }\n }\n}\nEditCommandDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridEditCommand]'\n },] },\n];\n/** @nocollapse */\nEditCommandDirective.ctorParameters = () => [\n { type: EditService },\n { type: undefined, decorators: [{ type: Inject, args: [CELL_CONTEXT,] }] },\n { type: ElementRef },\n { type: Renderer2 },\n { type: LocalizationService },\n { type: NgZone }\n];\nEditCommandDirective.propDecorators = {\n visible: [{ type: HostBinding, args: ['style.display',] }],\n commandClass: [{ type: HostBinding, args: ['class.k-grid-edit-command',] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }]\n};\n\n/**\n * Represents the `cancel` command of the Grid. You can apply this directive to any `button`\n * element inside a [`CommandColumnComponent`]({% slug api_grid_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`cancel`]({% slug api_grid_gridcomponent %}#toc-cancel) event\n * is triggered ([see example]({% slug editing_grid %})).\n *\n * > When the row is not in the edit mode, the button with the `kendoGridCancelCommand` is automatically hidden.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n *\n * You can control the content of the button based on the state of the row.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nclass CancelCommandDirective extends Button {\n constructor(editService, cellContext, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.editService = editService;\n this.cellContext = cellContext;\n /**\n * @hidden\n */\n this.commandClass = true;\n }\n /**\n * @hidden\n */\n get visible() {\n return !this.isEdited ? 'none' : '';\n }\n /**\n * @hidden\n */\n onClick(e) {\n e.preventDefault();\n if (this.isEdited) {\n this.editService.endEdit(this.rowIndex);\n }\n }\n ngDoCheck() {\n if (this.cellContext) {\n this.rowIndex = this.cellContext.rowIndex;\n this.isEdited = this.editService.isEdited(this.rowIndex);\n }\n }\n}\nCancelCommandDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridCancelCommand]'\n },] },\n];\n/** @nocollapse */\nCancelCommandDirective.ctorParameters = () => [\n { type: EditService },\n { type: undefined, decorators: [{ type: Inject, args: [CELL_CONTEXT,] }] },\n { type: ElementRef },\n { type: Renderer2 },\n { type: LocalizationService },\n { type: NgZone }\n];\nCancelCommandDirective.propDecorators = {\n visible: [{ type: HostBinding, args: ['style.display',] }],\n commandClass: [{ type: HostBinding, args: ['class.k-grid-cancel-command',] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }]\n};\n\n/**\n * Represents the `save` command of the Grid. You can apply this directive to any `button`\n * element inside a [`CommandColumnComponent`]({% slug api_grid_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`save`]({% slug api_grid_gridcomponent %}#toc-save) event\n * is triggered ([see example]({% slug editing_grid %})).\n *\n * > When the row is not in the edit mode, the button with `kendoGridSaveCommand` is automatically hidden.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n *\n * You can control the content of the button based on the state of the row.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nclass SaveCommandDirective extends Button {\n constructor(editService, cellContext, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.editService = editService;\n this.cellContext = cellContext;\n /**\n * @hidden\n */\n this.commandClass = true;\n }\n /**\n * @hidden\n */\n get visible() {\n return !this.isEdited ? 'none' : '';\n }\n /**\n * @hidden\n */\n onClick(e) {\n e.preventDefault();\n if (this.isEdited) {\n this.editService.save(this.rowIndex);\n }\n }\n ngDoCheck() {\n if (this.cellContext) {\n this.rowIndex = this.cellContext.rowIndex;\n this.isEdited = this.editService.isEdited(this.rowIndex);\n }\n }\n}\nSaveCommandDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridSaveCommand]'\n },] },\n];\n/** @nocollapse */\nSaveCommandDirective.ctorParameters = () => [\n { type: EditService },\n { type: undefined, decorators: [{ type: Inject, args: [CELL_CONTEXT,] }] },\n { type: ElementRef },\n { type: Renderer2 },\n { type: LocalizationService },\n { type: NgZone }\n];\nSaveCommandDirective.propDecorators = {\n visible: [{ type: HostBinding, args: ['style.display',] }],\n commandClass: [{ type: HostBinding, args: ['class.k-grid-save-command',] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }]\n};\n\n/**\n * Represents the `remove` command of the Grid. You can apply this directive to any `button` element\n * inside a [`CommandColumnComponent`]({% slug api_grid_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`remove` event]({% slug api_grid_gridcomponent %}#toc-remove)\n * is triggered ([see example]({% slug editing_reactive_forms_grid %})).\n *\n * > When the row is in the edit mode, the button with the `kendoGridRemoveCommand` is automatically hidden.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nclass RemoveCommandDirective extends Button {\n constructor(editService, cellContext, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.editService = editService;\n this.cellContext = cellContext;\n /**\n * @hidden\n */\n this.commandClass = true;\n }\n /**\n * @hidden\n */\n get visible() {\n return this.isEdited ? 'none' : '';\n }\n /**\n * @hidden\n */\n onClick(e) {\n e.preventDefault();\n this.editService.remove(this.rowIndex);\n }\n ngDoCheck() {\n if (this.cellContext) {\n this.rowIndex = this.cellContext.rowIndex;\n this.isEdited = this.editService.isEdited(this.rowIndex);\n }\n }\n}\nRemoveCommandDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridRemoveCommand]'\n },] },\n];\n/** @nocollapse */\nRemoveCommandDirective.ctorParameters = () => [\n { type: EditService },\n { type: undefined, decorators: [{ type: Inject, args: [CELL_CONTEXT,] }] },\n { type: ElementRef },\n { type: Renderer2 },\n { type: LocalizationService },\n { type: NgZone }\n];\nRemoveCommandDirective.propDecorators = {\n visible: [{ type: HostBinding, args: ['style.display',] }],\n commandClass: [{ type: HostBinding, args: ['class.k-grid-remove-command',] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }]\n};\n\n/**\n * Represents the command for adding a new item to the Grid. You can apply this directive to any\n * `button` element inside a [`ToolbarTemplate`]({% slug api_grid_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`add`]({% slug api_grid_gridcomponent %}#toc-add) event is triggered\n * ([see example]({% slug editing_grid %})).\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * ```\n */\nclass AddCommandDirective extends Button {\n constructor(editService, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.editService = editService;\n }\n /**\n * @hidden\n */\n onClick(e) {\n e.preventDefault();\n this.editService.beginAdd();\n }\n /**\n * @hidden\n */\n get commandClass() {\n return true;\n }\n}\nAddCommandDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridAddCommand]'\n },] },\n];\n/** @nocollapse */\nAddCommandDirective.ctorParameters = () => [\n { type: EditService },\n { type: ElementRef },\n { type: Renderer2 },\n { type: LocalizationService },\n { type: NgZone }\n];\nAddCommandDirective.propDecorators = {\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }],\n commandClass: [{ type: HostBinding, args: ['class.k-grid-add-command',] }]\n};\n\nconst exported$1 = [\n CommandColumnComponent,\n CheckboxColumnComponent,\n SelectionCheckboxDirective,\n CellTemplateDirective,\n EditTemplateDirective,\n TableBodyComponent,\n NoRecordsTemplateDirective,\n CellComponent,\n EditCommandDirective,\n CancelCommandDirective,\n SaveCommandDirective,\n RemoveCommandDirective,\n AddCommandDirective\n];\nconst importedModules$3 = [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n SharedModule,\n GroupModule,\n NumericTextBoxModule,\n DatePickerModule\n];\n/**\n * @hidden\n */\nclass BodyModule {\n static exports() {\n return [\n CommandColumnComponent,\n CheckboxColumnComponent,\n SelectionCheckboxDirective,\n CellTemplateDirective,\n NoRecordsTemplateDirective,\n EditTemplateDirective,\n EditCommandDirective,\n CancelCommandDirective,\n SaveCommandDirective,\n RemoveCommandDirective,\n AddCommandDirective\n ];\n }\n}\nBodyModule.decorators = [\n { type: NgModule, args: [{\n declarations: [exported$1],\n exports: [exported$1],\n imports: [...importedModules$3]\n },] },\n];\n\n/**\n * @hidden\n */\nclass FooterComponent {\n constructor() {\n this.columns = [];\n this.groups = [];\n this.lockedColumnsCount = 0;\n }\n get footerClass() {\n return !this.scrollable;\n }\n get columnsToRender() {\n return columnsToRender(this.columns || []);\n }\n}\nFooterComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoGridFooter]',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n `\n },] },\n];\nFooterComponent.propDecorators = {\n columns: [{ type: Input }],\n groups: [{ type: Input }],\n detailTemplate: [{ type: Input }],\n scrollable: [{ type: Input }],\n lockedColumnsCount: [{ type: Input }],\n footerClass: [{ type: HostBinding, args: ['class.k-grid-footer',] }]\n};\n\nconst exportedModules$3 = [\n FooterComponent\n];\nconst importedModules$4 = [\n CommonModule,\n SharedModule\n];\n/**\n * @hidden\n */\nclass FooterModule {\n static exports() {\n return [];\n }\n}\nFooterModule.decorators = [\n { type: NgModule, args: [{\n declarations: [exportedModules$3],\n exports: [exportedModules$3],\n imports: [...importedModules$4]\n },] },\n];\n\n/**\n * @hidden\n */\nclass ToolbarComponent {\n constructor(grid) {\n this.grid = grid;\n this.context = {};\n }\n get classNames() {\n return 'k-header k-grid-toolbar';\n }\n set position(value) {\n this.context.position = value;\n }\n get toolbarTemplateRef() {\n return this.grid.toolbarTemplate ? this.grid.toolbarTemplate.templateRef : undefined;\n }\n}\nToolbarComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-toolbar',\n template: `\n \n \n `\n },] },\n];\n/** @nocollapse */\nToolbarComponent.ctorParameters = () => [\n { type: GridComponent }\n];\nToolbarComponent.propDecorators = {\n classNames: [{ type: HostBinding, args: ['class',] }],\n position: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass LocalEditService {\n constructor(grid, localDataChangesService) {\n this.grid = grid;\n this.localDataChangesService = localDataChangesService;\n }\n create(item) {\n if (this.hasLocalData && this.grid.skip) {\n this.localDataChangesService.data.splice(this.grid.skip, 0, item);\n }\n else {\n this.data.unshift(item);\n }\n this.dataChanged();\n }\n update(_item) { } // tslint:disable-line:no-empty\n remove(item) {\n const data = this.data;\n for (let idx = 0; idx < data.length; idx++) {\n if (item === data[idx]) {\n data.splice(idx, 1);\n this.dataChanged({ action: 'remove', item: item });\n break;\n }\n }\n }\n assignValues(target, source) {\n Object.assign(target, source);\n }\n dataChanged(args = {}) {\n if (this.hasLocalData) {\n this.localDataChangesService.changes.emit(args);\n }\n }\n get hasLocalData() {\n return Array.isArray(this.localDataChangesService.data);\n }\n get data() {\n if (this.hasLocalData) {\n return this.localDataChangesService.data;\n }\n const data = this.grid.data;\n if (Array.isArray(data)) {\n return data;\n }\n if (isDevMode()) {\n throw new Error('The default edit service of the editing directives works only when binding to plain array.' +\n 'Please provide an editService.');\n }\n return [];\n }\n}\n\n/**\n * @hidden\n */\nclass EditingDirectiveBase {\n constructor(grid, localDataChangesService) {\n this.grid = grid;\n this.localDataChangesService = localDataChangesService;\n this.defaultEditService = this.createDefaultService();\n }\n // Consider adding support for the dependency injection of the service to allow for specifying a generic service without code.\n // The Input should still be kept.\n /**\n * The edit service that will handle the operations.\n */\n set editService(value) {\n this.userEditService = value;\n }\n get editService() {\n return this.userEditService || this.defaultEditService;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.subscriptions = this.grid.add.subscribe(this.addHandler.bind(this));\n this.subscriptions.add(this.grid.remove.subscribe(this.removeHandler.bind(this)));\n this.subscriptions.add(this.grid.cancel.subscribe(this.cancelHandler.bind(this)));\n this.subscriptions.add(this.grid.save.subscribe(this.saveHandler.bind(this)));\n this.subscriptions.add(this.grid.dataStateChange.subscribe(this.onStateChange.bind(this)));\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n createDefaultService() {\n return new LocalEditService(this.grid, this.localDataChangesService);\n }\n addHandler() {\n this.grid.addRow(this.createModel({ isNew: true }));\n }\n saveHandler(args) {\n const item = this.saveModel(args);\n if (item) {\n if (args.isNew) {\n this.editService.create(item);\n }\n else {\n this.editService.update(item);\n }\n }\n this.grid.closeRow(args.rowIndex);\n }\n cancelHandler({ rowIndex }) {\n this.closeEditor(rowIndex);\n }\n removeHandler({ dataItem }) {\n const removeItem = (shouldRemove) => {\n if (shouldRemove) {\n this.editService.remove(dataItem);\n }\n };\n if (this.removeConfirmation) {\n const result = this.removeConfirmation(dataItem);\n if (result instanceof Promise) {\n result.then(removeItem);\n }\n else if (result instanceof Observable) {\n result.pipe(take(1)).subscribe(removeItem);\n }\n else {\n removeItem(result);\n }\n }\n else {\n removeItem(true);\n }\n }\n onStateChange() {\n this.closeEditor();\n }\n closeEditor(rowIndex) {\n this.grid.closeRow(rowIndex);\n }\n}\nEditingDirectiveBase.propDecorators = {\n editService: [{ type: Input }],\n removeConfirmation: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass LocalRowEditService extends LocalEditService {\n update(_item) {\n this.dataChanged();\n }\n}\n\n/**\n * @hidden\n */\nclass RowEditingDirectiveBase extends EditingDirectiveBase {\n /**\n * @hidden\n */\n ngOnInit() {\n super.ngOnInit();\n this.subscriptions\n .add(this.grid.edit.subscribe(this.editHandler.bind(this)));\n }\n createDefaultService() {\n return new LocalRowEditService(this.grid, this.localDataChangesService);\n }\n addHandler() {\n this.closeEditor();\n super.addHandler();\n }\n editHandler(args) {\n this.closeEditor();\n this.rowIndex = args.rowIndex;\n this.grid.editRow(args.rowIndex, this.createModel(args));\n }\n saveHandler(args) {\n super.saveHandler(args);\n this.clean();\n }\n closeEditor(rowIndex = this.rowIndex) {\n super.closeEditor(rowIndex);\n this.clean();\n }\n clean() {\n delete this.rowIndex;\n }\n}\n\n/**\n * A directive which encapsulates the editing operations of the Grid when using\n * the Template-Driven Angular Forms ([see example]({% slug editing_directives_grid %}#toc-the-template-directive)).\n */\nclass TemplateEditingDirective extends RowEditingDirectiveBase {\n constructor(grid, localDataChangesService) {\n super(grid, localDataChangesService);\n this.grid = grid;\n this.localDataChangesService = localDataChangesService;\n }\n editHandler(args) {\n super.editHandler(args);\n this.dataItem = args.dataItem;\n this.originalValues = {};\n this.editService.assignValues(this.originalValues, this.dataItem);\n }\n closeEditor(rowIndex) {\n if (this.dataItem) {\n this.editService.assignValues(this.dataItem, this.originalValues);\n }\n super.closeEditor(rowIndex);\n }\n createModel(args) {\n if (args.isNew) {\n return this.createNewItem();\n }\n }\n saveModel(args) {\n return args.dataItem;\n }\n clean() {\n super.clean();\n delete this.dataItem;\n }\n}\nTemplateEditingDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridTemplateEditing]'\n },] },\n];\n/** @nocollapse */\nTemplateEditingDirective.ctorParameters = () => [\n { type: GridComponent },\n { type: LocalDataChangesService }\n];\nTemplateEditingDirective.propDecorators = {\n createNewItem: [{ type: Input, args: ['kendoGridTemplateEditing',] }]\n};\n\n/**\n * @hidden\n */\nconst markAllAsTouched = (control) => {\n control.markAsTouched();\n if (control.hasOwnProperty('controls')) {\n let controls = control.controls;\n for (let inner in controls) {\n if (controls.hasOwnProperty(inner)) {\n markAllAsTouched(controls[inner]);\n }\n }\n }\n};\n\n/**\n * A directive which encapsulates the editing operations of the Grid when using the\n * Reactive Forms ([see example]({% slug editing_directives_grid %}#toc-the-reactive-directive)).\n */\nclass ReactiveEditingDirective extends RowEditingDirectiveBase {\n constructor(grid, localDataChangesService) {\n super(grid, localDataChangesService);\n this.grid = grid;\n this.localDataChangesService = localDataChangesService;\n }\n createModel(args) {\n return this.createFormGroup(args);\n }\n saveModel({ dataItem, formGroup, isNew }) {\n if (!formGroup.dirty && !isNew) {\n return;\n }\n if (formGroup.valid) {\n this.editService.assignValues(dataItem, formGroup.value);\n return dataItem;\n }\n markAllAsTouched(formGroup);\n }\n}\nReactiveEditingDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridReactiveEditing]'\n },] },\n];\n/** @nocollapse */\nReactiveEditingDirective.ctorParameters = () => [\n { type: GridComponent },\n { type: LocalDataChangesService }\n];\nReactiveEditingDirective.propDecorators = {\n createFormGroup: [{ type: Input, args: ['kendoGridReactiveEditing',] }]\n};\n\n/**\n * A directive which encapsulates the editing operations of the Grid when using the in-cell\n * editing with Reactive Forms ([see example]({% slug editing_directives_grid %}#toc-the-incell-directive)).\n */\nclass InCellEditingDirective extends EditingDirectiveBase {\n constructor(grid, localDataChangesService) {\n super(grid, localDataChangesService);\n this.grid = grid;\n this.localDataChangesService = localDataChangesService;\n }\n // Need mixin\n createModel(args) {\n return this.createFormGroup(args);\n }\n saveModel({ dataItem, formGroup, isNew }) {\n if (!formGroup.dirty && !isNew) {\n return;\n }\n if (formGroup.valid) {\n this.editService.assignValues(dataItem, formGroup.value);\n return dataItem;\n }\n markAllAsTouched(formGroup);\n }\n /**\n * @hidden\n */\n ngOnInit() {\n super.ngOnInit();\n this.subscriptions.add(this.grid.cellClick.subscribe(this.cellClickHandler.bind(this)));\n this.subscriptions.add(this.grid.cellClose.subscribe(this.cellCloseHandler.bind(this)));\n }\n removeHandler(args) {\n super.removeHandler(args);\n this.grid.cancelCell();\n }\n cellClickHandler(args) {\n if (!args.isEdited && args.type !== 'contextmenu') {\n this.grid.editCell(args.rowIndex, args.columnIndex, this.createFormGroup(args));\n }\n }\n cellCloseHandler(args) {\n const { formGroup, dataItem } = args;\n if (!formGroup.valid) {\n args.preventDefault();\n }\n else if (formGroup.dirty) {\n this.editService.assignValues(dataItem, formGroup.value);\n this.editService.update(dataItem);\n }\n }\n}\nInCellEditingDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridInCellEditing]'\n },] },\n];\n/** @nocollapse */\nInCellEditingDirective.ctorParameters = () => [\n { type: GridComponent },\n { type: LocalDataChangesService }\n];\nInCellEditingDirective.propDecorators = {\n createFormGroup: [{ type: Input, args: ['kendoGridInCellEditing',] }]\n};\n\nconst hasGroups = (items) => items && items.length && items[0].field && items[0].items;\nconst groupDescriptorsPresent = (descriptors) => isPresent(descriptors) && descriptors.length > 0;\nconst processGroups = (data, state$$1) => process(data, state$$1).data;\nconst removeParentDescriptors = (parents, owner) => g => g.field !== owner.field && !parents.some(y => y.field === g.field);\nconst findGroup = (groupIndex, groups) => {\n const parents = [];\n return {\n group: groupIndex.split(\"_\").reduce((acc, x) => {\n const idx = parseInt(x, 10);\n if (acc.items) {\n parents.push(acc);\n return acc.items[idx];\n }\n return isArray(acc) ? acc[idx] : acc;\n }, groups),\n parents\n };\n};\nconst findChildren = (data, parents) => {\n const filters = parents.map(p => ({ field: p.field, operator: \"eq\", value: p.value }));\n return filterBy(data, {\n filters: filters,\n logic: \"and\"\n });\n};\n/**\n * @hidden\n */\nconst count = (groups, includeFooters = false) => (groups.reduce((acc, group) => {\n if (!group.skipHeader) {\n acc++;\n }\n if (group.items) {\n const children = count(group.items, includeFooters);\n if (includeFooters && children && !group.hideFooter) {\n acc++;\n }\n acc += children;\n }\n return acc;\n}, 0) // tslint:disable-line:align\n);\n/**\n * @hidden\n */\nconst slice = (groups, skip, take$$1, includeFooters = false) => {\n if (!isPresent(take$$1)) {\n return groups;\n }\n const result = [];\n for (let idx = 0, length = groups.length; idx < length; idx++) {\n if (take$$1 <= 0) {\n break;\n }\n const group = groups[idx];\n const groupItems = group.items;\n let itemCount = count(groupItems, includeFooters);\n if (includeFooters && groupItems.length) {\n itemCount++;\n }\n const skipHeader = skip > 0;\n if (skip) {\n skip--;\n if (itemCount && skip >= itemCount) {\n skip -= itemCount;\n continue;\n }\n }\n if (!skipHeader || itemCount) {\n const items = [];\n let hideFooter = true;\n if (!skipHeader) {\n take$$1--;\n }\n if (take$$1) {\n if (hasGroups(groupItems)) {\n const children = slice(groupItems, skip, take$$1, includeFooters);\n items.push(...children);\n take$$1 -= count(children, includeFooters);\n }\n else {\n items.push(...groupItems.slice(skip, Math.min(skip + take$$1, groupItems.length)));\n take$$1 -= items.length;\n }\n if (take$$1 && includeFooters) {\n hideFooter = false;\n take$$1--;\n }\n skip = 0;\n }\n result.push({\n aggregates: group.aggregates,\n field: group.field,\n hideFooter,\n items,\n offset: idx,\n skipHeader,\n value: group.value\n });\n }\n }\n return result;\n};\nconst skippedHeaders = (groupItem) => {\n let total = 0;\n while (groupItem) {\n if (groupItem.skipHeader) {\n total++;\n }\n groupItem = groupItem.items && groupItem.items[0] || null;\n }\n return total;\n};\n/**\n * A directive which encapsulates the in-memory handling of grouping with virtual scrolling.\n */\nclass GroupBindingDirective extends DataBindingDirective {\n constructor(grid, changeDetector, localDataChangesService) {\n super(grid, changeDetector, localDataChangesService);\n }\n /**\n * The array of data which will be used to populate the Grid.\n */\n set kendoGridGroupBinding(value) {\n this.groups = null;\n this.grid.resetGroupsState();\n this.data = value;\n }\n /**\n * @hidden\n */\n set data(value) {\n this.originalData = value || [];\n this.dataChanged = true;\n }\n /**\n * Defines the descriptors by which the data will be sorted.\n */\n set sort(value) {\n const clear = this.state.sort !== value;\n this.grid.sort = this.state.sort = value;\n if (clear) {\n this.groups = null;\n this.grid.resetGroupsState();\n }\n }\n /**\n * Defines the descriptor by which the data will be filtered.\n */\n set filter(value) {\n const clear = diffFilters(this.state.filter, value);\n if (clear) {\n this.state.filter = value;\n this.grid.filter = cloneFilters(value);\n this.groups = null;\n this.grid.resetGroupsState();\n }\n }\n /**\n * Defines the descriptors by which the data will be grouped.\n */\n set group(value) {\n // don't clear if no groups are present in previous and current value\n const groupsPresent = groupDescriptorsPresent(this.state.group) || groupDescriptorsPresent(value);\n const clear = this.state.group !== value && groupsPresent;\n this.grid.group = this.state.group = value;\n if (clear) {\n this.groups = null;\n this.grid.resetGroupsState();\n this.skip = 0;\n }\n }\n /**\n * @hidden\n */\n ngOnInit() {\n super.ngOnInit();\n this.grid.groupExpand.subscribe(this.groupExpand.bind(this));\n this.grid.groupCollapse.subscribe(this.groupCollapse.bind(this));\n }\n groupExpand({ groupIndex }) {\n this.grid.expandGroupChildren(groupIndex);\n const { group, parents } = findGroup(groupIndex, this.groups);\n if (!group.items.length) {\n const descriptors = this.state.group.filter(removeParentDescriptors(parents, group));\n const children = findChildren(this.originalData, parents.concat(group));\n group.items = processGroups(children, {\n filter: this.state.filter,\n group: descriptors,\n sort: this.state.sort\n });\n }\n this.grid.data = this.dataResult(this.state.skip, this.state.take);\n }\n groupCollapse({ groupIndex }) {\n const { group } = findGroup(groupIndex, this.groups);\n if (group) {\n group.items = [];\n }\n this.grid.data = this.dataResult(this.state.skip, this.state.take);\n }\n process(state$$1) {\n if (state$$1.group && state$$1.group.length) {\n const groups = this.processGroups(state$$1);\n this.grid.skip -= skippedHeaders(groups.data[0]);\n return groups;\n }\n else {\n this.groups = null;\n }\n return super.process(state$$1);\n }\n processGroups(state$$1) {\n if (!this.groups || !this.groups.length) {\n this.groups = processGroups(this.originalData, {\n filter: state$$1.filter,\n group: state$$1.group,\n sort: state$$1.sort\n });\n }\n return this.dataResult(state$$1.skip, state$$1.take);\n }\n dataResult(skip, take$$1) {\n const includeFooters = this.grid.showGroupFooters;\n return {\n data: slice(this.groups, skip, take$$1, includeFooters),\n total: count(this.groups, includeFooters)\n };\n }\n applyState({ skip, take: take$$1, sort, group, filter: filter$$1 }) {\n this.skip = skip;\n this.state.take = take$$1;\n // this.pageSize = take; // do need to update take as the process with slice correctly\n this.sort = sort;\n this.group = group;\n this.filter = filter$$1;\n }\n}\nGroupBindingDirective.decorators = [\n { type: Directive, args: [{ selector: '[kendoGridGroupBinding]' },] },\n];\n/** @nocollapse */\nGroupBindingDirective.ctorParameters = () => [\n { type: GridComponent },\n { type: ChangeDetectorRef },\n { type: LocalDataChangesService }\n];\nGroupBindingDirective.propDecorators = {\n kendoGridGroupBinding: [{ type: Input, args: [\"kendoGridGroupBinding\",] }],\n sort: [{ type: Input }],\n filter: [{ type: Input }],\n group: [{ type: Input }]\n};\n\nconst exportedModules$4 = [\n GridComponent,\n ToolbarTemplateDirective,\n ToolbarComponent,\n DataBindingDirective,\n SelectionDirective,\n CustomMessagesComponent,\n GroupBindingDirective,\n TemplateEditingDirective,\n ReactiveEditingDirective,\n InCellEditingDirective,\n ExpandDetailsDirective,\n ...GroupModule.exports(),\n ...SharedModule.exports(),\n ...BodyModule.exports(),\n ...HeaderModule.exports(),\n ...FooterModule.exports(),\n ...PagerModule.exports(),\n ...RowFilterModule.exports(),\n ...FilterMenuModule.exports(),\n ...ColumnMenuModule.exports()\n];\nconst declarations = [\n GridComponent,\n ListComponent,\n ToolbarComponent,\n LocalizedMessagesDirective,\n CustomMessagesComponent,\n DataBindingDirective,\n ToolbarTemplateDirective,\n SelectionDirective,\n TemplateEditingDirective,\n ReactiveEditingDirective,\n InCellEditingDirective,\n ExpandDetailsDirective,\n GroupBindingDirective\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Grid component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Grid module\n * import { GridModule } from '@progress/kendo-angular-grid';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, GridModule], // import Grid module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass GridModule {\n}\nGridModule.decorators = [\n { type: NgModule, args: [{\n declarations: [declarations],\n exports: [exportedModules$4],\n imports: [\n CommonModule,\n GroupModule,\n SharedModule,\n BodyModule,\n HeaderModule,\n FooterModule,\n PagerModule,\n RowFilterModule,\n FilterMenuModule,\n ResizeSensorModule,\n ColumnMenuModule\n ]\n },] },\n];\n\nclass PDFMarginComponent$1 extends PDFMarginComponent {\n}\nPDFMarginComponent$1.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-pdf-margin',\n template: ''\n },] },\n];\n\n/**\n * Represents the PDF page template of the Grid that helps to customize the PDF pages. To define a page template,\n * nest an `` tag with the `kendoGridPDFTemplate` directive inside ``.\n *\n * The template context provides the following fields:\n * - `pageNumber`—Defines PDF page number.\n * - `totalPages`—Defines the total number of PDF pages.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n *
\n * Page {{ pageNum }} of {{ totalPages }}\n *
\n *
\n *
\n *
\n * `\n * })\n *\n * class AppComponent {\n * public gridData = [{\n * \"ProductID\": 1,\n * \"ProductName\": \"Chai\",\n * \"UnitPrice\": 18.0000\n * }, {\n * \"ProductID\": 2,\n * \"ProductName\": \"Chang\",\n * \"UnitPrice\": 19.0000\n * }\n * ];\n * }\n *\n * ```\n */\nclass PDFTemplateDirective$1 extends PDFTemplateDirective {\n constructor(templateRef) {\n super(templateRef);\n }\n}\nPDFTemplateDirective$1.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridPDFTemplate]'\n },] },\n];\n/** @nocollapse */\nPDFTemplateDirective$1.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * @hidden\n */\nconst HEADER_CLASS = 'k-grid-header';\n/**\n * @hidden\n */\nconst FOOTER_CLASS = 'k-grid-footer';\nconst GRID_LIST = 'KENDO-GRID-LIST';\nconst TABLE = 'TABLE';\nconst matchesList = matchesNodeName(GRID_LIST);\nconst matchesTable = matchesNodeName(TABLE);\nconst suffix = (locked) => locked ? 'locked' : 'wrap';\n/**\n * @hidden\n */\nclass GridQuery {\n constructor(element) {\n this.element = element;\n this.list = findElement(element, matchesList);\n }\n content(locked) {\n return findElement(this.list, matchesClasses(`k-grid-content${locked ? '-locked' : ''}`));\n }\n header(locked) {\n this.headerWrap = this.headerWrap || findElement(this.element, matchesClasses(HEADER_CLASS));\n return findElement(this.headerWrap, matchesClasses(`${HEADER_CLASS}-${suffix(locked)}`));\n }\n footer(locked) {\n this.footerWrap = this.footerWrap || findElement(this.element, matchesClasses(FOOTER_CLASS));\n return findElement(this.footerWrap, matchesClasses(`${FOOTER_CLASS}-${suffix(locked)}`));\n }\n table() {\n return findElement(this.element, matchesTable);\n }\n}\n\nconst FIRST_CLASS = 'k-first';\nconst INPUTS = ['input', 'select', 'textarea', 'option'];\n/** @hidden */\nconst cloneNode = (node) => {\n const clone = node.cloneNode(false);\n if (node._kendoExportVisual) {\n clone._kendoExportVisual = node._kendoExportVisual;\n }\n if (INPUTS.indexOf(String(node.nodeName).toLowerCase()) >= 0) {\n clone.removeAttribute(\"id\");\n clone.removeAttribute(\"name\");\n clone.value = node.value;\n clone.checked = node.checked;\n clone.selected = node.selected;\n }\n let child = node.firstChild;\n while (child) {\n clone.appendChild(cloneNode(child));\n child = child.nextSibling;\n }\n return clone;\n};\nconst appendNodes = (element, nodes) => {\n const length = nodes.length;\n for (let idx = 0; idx < length; idx++) {\n element.appendChild(cloneNode(nodes[idx]));\n }\n};\nconst wrapTable = (table) => {\n const wrapper = document.createElement('div');\n wrapper.className = 'k-widget k-grid';\n wrapper.appendChild(table);\n return wrapper;\n};\nconst createTableElement = (sources) => {\n const sourceCount = sources.length;\n const element = cloneNode(sources[0]);\n const rowsCount = element.rows.length;\n if (sourceCount > 1) {\n for (let rowIdx = 0; rowIdx < rowsCount; rowIdx++) {\n for (let sourceIdx = 1; sourceIdx < sourceCount; sourceIdx++) {\n appendNodes(element.rows[rowIdx], sources[sourceIdx].rows[rowIdx].cells);\n }\n }\n }\n return element;\n};\nconst setFirstCellClass = (header, headers) => {\n if (headers.length > 1 && header.rows.length > 1) {\n for (let idx = 1; idx < header.rows.length; idx++) {\n const firstCellIndex = headers[0].rows[idx].cells.length;\n const cell = header.rows[idx].cells[firstCellIndex];\n if (String(cell.className).indexOf(FIRST_CLASS) === -1) {\n cell.className += ` ${FIRST_CLASS}`;\n }\n }\n }\n};\nconst createTable = (colGroups, headers, bodies, footers) => {\n const table = document.createElement('table');\n const colGroup = colGroups[0].cloneNode(true);\n for (let idx = 1; idx < colGroups.length; idx++) {\n appendNodes(colGroup, colGroups[idx].querySelectorAll('col'));\n }\n const header = createTableElement(headers);\n const body = createTableElement(bodies);\n header.className = HEADER_CLASS;\n setFirstCellClass(header, headers);\n table.appendChild(colGroup);\n table.appendChild(header);\n table.appendChild(body);\n if (footers.length) {\n const footer = createTableElement(footers);\n footer.className = FOOTER_CLASS;\n table.appendChild(footer);\n }\n return wrapTable(table);\n};\n/**\n * @hidden\n */\nconst exportElement = (wrapper) => {\n const query = new GridQuery(wrapper);\n const content = query.content();\n let result;\n if (content) {\n const colGroups = [content.querySelector('colgroup')];\n const headers = [query.header().querySelector('thead')];\n const bodies = [content.querySelector('tbody')];\n const footer = query.footer();\n const footers = [];\n if (footer) {\n footers.push(footer.querySelector('tfoot'));\n }\n const lockedContent = query.content(true);\n if (lockedContent) {\n colGroups.unshift(lockedContent.querySelector('colgroup'));\n headers.unshift(query.header(true).querySelector('thead'));\n bodies.unshift(lockedContent.querySelector('tbody'));\n if (footer) {\n footers.unshift(query.footer(true).querySelector('tfoot'));\n }\n }\n result = createTable(colGroups, headers, bodies, footers);\n }\n else {\n result = wrapTable(query.table().cloneNode(true));\n }\n return result;\n};\n\nconst createElement = (tagName, className) => {\n const element = document.createElement(tagName);\n if (className) {\n element.className = className;\n }\n return element;\n};\nconst createDiv = (className) => {\n return createElement('div', className);\n};\n/**\n * Configures the settings for the export of Grid in PDF ([see example]({% slug pdfexport_grid %})).\n */\nclass PDFComponent extends PDFExportComponent {\n constructor(pdfService, suspendService, ngZone, element) {\n super(element);\n this.pdfService = pdfService;\n this.suspendService = suspendService;\n this.ngZone = ngZone;\n this.columns = new QueryList();\n this.saveSubscription = pdfService.savePDF.subscribe(this.savePDF.bind(this));\n this.drawSubscription = pdfService.drawPDF.subscribe(this.drawPDF.bind(this));\n this.reset = this.reset.bind(this);\n this.draw = this.draw.bind(this);\n }\n ngOnDestroy() {\n this.saveSubscription.unsubscribe();\n this.drawSubscription.unsubscribe();\n this.reset();\n }\n savePDF(component) {\n this.createPDF(component, this.draw);\n }\n drawPDF({ component, promise }) {\n this.createPDF(component, () => {\n this.createExportGroup(promise);\n });\n }\n createPDF(component, callback) {\n const pageSize = component.pageSize;\n const total = component.view.total;\n const columns = this.columns.toArray();\n if (columns.length) {\n this.originalColumns = component.columns.toArray();\n }\n this.component = component;\n this.suspendService.scroll = true;\n this.pdfService.exporting = true;\n this.initProgress();\n this.renderAllPages = this.allPages && pageSize < total;\n if (this.renderAllPages) {\n this.skip = component.skip;\n this.pageSize = pageSize;\n this.changePage(0, total, callback, columns);\n }\n else if (columns.length || component.virtualColumns) {\n this.changeColumns(columns, callback);\n }\n else {\n callback();\n }\n }\n initProgress() {\n const wrapperElement = this.component.wrapper.nativeElement;\n const progress = this.progress = createDiv('k-loading-pdf-mask');\n const overlay = cloneNode(wrapperElement);\n progress.appendChild(overlay);\n progress.appendChild(createDiv('k-loading-color'));\n progress.appendChild(createElement('span', 'k-i-loading k-icon'));\n this.originalHeight = wrapperElement.style.height;\n this.originalOverflow = wrapperElement.style.overflow;\n wrapperElement.style.height = wrapperElement.offsetHeight + 'px';\n wrapperElement.style.overflow = 'hidden';\n wrapperElement.appendChild(progress);\n this.applyScroll(overlay);\n }\n applyScroll(overlay) {\n const query = new GridQuery(this.component.wrapper.nativeElement);\n const content = query.content();\n if (content) {\n const overlayQuery = new GridQuery(overlay);\n const overlayContent = overlayQuery.content();\n overlayContent.scrollTop = content.scrollTop;\n overlayContent.scrollLeft = content.scrollLeft;\n overlayQuery.header().scrollLeft = query.header().scrollLeft;\n const footer = query.footer();\n if (footer) {\n overlayQuery.footer().scrollLeft = footer.scrollLeft;\n }\n const lockedContent = query.content(true);\n if (lockedContent) {\n const overlayLockedContent = overlayQuery.content(true);\n overlayLockedContent.scrollTop = lockedContent.scrollTop;\n overlayLockedContent.scrollLeft = lockedContent.scrollLeft;\n }\n }\n }\n draw() {\n this.createExportElement((element) => {\n this.save(element, this.fileName);\n });\n }\n createExportGroup(promise) {\n this.createExportElement((element) => {\n this.exportElement(element).then(group => promise.resolve(group));\n });\n }\n createExportElement(callback) {\n this.ngZone.runOutsideAngular(() => {\n const container = this.container = createDiv('k-grid-pdf-export-element');\n const element = exportElement(this.component.wrapper.nativeElement);\n container.appendChild(element);\n document.body.appendChild(container);\n callback(element);\n });\n }\n drawOptions() {\n const options = super.drawOptions();\n options._destructive = true;\n return options;\n }\n cleanup() {\n super.cleanup();\n this.pdfService.exporting = false;\n if (this.component) {\n const originalColumns = this.originalColumns;\n delete this.originalColumns;\n if (this.renderAllPages) {\n this.changePage(this.skip, this.pageSize, this.reset, originalColumns);\n }\n else if (originalColumns || this.component.virtualColumns) {\n this.changeColumns(originalColumns, this.reset);\n }\n else {\n this.reset();\n }\n }\n else {\n this.reset();\n }\n this.removeContainer();\n }\n removeContainer() {\n if (this.container) {\n document.body.removeChild(this.container);\n delete this.container;\n }\n }\n changePage(skip, _take, callback, columns) {\n this.ngZone.run(() => {\n this.pdfService.dataChanged.pipe(take(1)).subscribe(() => {\n if ((columns && columns.length) || this.component.virtualColumns) {\n this.changeColumns(columns, callback);\n }\n else {\n this.onStable(callback);\n }\n });\n this.component.notifyPageChange('pdf', { skip: skip, take: _take });\n });\n }\n changeColumns(columns, callback) {\n this.ngZone.run(() => {\n this.onStable(callback);\n if (columns && columns.length) {\n this.component.columns.reset(columns);\n }\n });\n }\n reset() {\n this.suspendService.scroll = false;\n this.renderAllPages = false;\n if (!this.component) {\n return;\n }\n const wrapperElement = this.component.wrapper.nativeElement;\n wrapperElement.removeChild(this.progress);\n wrapperElement.style.height = this.originalHeight;\n wrapperElement.style.overflow = this.originalOverflow;\n delete this.progress;\n delete this.component;\n }\n onStable(callback) {\n // not sure if it is an actual scenario. occurs in the tests.\n // onStable is triggered in the same pass without the change detection.\n // thus, the callback is called before the changes are applied without the timeout.\n setTimeout(() => {\n this.ngZone.onStable.asObservable().pipe(take(1)).subscribe(callback);\n }, 0); // tslint:disable-line: align\n }\n}\nPDFComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-pdf',\n template: ''\n },] },\n];\n/** @nocollapse */\nPDFComponent.ctorParameters = () => [\n { type: PDFService },\n { type: SuspendService },\n { type: NgZone },\n { type: ElementRef }\n];\nPDFComponent.propDecorators = {\n allPages: [{ type: Input }],\n columns: [{ type: ContentChildren, args: [ColumnBase$1,] }],\n marginComponent: [{ type: ContentChild, args: [PDFMarginComponent$1,] }],\n pageTemplateDirective: [{ type: ContentChild, args: [PDFTemplateDirective$1,] }]\n};\n\n/**\n * Represents the `export-to-PDF` command of the Grid.\n * You can apply this directive to any `button` element inside a\n * [`ToolbarTemplate`]({% slug api_grid_commandcolumncomponent %}).\n * When the user clicks a button that is associated with the directive, the\n * [`pdfExport`]({% slug api_grid_gridcomponent %}#toc-pdfexport) event\n * fires ([see example]({% slug pdfexport_grid %})).\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nclass PDFCommandDirective extends Button {\n constructor(pdfService, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.pdfService = pdfService;\n this.ngZone = ngZone;\n }\n /**\n * @hidden\n */\n onClick(e) {\n e.preventDefault();\n this.pdfService.exportClick.emit();\n }\n /**\n * @hidden\n */\n get pdfClass() {\n return true;\n }\n}\nPDFCommandDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridPDFCommand]'\n },] },\n];\n/** @nocollapse */\nPDFCommandDirective.ctorParameters = () => [\n { type: PDFService },\n { type: ElementRef },\n { type: Renderer2 },\n { type: LocalizationService },\n { type: NgZone }\n];\nPDFCommandDirective.propDecorators = {\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }],\n pdfClass: [{ type: HostBinding, args: ['class.k-grid-pdf',] }]\n};\n\nconst exportedModules$5 = [\n PDFComponent,\n PDFMarginComponent$1,\n PDFCommandDirective,\n PDFTemplateDirective$1\n];\nconst declarations$1 = [\n PDFComponent,\n PDFMarginComponent$1,\n PDFCommandDirective,\n PDFTemplateDirective$1\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Grid PDF component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Grid and PDF modules\n * import { GridModule, PDFModule } from '@progress/kendo-angular-grid';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, GridModule, PDFModule], // import Grid and PDF modules\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass PDFModule {\n}\nPDFModule.decorators = [\n { type: NgModule, args: [{\n declarations: [declarations$1],\n exports: [exportedModules$5]\n },] },\n];\n\n/**\n * Arguments for the `excelExport` event.\n */\nclass ExcelExportEvent extends PreventableEvent {\n constructor(workbook) {\n super();\n this.workbook = workbook;\n }\n}\n\n/* tslint:disable object-literal-sort-keys */\nconst fetchComponentData = (component) => {\n return {\n data: component.view.map(item => item),\n group: component.group\n };\n};\nconst toExcelColumn = (column) => {\n return {\n title: column.title,\n field: column.field,\n locked: Boolean(column.locked),\n width: column.width,\n level: column.level,\n hidden: !column.isVisible,\n groupHeaderTemplate: column.groupHeaderTemplate,\n groupHeaderColumnTemplate: column.groupHeaderColumnTemplate,\n groupFooterTemplate: column.groupFooterTemplate,\n footerTemplate: column.footerTemplate\n };\n};\nconst toExcelColumns = (columns) => {\n const result = [];\n sortColumns(columns)\n .forEach((column) => {\n if (column.isSpanColumn) {\n result.push(...toExcelColumns(column.childrenArray));\n }\n else {\n const excelColumn = toExcelColumn(column);\n if (column.isColumnGroup) {\n excelColumn.children = [excelColumn].concat(toExcelColumns(column.childrenArray));\n }\n result.push(excelColumn);\n }\n });\n return result;\n};\nconst componentColumns = (component) => {\n const columns = toExcelColumns(component.columns.toArray());\n return orderBy(columns, [{ field: 'locked', dir: 'desc' }]);\n};\n/**\n * Configures the settings for the export of Grid in Excel ([see example]({% slug excelexport_grid %})).\n */\nclass ExcelComponent {\n constructor(excelService, localization, zone) {\n this.localization = localization;\n this.zone = zone;\n /**\n * Specifies the file name of the exported Excel file.\n * @default \"Export.xlsx\"\n */\n this.fileName = 'Export.xlsx';\n /**\n * @hidden\n */\n this.columns = new QueryList();\n this.saveSubscription = excelService.saveToExcel.subscribe(this.save.bind(this));\n }\n ngOnDestroy() {\n this.saveSubscription.unsubscribe();\n if (this.dataSubscription) {\n this.dataSubscription.unsubscribe();\n }\n }\n save(component) {\n const data = (this.fetchData || fetchComponentData)(component);\n const exportData = (result) => {\n delete this.dataSubscription;\n this.exportData(component, result);\n };\n if (data instanceof Promise) {\n data.then(exportData);\n }\n else if (data instanceof Observable) {\n this.dataSubscription = data.pipe(take(1)).subscribe(exportData);\n }\n else {\n exportData(data);\n }\n }\n exportData(component, result) {\n const options = workbookOptions({\n columns: this.columns.length ? this.columns : componentColumns(component),\n data: result.data,\n group: result.group,\n filterable: this.filterable,\n creator: this.creator,\n date: this.date,\n paddingCellOptions: this.paddingCellOptions,\n headerPaddingCellOptions: this.headerPaddingCellOptions,\n rtl: this.localization.rtl,\n collapsible: this.collapsible\n });\n const args = new ExcelExportEvent(options);\n component.excelExport.emit(args);\n if (!args.isDefaultPrevented()) {\n this.zone.runOutsideAngular(() => this.saveFile(options));\n }\n }\n saveFile(options) {\n toDataURL(options).then((dataURL) => {\n saveAs(dataURL, this.fileName, {\n forceProxy: this.forceProxy,\n proxyURL: this.proxyURL\n });\n });\n }\n}\nExcelComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-grid-excel',\n template: ``\n },] },\n];\n/** @nocollapse */\nExcelComponent.ctorParameters = () => [\n { type: ExcelService },\n { type: LocalizationService },\n { type: NgZone }\n];\nExcelComponent.propDecorators = {\n fileName: [{ type: Input }],\n filterable: [{ type: Input }],\n creator: [{ type: Input }],\n date: [{ type: Input }],\n forceProxy: [{ type: Input }],\n proxyURL: [{ type: Input }],\n fetchData: [{ type: Input }],\n paddingCellOptions: [{ type: Input }],\n headerPaddingCellOptions: [{ type: Input }],\n collapsible: [{ type: Input }],\n columns: [{ type: ContentChildren, args: [ColumnBase, { descendants: true },] }]\n};\n\n/**\n * Represents the `export-to-Excel` command of the Grid. You can apply this\n * directive to any `button` element inside a\n * [`ToolbarTemplate`]({% slug api_grid_commandcolumncomponent %}).\n * When the user clicks a button associated with the directive, the\n * [`excelExport`]({% slug api_grid_gridcomponent %}#toc-excelexport) event\n * fires ([see example]({% slug excelexport_grid %})).\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nclass ExcelCommandDirective extends Button {\n constructor(excelService, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.excelService = excelService;\n this.ngZone = ngZone;\n }\n /**\n * @hidden\n */\n onClick(e) {\n e.preventDefault();\n this.excelService.exportClick.emit();\n }\n /**\n * @hidden\n */\n get excelClass() {\n return true;\n }\n}\nExcelCommandDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoGridExcelCommand]'\n },] },\n];\n/** @nocollapse */\nExcelCommandDirective.ctorParameters = () => [\n { type: ExcelService },\n { type: ElementRef },\n { type: Renderer2 },\n { type: LocalizationService },\n { type: NgZone }\n];\nExcelCommandDirective.propDecorators = {\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }],\n excelClass: [{ type: HostBinding, args: ['class.k-grid-excel',] }]\n};\n\nconst declarations$2 = [ExcelComponent, ExcelCommandDirective];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Excel component of the Grid.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Grid and Excel modules\n * import { GridModule, ExcelModule } from '@progress/kendo-angular-grid';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, GridModule, ExcelModule], // import Grid and Excel modules\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass ExcelModule {\n}\nExcelModule.decorators = [\n { type: NgModule, args: [{\n declarations: [declarations$2],\n exports: [declarations$2, ExcelExportModule]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ColumnChooserComponent, ColumnListComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemBase, ColumnMenuItemContentTemplateDirective, ColumnMenuItemComponent, ColumnMenuLockComponent, ColumnMenuSortComponent, ColumnMenuTemplateDirective, ColumnMenuModule, ColumnMenuService, ColumnHandleDirective, ColumnResizingService, TableDirective, ColumnInfoService, DomEventsService, ExpandStateService, IdService, PreventableEvent, SortService, ChangeNotificationService, ColumnReorderService, DragAndDropModule, DragAndDropService, DragHintService, DraggableColumnDirective, DropCueService, DropTargetDirective, EditingDirectiveBase, RowEditingDirectiveBase, AddCommandDirective, CancelCommandDirective, EditCommandDirective, EditService as EditService$1, LocalDataChangesService, RemoveCommandDirective, SaveCommandDirective, ExcelCommandDirective, BooleanFilterComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellWrapperComponent, DateFilterComponent, FilterHostDirective, FilterInputWrapperComponent, FilterInputDirective, FilterRowComponent, DateFilterMenuInputComponent, FilterMenuContainerComponent, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuComponent, NumericFilterMenuInputComponent, StringFilterMenuInputComponent, NumericFilterComponent, FilterOperatorBase, SharedFilterModule, StringFilterComponent, GroupHeaderComponent, GroupIndicatorComponent, GroupInfoService, GroupPanelComponent, GroupsService, BrowserSupportService, ResizeService, ResponsiveService, LocalizedMessagesDirective, Messages, FocusGroup, FocusRoot, LogicalCellDirective, LogicalRowDirective, NavigationService, PagerContextService, PagerElementComponent, PDFCommandDirective, PDFTemplateDirective$1 as PDFTemplateDirective, CellComponent, CELL_CONTEXT, EMPTY_CELL_CONTEXT, FieldAccessorPipe, DetailsService, DEFAULT_SCROLLER_FACTORY, SCROLLER_FACTORY_TOKEN, ScrollRequestService, ScrollSyncService, ScrollerService, SelectAllCheckboxDirective, SelectionCheckboxDirective, Selection, SelectionService, GridModule, SharedModule, GridComponent, ColumnBase$1 as ColumnBase, ColumnComponent, CommandColumnComponent, SpanColumnComponent, ColumnGroupComponent, CheckboxColumnComponent, ToolbarComponent, ToolbarTemplateDirective, CellTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, PagerTemplateDirective, ExpandDetailsDirective, DetailTemplateDirective, DetailExpandEvent, DetailCollapseEvent, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, ResizableContainerDirective, TemplateContextDirective, NoRecordsTemplateDirective, DataBindingDirective, SelectionDirective, FilterService, FilterCellTemplateDirective, FilterCellComponent, StringFilterCellComponent, DateFilterCellComponent, BaseFilterCellComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, StringFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, RowFilterModule, FilterMenuModule, BodyModule, GroupModule, HeaderModule, FooterModule, PagerModule, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, EditTemplateDirective, ColGroupComponent, HeaderComponent, ListComponent, FooterComponent, TableBodyComponent, PagerComponent, CustomMessagesComponent, LoadingComponent, PDFModule, PDFComponent, PDFMarginComponent$1 as PDFMarginComponent, PDFService, ExcelModule, ExcelComponent, ExcelService, ExcelExportEvent, CellCloseEvent, SuspendService, GroupBindingDirective, slice, count, Skip, ColumnReorderEvent, FocusableDirective, ColumnVisibilityChangeEvent, ColumnMenuComponent, SinglePopupService, PopupCloseEvent };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { Directive, TemplateRef, Optional, EventEmitter, Component, forwardRef, Injector, Renderer2, NgZone, ChangeDetectorRef, ElementRef, Input, Output, ViewChild, ContentChild, HostBinding, Inject, isDevMode, Injectable, HostListener, ViewChildren, NgModule, ViewContainerRef, ContentChildren } from '@angular/core';\nimport { NgControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, RadioControlValueAccessor } from '@angular/forms';\nimport { Subscription, fromEvent, interval, merge, Observable } from 'rxjs';\nimport { take, filter, concatMap, startWith, takeUntil, skip, debounceTime } from 'rxjs/operators';\nimport { SliderModel, SliderUtil } from '@telerik/kendo-inputs-common';\nimport { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { guid, hasObservers, anyChanged, isDocumentAvailable, Keys, KendoInput, isChanged, DraggableModule, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';\nimport { browser, mobileOS } from '@progress/kendo-common';\nimport { IntlService } from '@progress/kendo-angular-intl';\nimport { CommonModule } from '@angular/common';\nimport { PopupService, PopupModule } from '@progress/kendo-angular-popup';\nimport { Color, parseColor, namedColors } from '@progress/kendo-drawing';\n\n/**\n * @hidden\n */\nconst MAX_PRECISION = 20;\n/**\n * @hidden\n */\nconst limitPrecision = (precision) => Math.min(precision, MAX_PRECISION);\n/**\n * @hidden\n */\nconst fractionLength = (value) => {\n return (String(value).split('.')[1] || \"\").length;\n};\nconst maxFractionLength = (value1, value2) => {\n return Math.max(fractionLength(value1), fractionLength(value2));\n};\n/**\n * @hidden\n */\nconst toFixedPrecision = (value, precision) => {\n const maxPrecision = limitPrecision(precision);\n return parseFloat(value.toFixed(maxPrecision));\n};\n/**\n * @hidden\n */\nconst add = (value1, value2) => {\n const maxPrecision = maxFractionLength(value1, value2);\n return toFixedPrecision(value1 + value2, maxPrecision);\n};\n/**\n * @hidden\n */\nconst subtract = (value1, value2) => {\n return add(value1, -value2);\n};\n/**\n * @hidden\n */\nconst multiply = (value1, value2) => {\n const maxPrecision = fractionLength(value1) + fractionLength(value2);\n return toFixedPrecision(value1 * value2, maxPrecision);\n};\n/**\n * @hidden\n */\nconst divide = (dividend, divisor) => {\n if (divisor === 0) {\n return NaN;\n }\n const power = maxFractionLength(dividend, divisor);\n const correctionValue = Math.pow(10, power);\n return ((correctionValue * dividend) / (correctionValue * divisor));\n};\n/**\n * @hidden\n */\nconst remainder = (dividend, divisor) => {\n return Math.abs(subtract(dividend, multiply(divisor, Math.floor(divide(dividend, divisor)))));\n};\n\nfunction elementOffset(element) {\n const box = element.getBoundingClientRect();\n const documentElement = document.documentElement;\n return {\n left: box.left + (window.pageXOffset || documentElement.scrollLeft) - (documentElement.clientLeft || 0),\n top: box.top + (window.pageYOffset || documentElement.scrollTop) - (documentElement.clientTop || 0)\n };\n}\nfunction limitValue(value, min, max) {\n return Math.max(Math.min(value, max), min);\n}\n/**\n * @hidden\n */\nfunction decreaseValueToStep(value, { max, min, smallStep, largeStep }, large = false) {\n const step = large && largeStep ? multiply(smallStep, largeStep) : smallStep;\n const stepValue = subtract(value, min);\n let result;\n const stepRemainder = remainder(stepValue, step);\n if (stepRemainder === 0) {\n result = subtract(stepValue, step);\n }\n else {\n result = subtract(stepValue, stepRemainder);\n }\n return limitValue(add(result, min), min, max);\n}\n/**\n * @hidden\n */\nfunction increaseValueToStep(value, { max, min, smallStep, largeStep }, large = false) {\n const step = large && largeStep ? multiply(smallStep, largeStep) : smallStep;\n const stepValue = subtract(value, min);\n const stepRemainder = remainder(stepValue, step);\n const result = add(subtract(stepValue, stepRemainder), step);\n return limitValue(add(result, min), min, max);\n}\n/**\n * @hidden\n */\nfunction snapValue(value, options) {\n const { smallStep, min, max } = options;\n const limitted = limitValue(value, min, max);\n if (value !== limitted) {\n return limitted;\n }\n const left = decreaseValueToStep(value, options);\n const right = increaseValueToStep(value, options);\n if ((value - min) % smallStep === 0) {\n return value;\n }\n if (right - value <= (right - left) / 2) {\n return right;\n }\n return left;\n}\n/**\n * @hidden\n */\nfunction eventValue(eventArgs, scaleElement, options) {\n const { min, max, vertical, rtl } = options;\n const trackOffset = elementOffset(scaleElement);\n const offset = vertical ? eventArgs.pageY - trackOffset.top : eventArgs.pageX - trackOffset.left;\n const scale = (max - min) / (vertical ? scaleElement.clientHeight : scaleElement.clientWidth);\n const offsetValue = offset * scale;\n let value = rtl || vertical ? max - offsetValue : min + offsetValue;\n const stepFractionLength = fractionLength(options.smallStep);\n value = toFixedPrecision(value, stepFractionLength + 1);\n return snapValue(value, options);\n}\n/**\n * @hidden\n */\nfunction isButton(element) {\n return element.className.indexOf('k-button-increase') >= 0 || element.className.indexOf('k-button-decrease') >= 0;\n}\n/**\n * @hidden\n */\nfunction increment(options) {\n return increaseValueToStep(options.value, options);\n}\n/**\n * @hidden\n */\nfunction decrement(options) {\n return decreaseValueToStep(options.value, options);\n}\n/**\n * @hidden\n */\nfunction incrementLarge(options) {\n return increaseValueToStep(options.value, options, true);\n}\n/**\n * @hidden\n */\nfunction decrementLarge(options) {\n return decreaseValueToStep(options.value, options, true);\n}\n/**\n * @hidden\n */\nfunction calculateValueFromTick(index, { max, min, smallStep, reverse, vertical }) {\n const value = add(min, multiply(index, smallStep));\n return vertical || reverse ? Math.abs(subtract(value, max)) : value;\n}\n/**\n * @hidden\n */\nfunction calculateTicksCount(min = 0, max = 0, smallStep = 1) {\n if (smallStep <= 0) {\n throw new Error(\"Invalid argument: smallStep must be a positive number\");\n }\n const adjustedRange = Math.abs(subtract(max, min));\n const adjustedRatio = Math.floor(divide(adjustedRange, smallStep));\n const result = add(adjustedRatio, 1);\n return result;\n}\n\n/**\n * @hidden\n */\nclass SliderModel$1 extends SliderModel {\n getTickSizes() {\n const { min, max, smallStep } = this.props;\n const count = calculateTicksCount(min, max, smallStep);\n const trackSize = this.trackWidth();\n const distStep = trackSize / subtract(max, min);\n const result = [];\n let usedSpace = 0;\n let endPoint = 0;\n for (let i = 0; i < count; i++) {\n if (i === 0 || i === count - 1) {\n endPoint += (smallStep / 2) * distStep;\n }\n else {\n endPoint += smallStep * distStep;\n }\n const size = Math.round(endPoint - usedSpace);\n result.push(size);\n usedSpace += size;\n }\n return result;\n }\n}\n\n/**\n * Represents the template for the labels of the Slider.\n * To define the labels template, nest an `` tag with the `kendoSliderLabelTemplate` directive inside\n * the `` tag. The template context is passed to the `label` value.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * {{value}}\n * \n * \n * `\n * })\n *\n * class AppComponent {\n * }\n *\n * ```\n */\nclass LabelTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nLabelTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoSliderLabelTemplate]'\n },] },\n];\n/** @nocollapse */\nLabelTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * @hidden\n *\n * Checks if the value is `null` or `undefined`. Falsy values like '', 0, false, NaN, etc. are regarded as present.\n */\nconst isPresent = (value) => value !== null && value !== undefined;\n/**\n * @hidden\n */\nconst areSame = (value1, value2) => value1 === value2 || (value1 === null && value2 === undefined) || (value1 === undefined && value2 === null);\n/**\n * @hidden\n */\nconst requiresZoneOnBlur = (ngControl) => ngControl &&\n (!ngControl.touched || (ngControl.control && ngControl.control.updateOn === 'blur'));\n/**\n * @hidden\n *\n * Fits the contender number into the specified bounds. If the number is NaN or null, the min is returned.\n *\n * @param contender Represents the number you want to fit into specified bounds.\n * @param min The inclusive lower bound number.\n * @param max The inclusive upper bound number.\n */\nconst fitIntoBounds = (contender, min, max) => {\n if (!isPresent(contender) || isNaN(contender)) {\n return min;\n }\n return contender <= min ? min : contender >= max ? max : contender;\n};\n\nconst UNTOUCHED = 'ng-untouched';\nconst toClassList = (classNames) => String(classNames).trim().split(' ');\n/**\n * @hidden\n */\nconst hasClass = (element, className) => Boolean(toClassList(element.className).find((name) => name === className));\n/**\n * @hidden\n */\nfunction invokeElementMethod(element, name, ...args) {\n if (element && element.nativeElement) {\n return element.nativeElement[name].apply(element.nativeElement, args);\n }\n}\n/**\n * @hidden\n */\nconst isUntouched = (element) => element && element.nativeElement && hasClass(element.nativeElement, UNTOUCHED);\n/**\n * @hidden\n */\nconst containsFocus = (hostElement, contender) => hostElement && contender && (hostElement === contender || hostElement.contains(contender));\n\nconst FOCUSED = 'k-state-focused';\nconst PRESSED = 'k-pressed';\n/**\n * Represents the [Kendo UI Slider component for Angular]({% slug overview_slider %}).\n */\nclass SliderComponent {\n constructor(localizationService, injector, renderer, ngZone, changeDetector, hostElement) {\n this.localizationService = localizationService;\n this.injector = injector;\n this.renderer = renderer;\n this.ngZone = ngZone;\n this.changeDetector = changeDetector;\n this.hostElement = hostElement;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Determines if the animation will be played on value change.\n * Regardless of this setting, no animation will be played during the initial rendering.\n */\n this.animate = true;\n /**\n * Renders the arrow side buttons of the Slider ([see example]({% slug sidebuttons_slider %}#toc-hidden-state)).\n * When `showButtons` is set to `false`, the buttons are not displayed.\n */\n this.showButtons = true;\n /**\n * Denotes the location of the tick marks in the Slider ([see example]({% slug ticks_slider %}#toc-placement)).\n *\n * The available options are:\n * * `before`—The tick marks are located to the top side of the horizontal track or to the left side of a vertical track.\n * * `after`—The tick marks are located to the bottom side of the horizontal track or to the right side of the vertical track.\n * * `both`—The tick marks are located on both sides of the track.\n * * `none`—The tick marks are not visible. The actual elements are not added to the DOM tree.\n */\n this.tickPlacement = 'both';\n /**\n * Defines the title of the ticks ([see example]({% slug ticks_slider %}#toc-titles)). The default title\n * for each tick is its Slider value. If you use a callback function, the function accepts an argument\n * that holds the value of the component and returns a string with the new title.\n */\n this.title = SliderUtil.identity;\n /**\n * If `vertical` is set to `true`, the orientation of the Slider changes from horizontal to vertical\n * ([see example]({% slug orientation_slider %})).\n */\n this.vertical = false;\n /**\n * The minimum value of the Slider ([see example]({% slug predefinedsteps_slider %}#toc-small-steps)).\n * The attribute accepts both integers and floating-point numbers.\n */\n this.min = 0;\n /**\n * The maximum value of the Slider ([see example]({% slug predefinedsteps_slider %}#toc-small-steps)).\n * The attribute accepts both integers and floating-point numbers.\n */\n this.max = 10;\n /**\n * The step value of the Slider ([see example]({% slug predefinedsteps_slider %}#toc-small-steps)).\n * Accepts positive values only. Can be an integer or a floating-point number.\n */\n this.smallStep = 1;\n /**\n * Specifies that every nth tick will be large and will have a label\n * ([see example]({% slug predefinedsteps_slider %}#toc-large-steps)).\n * Accepts positive integer values only.\n */\n this.largeStep = null;\n /**\n * Determines whether the Slider is disabled ([see example]({% slug disabledstate_slider %})).\n */\n this.disabled = false;\n /**\n * Determines whether the Slider is in its read-only state ([see example]({% slug readonly_slider %})).\n */\n this.readonly = false;\n /**\n * The current value of the Slider when it is initially displayed.\n * The component can use either NgModel or the `value` binding but not both of them at the same time.\n */\n this.value = 0;\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the Slider.\n */\n this.tabindex = 0;\n /**\n * Fires each time the user focuses the `input` element.\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the `input` element gets blurred.\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the user selects a new value.\n */\n this.valueChange = new EventEmitter();\n this.sliderClass = true;\n this.widgetClass = true;\n this.stateDefaultClass = true;\n this.subscriptions = new Subscription();\n /**\n * @hidden\n */\n this.handleFocus = () => {\n this.focused = true;\n if (hasObservers(this.onFocus)) {\n this.ngZone.run(() => {\n this.onFocus.emit();\n });\n }\n };\n /**\n * @hidden\n */\n this.handleBlur = () => {\n this.changeDetector.markForCheck();\n this.focused = false;\n if (hasObservers(this.onBlur) || requiresZoneOnBlur(this.control)) {\n this.ngZone.run(() => {\n this.ngTouched();\n this.onBlur.emit();\n });\n }\n };\n /**\n * @hidden\n */\n this.onWrapClick = (args) => {\n const target = args.target;\n if (!this.isDisabled && !(isButton(target) || isButton(target.parentNode))) {\n const value = eventValue(args, this.track.nativeElement, this.getProps());\n this.changeValue(value);\n }\n };\n /**\n * @hidden\n */\n this.ifEnabled = (callback, event) => {\n if (!this.isDisabled) {\n callback.call(this, event);\n }\n };\n /**\n * @hidden\n */\n this.onKeyDown = (e) => {\n const options = this.getProps();\n const { max, min } = options;\n const handler = this.keyBinding[e.keyCode];\n if (this.isDisabled || !handler) {\n return;\n }\n const value = handler(options);\n this.changeValue(SliderUtil.trimValue(max, min, value));\n e.preventDefault();\n };\n this.ngChange = (_) => { };\n this.ngTouched = () => { };\n this.decreaseValue = () => {\n this.changeValue(decreaseValueToStep(this.value, this.getProps()));\n };\n this.increaseValue = () => {\n this.changeValue(increaseValueToStep(this.value, this.getProps()));\n };\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n get horizontalClass() {\n return !this.vertical;\n }\n get verticalClass() {\n return this.vertical;\n }\n get disabledClass() {\n return this.disabled;\n }\n get ariaDisabled() {\n return this.disabled ? true : undefined;\n }\n get ariaReadonly() {\n return this.readonly ? true : undefined;\n }\n get ariaMin() {\n return this.min;\n }\n get ariaMax() {\n return this.max;\n }\n get ariaValue() {\n return this.value ? this.value : this.min;\n }\n /**\n * @hidden\n * Called when the status of the component changes to or from `disabled`.\n * Depending on the value, it enables or disables the appropriate DOM element.\n *\n * @param isDisabled\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n ngOnInit() {\n this.subscriptions.add(this.localizationService\n .changes\n .subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n this.sizeComponent(false);\n }));\n if (this.hostElement) {\n this.renderer.removeAttribute(this.hostElement.nativeElement, \"tabindex\");\n }\n this.control = this.injector.get(NgControl, null);\n }\n /**\n * Focuses the Slider.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n invokeElementMethod(this.wrapper, 'focus');\n }\n /**\n * Blurs the Slider.\n */\n blur() {\n invokeElementMethod(this.wrapper, 'blur');\n }\n ngOnChanges(changes) {\n if (anyChanged(['value', 'fixedTickWidth', 'tickPlacement'], changes, true)) {\n this.ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n this.sizeComponent(false);\n });\n }\n }\n ngAfterViewInit() {\n if (!isDocumentAvailable()) {\n return;\n }\n if (this.showButtons) {\n this.setValueChangeInterval(this.increaseButton.nativeElement, () => this.increaseValue());\n this.setValueChangeInterval(this.decreaseButton.nativeElement, () => this.decreaseValue());\n }\n this.sizeComponent(false);\n if (this.ticks) {\n this.ticks.tickElements\n .changes\n .subscribe(() => this.sizeComponent(false));\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n /**\n * @hidden\n */\n get incrementMessage() {\n return this.incrementTitle || this.localizationService.get('increment');\n }\n /**\n * @hidden\n */\n get decrementMessage() {\n return this.decrementTitle || this.localizationService.get('decrement');\n }\n /**\n * @hidden\n */\n get dragHandleMessage() {\n return this.dragHandleTitle || this.localizationService.get('dragHandle');\n }\n /**\n * @hidden\n */\n handleDragPress(args) {\n if (args.originalEvent) {\n args.originalEvent.preventDefault();\n }\n this.focus();\n this.renderer.removeClass(this.hostElement.nativeElement, 'k-slider-transitions');\n }\n /**\n * @hidden\n */\n onHandleDrag(args) {\n this.dragging = true;\n this.changeValue(eventValue(args, this.track.nativeElement, this.getProps()));\n }\n /**\n * @hidden\n */\n onHandleRelease() {\n this.dragging = false; //needed for animation\n this.renderer.addClass(this.hostElement.nativeElement, 'k-slider-transitions');\n }\n //ngModel binding\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = value;\n this.sizeComponent(this.animate);\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.ngChange = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.ngTouched = fn;\n }\n /**\n * @hidden\n */\n changeValue(value) {\n if (!areSame(this.value, value)) {\n this.ngZone.run(() => {\n this.value = value;\n this.ngChange(value);\n this.valueChange.emit(value);\n this.sizeComponent(this.animate);\n });\n }\n }\n /**\n * @hidden\n */\n sizeComponent(animate) {\n if (!isDocumentAvailable()) {\n return;\n }\n const wrapper = this.wrapper.nativeElement;\n const track = this.track.nativeElement;\n const selectionEl = this.sliderSelection.nativeElement;\n const dragHandleEl = this.draghandle.nativeElement;\n const ticks = this.ticks ? this.ticksContainer.nativeElement : null;\n if (!animate) {\n this.renderer.removeClass(this.hostElement.nativeElement, 'k-slider-transitions');\n }\n this.resetStyles([track, selectionEl, dragHandleEl, ticks, this.hostElement.nativeElement]);\n const props = this.getProps();\n const model = new SliderModel$1(props, wrapper, track);\n model.resizeTrack();\n if (this.ticks) { //for case when tickPlacement: none\n model.resizeTicks(this.ticksContainer.nativeElement, this.ticks.tickElements.map(element => element.nativeElement));\n }\n model.positionHandle(dragHandleEl);\n model.positionSelection(dragHandleEl, selectionEl);\n if (!animate) {\n this.hostElement.nativeElement.getBoundingClientRect();\n this.renderer.addClass(this.hostElement.nativeElement, 'k-slider-transitions');\n }\n if (this.fixedTickWidth) {\n model.resizeWrapper();\n }\n }\n /**\n * @hidden\n */\n get isDisabled() {\n return this.disabled || this.readonly;\n }\n /**\n * @hidden\n * Used by the TextBoxContainer to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n get reverse() {\n return this.localizationService.rtl && !this.vertical;\n }\n get keyBinding() {\n const reverse = this.reverse;\n return {\n [Keys.ArrowLeft]: reverse ? increment : decrement,\n [Keys.ArrowRight]: reverse ? decrement : increment,\n [Keys.ArrowDown]: decrement,\n [Keys.ArrowUp]: increment,\n [Keys.PageUp]: incrementLarge,\n [Keys.PageDown]: decrementLarge,\n [Keys.Home]: ({ min }) => min,\n [Keys.End]: ({ max }) => max\n };\n }\n set focused(value) {\n if (this.isFocused !== value && this.hostElement) {\n const element = this.hostElement.nativeElement;\n if (value) {\n this.renderer.addClass(element, FOCUSED);\n }\n else {\n this.renderer.removeClass(element, FOCUSED);\n }\n this.isFocused = value;\n }\n }\n set dragging(value) {\n if (this.isDragged !== value && this.sliderSelection && this.draghandle) {\n const sliderSelection = this.sliderSelection.nativeElement;\n const draghandle = this.draghandle.nativeElement;\n if (value) {\n this.renderer.addClass(sliderSelection, PRESSED);\n this.renderer.addClass(draghandle, PRESSED);\n }\n else {\n this.renderer.removeClass(sliderSelection, PRESSED);\n this.renderer.removeClass(draghandle, PRESSED);\n }\n this.isDragged = value;\n }\n }\n setValueChangeInterval(element, callback) {\n this.ngZone.runOutsideAngular(() => {\n const mousedown = fromEvent(element, 'mousedown');\n const mouseup = fromEvent(element, 'mouseup');\n const mouseout = fromEvent(element, 'mouseout');\n const subscription = mousedown.pipe(filter((e) => e.button === 0 && !this.isDisabled), concatMap(() => interval(150).pipe(startWith(-1), takeUntil(merge(mouseup, mouseout))))).subscribe(() => {\n this.focus();\n callback();\n });\n this.subscriptions.add(subscription);\n });\n }\n getProps() {\n return {\n buttons: this.showButtons,\n disabled: this.disabled,\n fixedTickWidth: this.fixedTickWidth,\n largeStep: this.largeStep,\n max: this.max,\n min: this.min,\n readonly: this.readonly,\n reverse: this.reverse,\n rtl: this.localizationService.rtl,\n smallStep: this.smallStep,\n value: SliderUtil.trimValue(this.max, this.min, this.value),\n vertical: this.vertical\n };\n }\n resetStyles(elements) {\n elements.forEach(el => {\n if (el) {\n if (this.vertical) {\n el.style.removeProperty('width');\n el.style.removeProperty('left');\n }\n else {\n el.style.removeProperty('height');\n el.style.removeProperty('bottom');\n }\n el.style.removeProperty('padding-top');\n }\n });\n }\n}\nSliderComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoSlider',\n providers: [\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.slider' },\n { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SliderComponent) },\n { provide: KendoInput, useExisting: forwardRef(() => SliderComponent) }\n ],\n selector: 'kendo-slider',\n template: `\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/** @nocollapse */\nSliderComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: Injector },\n { type: Renderer2 },\n { type: NgZone },\n { type: ChangeDetectorRef },\n { type: ElementRef }\n];\nSliderComponent.propDecorators = {\n focusableId: [{ type: Input }],\n incrementTitle: [{ type: Input }],\n animate: [{ type: Input }],\n decrementTitle: [{ type: Input }],\n showButtons: [{ type: Input }],\n tickPlacement: [{ type: Input }],\n title: [{ type: Input }],\n dragHandleTitle: [{ type: Input }],\n vertical: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n smallStep: [{ type: Input }],\n largeStep: [{ type: Input }],\n fixedTickWidth: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n value: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n valueChange: [{ type: Output }],\n wrapper: [{ type: ViewChild, args: ['wrap', { static: true },] }],\n track: [{ type: ViewChild, args: ['track', { static: true },] }],\n draghandle: [{ type: ViewChild, args: ['draghandle', { static: true },] }],\n sliderSelection: [{ type: ViewChild, args: ['sliderSelection', { static: true },] }],\n ticksContainer: [{ type: ViewChild, args: ['ticks', { read: ElementRef },] }],\n ticks: [{ type: ViewChild, args: ['ticks',] }],\n decreaseButton: [{ type: ViewChild, args: ['decreaseButton',] }],\n increaseButton: [{ type: ViewChild, args: ['increaseButton',] }],\n labelTemplate: [{ type: ContentChild, args: [LabelTemplateDirective,] }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n horizontalClass: [{ type: HostBinding, args: ['class.k-slider-horizontal',] }],\n verticalClass: [{ type: HostBinding, args: ['class.k-slider-vertical',] }],\n sliderClass: [{ type: HostBinding, args: ['class.k-slider',] }],\n widgetClass: [{ type: HostBinding, args: ['class.k-widget',] }],\n stateDefaultClass: [{ type: HostBinding, args: ['class.k-state-default',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }],\n ariaDisabled: [{ type: HostBinding, args: ['attr.aria-disabled',] }],\n ariaReadonly: [{ type: HostBinding, args: ['attr.aria-readonly',] }],\n ariaMin: [{ type: HostBinding, args: ['attr.aria-valuemin',] }],\n ariaMax: [{ type: HostBinding, args: ['attr.aria-valuemax',] }],\n ariaValue: [{ type: HostBinding, args: ['attr.aria-valuenow',] }]\n};\n\nconst FOCUSED$1 = 'k-state-focused';\n/**\n * Represents the [Kendo UI Switch component for Angular]({% slug overview_switch %}).\n */\nclass SwitchComponent {\n constructor(renderer, hostElement, localizationService, injector, changeDetector, ngZone) {\n this.renderer = renderer;\n this.hostElement = hostElement;\n this.localizationService = localizationService;\n this.injector = injector;\n this.changeDetector = changeDetector;\n this.ngZone = ngZone;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Sets the current value of the Switch when it is initially displayed.\n */\n this.checked = false;\n /**\n * Determines whether the Switch is disabled ([see example]({% slug disabled_switch %})).\n */\n this.disabled = false;\n /**\n * Determines whether the Switch is in its read-only state ([see example]({% slug readonly_switch %})).\n */\n this.readonly = false;\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the Switch.\n */\n this.tabindex = 0;\n /**\n * Fires each time the user focuses the `input` element.\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the `input` element gets blurred.\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the user selects a new value.\n */\n this.valueChange = new EventEmitter();\n this.ngChange = (_) => { };\n this.ngTouched = () => { };\n /**\n * @hidden\n */\n this.handleFocus = () => {\n this.focused = true;\n if (hasObservers(this.onFocus)) {\n this.ngZone.run(() => {\n this.onFocus.emit();\n });\n }\n };\n /**\n * @hidden\n */\n this.handleBlur = () => {\n this.changeDetector.markForCheck();\n this.focused = false;\n if (hasObservers(this.onBlur) || requiresZoneOnBlur(this.control)) {\n this.ngZone.run(() => {\n this.ngTouched();\n this.onBlur.emit();\n });\n }\n };\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n this.keyDownHandler = this.keyDownHandler.bind(this);\n this.clickHandler = this.clickHandler.bind(this);\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n get ieClass() {\n return browser && browser.msie;\n }\n get ariaDisabled() {\n return this.disabled ? true : undefined;\n }\n get ariaReadonly() {\n return this.readonly;\n }\n get hostClasses() {\n return true;\n }\n get switchOnClass() {\n return this.checked;\n }\n get switchOffClass() {\n return !this.checked;\n }\n get disabledClass() {\n return this.disabled;\n }\n /**\n * @hidden\n */\n get onLabelMessage() {\n return this.onLabel || this.localizationService.get('on');\n }\n /**\n * @hidden\n */\n get offLabelMessage() {\n return this.offLabel || this.localizationService.get('off');\n }\n get isEnabled() {\n return !this.disabled && !this.readonly;\n }\n ngOnInit() {\n if (this.hostElement) {\n const wrapper = this.hostElement.nativeElement;\n this.renderer.removeAttribute(wrapper, \"tabindex\");\n }\n this.localizationChangeSubscription = this.localizationService\n .changes\n .pipe(skip(1))\n .subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n this.control = this.injector.get(NgControl, null);\n }\n ngOnDestroy() {\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n }\n /**\n * Focuses the Switch.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n if (!this.wrapper) {\n return;\n }\n this.wrapper.nativeElement.focus();\n }\n /**\n * Blurs the Switch.\n */\n blur() {\n if (!this.wrapper) {\n return;\n }\n this.wrapper.nativeElement.blur();\n }\n /**\n * @hidden\n * Called when the status of the component changes to or from `disabled`.\n * Depending on the value, it enables or disables the appropriate DOM element.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this.changeDetector.markForCheck();\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.checked = value === null ? false : value;\n this.changeDetector.markForCheck();\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.ngChange = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.ngTouched = fn;\n }\n /**\n * @hidden\n */\n keyDownHandler(e) {\n const keyCode = e.keyCode;\n if (this.isEnabled && (keyCode === Keys.Space || keyCode === Keys.Enter)) {\n this.changeValue(!this.checked);\n e.preventDefault();\n }\n }\n /**\n * @hidden\n */\n clickHandler() {\n if (this.isEnabled) {\n this.changeValue(!this.checked);\n }\n }\n /**\n * @hidden\n * Used by the TextBoxContainer to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n changeValue(value) {\n if (this.checked !== value) {\n this.ngZone.run(() => {\n this.checked = value;\n this.ngChange(value);\n this.valueChange.emit(value);\n this.changeDetector.markForCheck();\n });\n }\n }\n set focused(value) {\n if (this.isFocused !== value && this.hostElement) {\n const element = this.hostElement.nativeElement;\n if (value) {\n this.renderer.addClass(element, FOCUSED$1);\n }\n else {\n this.renderer.removeClass(element, FOCUSED$1);\n }\n this.isFocused = value;\n }\n }\n}\nSwitchComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoSwitch',\n providers: [\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.switch' },\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent) /* tslint:disable-line */\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => SwitchComponent)\n }\n ],\n selector: 'kendo-switch',\n template: `\n \n\n \n {{onLabelMessage}}\n {{offLabelMessage}}\n \n \n `\n },] },\n];\n/** @nocollapse */\nSwitchComponent.ctorParameters = () => [\n { type: Renderer2 },\n { type: ElementRef },\n { type: LocalizationService },\n { type: Injector },\n { type: ChangeDetectorRef },\n { type: NgZone }\n];\nSwitchComponent.propDecorators = {\n focusableId: [{ type: Input }],\n onLabel: [{ type: Input }],\n offLabel: [{ type: Input }],\n checked: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n valueChange: [{ type: Output }],\n wrapper: [{ type: ViewChild, args: ['wrapper',] }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n ieClass: [{ type: HostBinding, args: ['class.k-ie',] }],\n ariaDisabled: [{ type: HostBinding, args: ['attr.aria-disabled',] }],\n ariaReadonly: [{ type: HostBinding, args: ['attr.aria-readonly',] }],\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-switch',] }],\n switchOnClass: [{ type: HostBinding, args: ['class.k-switch-on',] }],\n switchOffClass: [{ type: HostBinding, args: ['class.k-switch-off',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }]\n};\n\n/**\n * Represents the [Kendo UI TextArea directive for the Inputs components for Angular]({% slug overview_textarea %}).\n * Provides floating labels to `textarea` elements.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nclass TextAreaDirective {\n constructor(renderer, element, zone, changeDetector, injector, rtl) {\n this.renderer = renderer;\n this.element = element;\n this.zone = zone;\n this.changeDetector = changeDetector;\n this.injector = injector;\n this.elementClass = true;\n this.autofillClass = true;\n /**\n * Fires each time the textarea value is changed.\n */\n this.valueChange = new EventEmitter();\n /**\n * Specifies if the `textarea` element will resize its height automatically\n * ([see example]({% slug overview_textarea %}#toc-auto-resizing)).\n *\n * @default false\n */\n this.autoSize = false;\n /**\n * @hidden\n */\n this.onFocus = new EventEmitter();\n /**\n * @hidden\n */\n this.onBlur = new EventEmitter();\n /**\n * @hidden\n */\n this.onValueChange = new EventEmitter();\n /**\n * @hidden\n */\n this.autoFillStart = new EventEmitter();\n /**\n * @hidden\n */\n this.autoFillEnd = new EventEmitter();\n this.listeners = [];\n this.ngChange = (_) => { };\n this.ngTouched = () => { };\n this.direction = rtl ? 'rtl' : 'ltr';\n }\n get id() {\n return this.element.nativeElement.id;\n }\n set id(id) {\n this.renderer.setAttribute(this.element.nativeElement, 'id', id);\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.elementValue = value;\n this.resize();\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.ngChange = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.ngTouched = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.setElementProperty('disabled', isDisabled);\n }\n ngOnInit() {\n const element = this.element.nativeElement;\n this.zone.runOutsideAngular(() => {\n this.listeners = [\n this.renderer.listen(element, 'focus', this.handleFocus.bind(this)),\n this.renderer.listen(element, 'blur', this.handleBlur.bind(this)),\n this.renderer.listen(element, 'animationstart', (e) => {\n if (e.animationName === 'autoFillStart') {\n this.autoFillStart.emit();\n }\n else if (e.animationName === 'autoFillEnd') {\n this.autoFillEnd.emit();\n }\n })\n ];\n if (isDocumentAvailable() && this.autoSize) {\n this.resizeSubscription = fromEvent(window, 'resize')\n .pipe((debounceTime(50)))\n .subscribe(() => this.resize());\n }\n this.inputSubscription = fromEvent(element, 'input')\n .subscribe(this.handleInput.bind(this));\n });\n this.control = this.injector.get(NgControl, null);\n }\n ngOnChanges(changes) {\n const element = this.element.nativeElement;\n if (changes.value) {\n this.elementValue = this.value;\n }\n if (changes.autoSize) {\n if (this.autoSize) {\n this.initialHeight = element.offsetHeight;\n this.renderer.setStyle(element, 'resize', 'none');\n }\n else {\n this.renderer.setStyle(element, 'overflow-y', 'auto');\n this.renderer.setStyle(element, 'resize', 'both');\n element.style.height = `${this.initialHeight}px`;\n }\n }\n this.resize();\n }\n ngOnDestroy() {\n this.listeners.forEach(listener => listener());\n if (this.inputSubscription) {\n this.inputSubscription.unsubscribe();\n }\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n get elementValue() {\n if (this.element) {\n return this.element.nativeElement.value;\n }\n return '';\n }\n set elementValue(value) {\n this.setElementProperty('value', (value === undefined || value === null) ? '' : value);\n }\n setElementProperty(name, value) {\n if (this.element) {\n this.renderer.setProperty(this.element.nativeElement, name, value);\n }\n }\n resize() {\n if (!this.autoSize) {\n return;\n }\n const element = this.element.nativeElement;\n this.renderer.setStyle(element, 'overflow-y', 'hidden');\n element.style.height = `${this.initialHeight}px`;\n const scrollHeight = element.scrollHeight;\n if (scrollHeight > this.initialHeight) {\n element.style.height = `${scrollHeight}px`;\n }\n }\n handleInput() {\n const value = this.elementValue;\n this.value = value;\n if (this.control || hasObservers(this.onValueChange) || hasObservers(this.valueChange)) {\n this.zone.run(() => {\n this.ngChange(value);\n this.onValueChange.emit(value);\n this.valueChange.emit(value);\n this.changeDetector.markForCheck();\n });\n }\n this.resize();\n }\n handleFocus() {\n if (hasObservers(this.onFocus)) {\n this.zone.run(() => {\n this.onFocus.emit();\n });\n }\n }\n handleBlur() {\n if (hasObservers(this.onBlur) || requiresZoneOnBlur(this.control)) {\n this.zone.run(() => {\n this.ngTouched();\n this.onBlur.emit();\n this.changeDetector.markForCheck();\n });\n }\n }\n}\nTextAreaDirective.decorators = [\n { type: Directive, args: [{\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextAreaDirective),\n multi: true\n }, {\n provide: KendoInput,\n useExisting: forwardRef(() => TextAreaDirective)\n }],\n selector: 'textarea[kendoTextArea]'\n },] },\n];\n/** @nocollapse */\nTextAreaDirective.ctorParameters = () => [\n { type: Renderer2 },\n { type: ElementRef },\n { type: NgZone },\n { type: ChangeDetectorRef },\n { type: Injector },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [RTL,] }] }\n];\nTextAreaDirective.propDecorators = {\n elementClass: [{ type: HostBinding, args: ['class.k-textarea',] }],\n autofillClass: [{ type: HostBinding, args: ['class.k-autofill',] }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n valueChange: [{ type: Output }],\n autoSize: [{ type: Input }],\n value: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass FloatingLabelInputAdapter {\n constructor(component, formControl) {\n this.component = component;\n const isObservableOrEventEmitter = (event) => event instanceof Observable || event instanceof EventEmitter;\n if (isObservableOrEventEmitter(component.onFocus)) {\n this.onFocus = component.onFocus;\n }\n if (isObservableOrEventEmitter(component.autoFillStart)) {\n this.autoFillStart = component.autoFillStart;\n }\n if (isObservableOrEventEmitter(component.autoFillEnd)) {\n this.autoFillEnd = component.autoFillEnd;\n }\n if (isObservableOrEventEmitter(component.onBlur)) {\n this.onBlur = component.onBlur;\n }\n if (formControl) {\n this.onValueChange = formControl.valueChanges;\n }\n else if (component.onValueChange) {\n this.onValueChange = component.onValueChange;\n }\n }\n get focusableId() {\n const component = this.component;\n if ('focusableId' in component) {\n return component.focusableId;\n }\n else if ('id' in component) {\n return component.id;\n }\n return \"\";\n }\n set focusableId(value) {\n const component = this.component;\n if ('focusableId' in component) {\n component.focusableId = value;\n }\n else if ('id' in component) {\n component.id = value;\n }\n }\n}\n\nconst isFunction = (x) => Object.prototype.toString.call(x) === '[object Function]';\n/**\n * @hidden\n */\nclass TextBoxContainerComponent {\n constructor(elementRef, renderer, changeDetectorRef, rtl) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.changeDetectorRef = changeDetectorRef;\n /**\n * @hidden\n */\n this.focused = false;\n /**\n * @hidden\n */\n this.empty = true;\n /**\n * @hidden\n */\n this.invalid = false;\n this._subscriptions = [];\n this.autoFillStarted = false;\n this.direction = rtl ? 'rtl' : 'ltr';\n this.renderer.removeAttribute(this.elementRef.nativeElement, \"id\");\n }\n get hostClasses() {\n return true;\n }\n get textareaElementClass() {\n return !!this.textarea;\n }\n get focusedClass() {\n return this.focused;\n }\n get invalidClass() {\n return this.invalid;\n }\n /**\n * @hidden\n */\n ngAfterContentInit() {\n if (!this.formControl && !this.kendoInput) {\n if (isDevMode()) {\n throw new Error(\"The TextBoxContainer requires a Kendo Input component\" +\n \" or a forms-bound component to function properly.\");\n }\n return;\n }\n // add focus/blur/valueChange handlers\n const control = new FloatingLabelInputAdapter(this.kendoInput || this.formControl.valueAccessor, this.formControl);\n const setFocus = (isFocused) => () => {\n this.focused = isFocused;\n this.updateState();\n };\n this.subscribe(control, 'onFocus', setFocus(true));\n this.subscribe(control, 'onBlur', setFocus(false));\n this.subscribe(control, 'autoFillStart', () => {\n this.autoFillStarted = true;\n this.renderer.removeClass(this.elementRef.nativeElement, 'k-state-empty');\n });\n this.subscribe(control, 'autoFillEnd', () => {\n if (this.autoFillStarted) {\n this.autoFillStarted = false;\n if (this.empty) {\n this.renderer.addClass(this.elementRef.nativeElement, 'k-state-empty');\n }\n }\n });\n const updateState = () => this.updateState();\n updateState();\n this.subscribe(control, 'onValueChange', updateState);\n // set label id for floating label\n if (this.id && control.focusableId) {\n // input wins\n this.id = control.focusableId;\n }\n else if (this.id) {\n control.focusableId = this.id;\n }\n else if (control.focusableId) {\n this.id = control.focusableId;\n }\n else {\n const id = \"_\" + guid();\n control.focusableId = id;\n this.id = id;\n }\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this._subscriptions.forEach(s => s.unsubscribe());\n this._subscriptions = [];\n }\n subscribe(control, eventName, handler) {\n if (control[eventName] instanceof EventEmitter) {\n const subscription = control[eventName].subscribe(handler);\n this._subscriptions.push(subscription);\n }\n }\n updateState() {\n const empty = value => {\n // zero is not an empty value (e.g., NumericTextBox)\n if (value === 0 || value === false) {\n return false;\n }\n // empty arrays are an empty value (e.g., MultiSelect)\n if (Array.isArray(value) && !value.length) {\n return true;\n }\n return !value;\n };\n const formControl = this.formControl;\n if (formControl) {\n const valueAccessor = formControl.valueAccessor;\n if (isFunction(valueAccessor.isEmpty)) {\n this.empty = valueAccessor.isEmpty();\n }\n else {\n this.empty = empty(formControl.value);\n }\n this.invalid = formControl.invalid && (formControl.touched || formControl.dirty);\n }\n else {\n this.empty = isFunction(this.kendoInput.isEmpty) ?\n this.kendoInput.isEmpty() : empty(this.kendoInput.value);\n }\n if (this.empty) {\n this.renderer.addClass(this.elementRef.nativeElement, 'k-state-empty');\n }\n else {\n this.renderer.removeClass(this.elementRef.nativeElement, 'k-state-empty');\n }\n this.changeDetectorRef.markForCheck();\n }\n}\nTextBoxContainerComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-textbox-container',\n template: `\n \n \n `\n },] },\n];\n/** @nocollapse */\nTextBoxContainerComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: ChangeDetectorRef },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [RTL,] }] }\n];\nTextBoxContainerComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-textbox-container',] }],\n textareaElementClass: [{ type: HostBinding, args: ['class.k-textarea-wrapper',] }],\n focusedClass: [{ type: HostBinding, args: ['class.k-state-focused',] }],\n invalidClass: [{ type: HostBinding, args: ['class.k-state-invalid',] }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n id: [{ type: Input }],\n floatingLabel: [{ type: Input }],\n kendoInput: [{ type: ContentChild, args: [KendoInput,] }],\n textarea: [{ type: ContentChild, args: [TextAreaDirective,] }],\n formControl: [{ type: ContentChild, args: [NgControl,] }]\n};\n\n/**\n * Represents the [Kendo UI TextBox directive]({% slug overview_textbox %}) for the Inputs components for Angular.\n * Used to style the textbox of any `input` element.\n *\n * @example\n * ```ts-no-run\n * \n * \n * \n * ```\n */\nclass TextBoxDirective {\n constructor(renderer, inputElement, ngZone) {\n this.renderer = renderer;\n this.inputElement = inputElement;\n this.ngZone = ngZone;\n this.hostClass = true;\n /**\n * @hidden\n */\n this.onFocus = new EventEmitter();\n /**\n * @hidden\n */\n this.onBlur = new EventEmitter();\n /**\n * @hidden\n */\n this.onValueChange = new EventEmitter();\n /**\n * @hidden\n */\n this.autoFillStart = new EventEmitter();\n /**\n * @hidden\n */\n this.autoFillEnd = new EventEmitter();\n this.listeners = [];\n }\n /**\n * @hidden\n */\n set value(text) {\n if (!this.inputElement) {\n return;\n }\n this.inputElement.nativeElement.value = (text === undefined || text === null) ? '' : text;\n this.onValueChange.emit();\n }\n /**\n * @hidden\n */\n get value() {\n return this.inputElement.nativeElement.value;\n }\n get id() {\n return this.inputElement.nativeElement.id;\n }\n set id(id) {\n this.renderer.setAttribute(this.inputElement.nativeElement, 'id', id);\n }\n ngAfterViewInit() {\n const input = this.inputElement.nativeElement;\n this.listeners = [\n this.renderer.listen(input, 'focus', () => this.onFocus.emit()),\n this.renderer.listen(input, 'blur', () => this.onBlur.emit())\n ];\n this.ngZone.runOutsideAngular(() => {\n this.renderer.listen(input, 'animationstart', (e) => {\n if (e.animationName === 'autoFillStart') {\n this.autoFillStart.emit();\n }\n else if (e.animationName === 'autoFillEnd') {\n this.autoFillEnd.emit();\n }\n });\n });\n }\n ngOnDestroy() {\n this.listeners.forEach(listener => listener());\n }\n}\nTextBoxDirective.decorators = [\n { type: Directive, args: [{\n selector: 'input[kendoTextBox]',\n providers: [{\n provide: KendoInput,\n useExisting: forwardRef(() => TextBoxDirective)\n }]\n },] },\n];\n/** @nocollapse */\nTextBoxDirective.ctorParameters = () => [\n { type: Renderer2 },\n { type: ElementRef },\n { type: NgZone }\n];\nTextBoxDirective.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-textbox',] }],\n value: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nconst createMaxValidator = (maxValue) => {\n return (c) => {\n const err = {\n maxError: {\n maxValue: maxValue,\n value: c.value\n }\n };\n return (c.value !== null && c.value > maxValue) ? err : null;\n };\n};\n\n/**\n * @hidden\n */\nconst createMinValidator = (minValue) => {\n return (c) => {\n const err = {\n minError: {\n minValue: minValue,\n value: c.value\n }\n };\n return (c.value !== null && c.value < minValue) ? err : null;\n };\n};\n\n/**\n * @hidden\n */\nconst MIN_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/inputs/api/NumericTextBoxComponent/#toc-min';\n/**\n * @hidden\n */\nconst MAX_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/inputs/api/NumericTextBoxComponent/#toc-max';\n/**\n * @hidden\n */\nconst POINT = \".\";\n/**\n * @hidden\n */\nconst INITIAL_SPIN_DELAY = 500;\n/**\n * @hidden\n */\nconst SPIN_DELAY = 50;\n/**\n * @hidden\n */\nconst EXPONENT_REGEX = /[eE][\\-+]?([0-9]+)/;\n\n/**\n * @hidden\n */\nconst numericRegex = (options) => {\n const { autoCorrect, decimals, min } = options;\n let separator = options.separator;\n if (separator === POINT) {\n separator = '\\\\' + separator;\n }\n const signPattern = autoCorrect && min !== null && min >= 0 ? '' : '-?';\n let numberPattern;\n if (decimals === 0) {\n numberPattern = '\\\\d*';\n }\n else {\n numberPattern = `(?:(?:\\\\d+(${separator}\\\\d*)?)|(?:${separator}\\\\d*))?`;\n }\n return new RegExp(`^${signPattern}${numberPattern}$`);\n};\n/**\n * @hidden\n */\nconst decimalPart = (value) => {\n return value >= 0 ? Math.floor(value) : Math.ceil(value);\n};\n/**\n * @hidden\n */\nconst noop = (_) => { }; // tslint:disable-line:no-empty\n/**\n * @hidden\n */\nconst defined = (value) => {\n return typeof value !== 'undefined';\n};\n/**\n * @hidden\n */\nconst isNumber = (value) => {\n return !isNaN(value) && value !== null;\n};\n/**\n * @hidden\n */\nfunction pad(value, digits) {\n const count = digits - String(value).length;\n let result = value;\n if (count > 0) {\n const padString = new Array(count + 1).join(\"0\");\n result = parseFloat(value + padString);\n }\n return result;\n}\n/**\n * @hidden\n */\nconst getDeltaFromMouseWheel = (e) => {\n let delta = 0;\n if (e.wheelDelta) {\n delta = e.wheelDelta / 120;\n delta = delta > 0 ? Math.ceil(delta) : Math.floor(delta);\n }\n else if (e.detail) {\n delta = Math.round(-e.detail / 3);\n }\n return delta;\n};\n/**\n * @hidden\n */\nconst getCaretPosition = (element) => element.selectionStart;\n/**\n * @hidden\n */\nconst extractSignificantNumericChars = (formattedString, separator) => {\n const significantCharacters = `${separator}0123456789-`;\n return formattedString.split('').reduce((acc, curr) => significantCharacters.includes(curr) ? ++acc : acc, 0);\n};\n\n/**\n * @hidden\n */\nvar ArrowDirection;\n(function (ArrowDirection) {\n ArrowDirection[ArrowDirection[\"Down\"] = -1] = \"Down\";\n ArrowDirection[ArrowDirection[\"None\"] = 0] = \"None\";\n ArrowDirection[ArrowDirection[\"Up\"] = 1] = \"Up\";\n})(ArrowDirection || (ArrowDirection = {}));\n\nconst PARSABLE_OPTIONS = ['min', 'max', 'step', 'decimals'];\nconst PARSABLE_DEFAULTS = {\n decimals: null,\n max: null,\n min: null,\n step: 1\n};\nconst FOCUSED$2 = 'k-state-focused';\nconst FORMATTED_VALUE = 'k-formatted-value';\n/**\n * Represents the [Kendo UI NumericTextBox component for Angular]({% slug overview_numerictextbox %}).\n */\nclass NumericTextBoxComponent {\n constructor(intl, renderer, localizationService, injector, ngZone, changeDetector, hostElement) {\n this.intl = intl;\n this.renderer = renderer;\n this.localizationService = localizationService;\n this.injector = injector;\n this.ngZone = ngZone;\n this.changeDetector = changeDetector;\n this.hostElement = hostElement;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Determines whether the NumericTextBox is disabled ([see example]({% slug disabled_numerictextbox %})).\n */\n this.disabled = false;\n /**\n * Determines whether the NumericTextBox is in its read-only state ([see example]({% slug readonly_numerictextbox %})).\n */\n this.readonly = false;\n /**\n * Sets the title of the `input` element of the NumericTextBox.\n */\n this.title = '';\n /**\n * Specifies whether the value will be auto-corrected based on the minimum and maximum values\n * ([see example]({% slug precision_numerictextbox %})).\n */\n this.autoCorrect = false;\n /**\n * Specifies the number of decimals that the user can enter when the input is focused\n * ([see example]({% slug precision_numerictextbox %})).\n */\n this.decimals = null;\n /**\n * Specifies the value that is used to increment or decrement the component value\n * ([see example]({% slug predefinedsteps_numerictextbox %})).\n */\n this.step = 1;\n /**\n * Specifies whether the **Up** and **Down** spin buttons will be rendered\n * ([see example]({% slug spinbuttons_numerictextbox %})).\n */\n this.spinners = true;\n /**\n * Determines whether the built-in minimum or maximum validators are enforced when a form is validated.\n *\n * > The 4.2.0 Angular version introduces the `min` and `max` validation directives. As a result, even if you set `rangeValidation`\n * to `false`, the built-in Angular validators will be executed.\n */\n this.rangeValidation = true;\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n this.tabindex = 0;\n /**\n * Determines whether the whole value will be selected when the NumericTextBox is clicked. Defaults to `true`.\n */\n this.selectOnFocus = true;\n /**\n * Specifies the value of the NumericTextBox\n * ([see example]({% slug formats_numerictextbox %})).\n */\n this.value = null;\n /**\n * Fires each time the user selects a new value ([see example]({% slug overview_numerictextbox %}#toc-events)).\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time the user focuses the `input` element ([see example]({% slug overview_numerictextbox %}#toc-events)).\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires each time the `input` element gets blurred ([see example]({% slug overview_numerictextbox %}#toc-events)).\n */\n this.onBlur = new EventEmitter();\n /**\n * @hidden\n */\n this.ArrowDirection = ArrowDirection;\n /**\n * @hidden\n */\n this.arrowDirection = ArrowDirection.None;\n this.inputValue = '';\n this.minValidateFn = noop;\n this.maxValidateFn = noop;\n this._format = \"n2\";\n this.isPasted = false;\n this.mouseDown = false;\n this.ngChange = noop;\n this.ngTouched = noop;\n this.ngValidatorChange = noop;\n /**\n * @hidden\n */\n this.increasePress = (e) => {\n this.arrowPress(ArrowDirection.Up, e);\n };\n /**\n * @hidden\n */\n this.decreasePress = (e) => {\n this.arrowPress(ArrowDirection.Down, e);\n };\n /**\n * @hidden\n */\n this.releaseArrow = () => {\n clearTimeout(this.spinTimeout);\n if (this.arrowDirection !== ArrowDirection.None) {\n this.arrowDirection = ArrowDirection.None;\n this.changeDetector.detectChanges();\n }\n };\n /**\n * @hidden\n */\n this.handlePaste = () => {\n this.isPasted = true;\n };\n /**\n * @hidden\n */\n this.handleInput = () => {\n const input = this.numericInput.nativeElement;\n let { selectionStart, selectionEnd, value: inputValue } = input;\n if (this.pressedKey === Keys.NumpadDecimal) {\n inputValue = this.replaceNumpadDotValue();\n }\n if (this.isPasted) {\n inputValue = this.formatInputValue(this.intl.parseNumber(inputValue));\n }\n if (!this.isValid(inputValue)) {\n input.value = this.inputValue;\n this.setSelection(selectionStart - 1, selectionEnd - 1);\n return;\n }\n const parsedValue = this.intl.parseNumber(inputValue);\n let value = this.restrictDecimals(parsedValue);\n if (this.autoCorrect) {\n const limited = this.limitInputValue(value);\n value = limited.value;\n selectionStart = limited.selectionStart;\n selectionEnd = limited.selectionEnd;\n }\n if (parsedValue !== value || this.hasTrailingZeros(inputValue) || !this.focused) {\n this.setInputValue(value);\n this.setSelection(selectionStart, selectionEnd);\n }\n else {\n this.inputValue = inputValue;\n }\n if (this.isPasted) {\n input.value = this.inputValue;\n }\n this.updateValue(value);\n this.previousSelection = null;\n this.isPasted = false;\n };\n /**\n * @hidden\n */\n this.handleDragEnter = () => {\n if (!this.focused && !this.isDisabled) {\n this.setInputValue(this.value, true);\n }\n };\n /**\n * @hidden\n */\n this.handleMouseDown = () => {\n this.mouseDown = true;\n };\n /**\n * @hidden\n */\n this.handleFocus = () => {\n if (!this.focused) {\n this.focused = true;\n if (!this.isDisabled) {\n const shouldSelectAll = this.selectOnFocus || !this.mouseDown;\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (shouldSelectAll) {\n this.selectAll();\n }\n else {\n this.selectCaret();\n }\n }, 0);\n });\n }\n }\n this.mouseDown = false;\n if (hasObservers(this.onFocus)) {\n this.ngZone.run(() => {\n this.onFocus.emit();\n });\n }\n };\n /**\n * @hidden\n */\n this.handleBlur = () => {\n this.changeDetector.markForCheck();\n this.focused = false;\n //blur is thrown before input when dragging the input text in IE\n if (this.inputValue !== this.elementValue) {\n this.handleInput();\n }\n this.setInputValue();\n if (hasObservers(this.onBlur) || requiresZoneOnBlur(this.control)) {\n this.ngZone.run(() => {\n this.ngTouched();\n this.onBlur.emit();\n });\n }\n };\n /**\n * @hidden\n */\n this.handleKeyDown = (e) => {\n if (this.isDisabled) {\n return;\n }\n let step;\n if (e.keyCode === Keys.ArrowDown) {\n step = -1;\n }\n else if (e.keyCode === Keys.ArrowUp) {\n step = 1;\n }\n if (step && this.step) {\n e.preventDefault();\n this.addStep(step);\n }\n const input = this.numericInput.nativeElement;\n this.previousSelection = {\n end: input.selectionEnd,\n start: input.selectionStart\n };\n this.pressedKey = e.keyCode;\n };\n /**\n * @hidden\n */\n this.handleWheel = (e) => {\n if (this.focused && !this.isDisabled) {\n e.preventDefault();\n const delta = getDeltaFromMouseWheel(e);\n this.addStep(delta);\n }\n };\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n }\n /**\n * Specifies the number format which is used when the NumericTextBox is not focused\n * ([see example]({% slug formats_numerictextbox %})).\n * If `format` is set to `null` or `undefined`, the default format will be used.\n */\n get format() {\n const format = this._format;\n return format !== null && format !== undefined ? format : 'n2';\n }\n set format(value) {\n this._format = value;\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n get widgetClasses() {\n return true;\n }\n ngOnInit() {\n this.subscriptions = this.localizationService\n .changes\n .subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n this.subscriptions.add(this.intl.changes.subscribe(this.intlChange.bind(this)));\n if (this.hostElement) {\n this.renderer.removeAttribute(this.hostElement.nativeElement, \"tabindex\");\n }\n this.control = this.injector.get(NgControl, null);\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (anyChanged(PARSABLE_OPTIONS, changes, false)) {\n this.parseOptions(PARSABLE_OPTIONS.filter(option => changes[option]));\n }\n this.verifySettings();\n if (anyChanged(['min', 'max', 'rangeValidation'], changes, false)) {\n this.minValidateFn = this.rangeValidation ? createMinValidator(this.min) : noop;\n this.maxValidateFn = this.rangeValidation ? createMaxValidator(this.max) : noop;\n this.ngValidatorChange();\n }\n if (anyChanged(['autoCorrect', 'decimals', 'min'], changes)) {\n delete this.numericRegex;\n }\n if (anyChanged(['value', 'format'], changes, false)) {\n this.verifyValue(this.value);\n this.value = this.restrictModelValue(this.value);\n if (!this.focused || (this.intl.parseNumber(this.elementValue) !== this.value)) {\n this.setInputValue();\n }\n }\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n clearTimeout(this.spinTimeout);\n }\n /**\n * @hidden\n */\n validate(control) {\n return this.minValidateFn(control) || this.maxValidateFn(control);\n }\n /**\n * @hidden\n */\n registerOnValidatorChange(fn) {\n this.ngValidatorChange = fn;\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.verifyValue(value);\n let restrictedValue = this.restrictModelValue(value);\n this.value = restrictedValue;\n this.setInputValue();\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.ngChange = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.ngTouched = fn;\n }\n /**\n * @hidden\n * Called when the status of the component changes to or from `disabled`.\n * Depending on the value, it enables or disables the appropriate DOM element.\n *\n * @param isDisabled\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * Focuses the NumericTextBox.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n invokeElementMethod(this.numericInput, 'focus');\n }\n /**\n * Blurs the NumericTextBox.\n */\n blur() {\n invokeElementMethod(this.numericInput, 'blur');\n }\n /**\n * Notifies the `NumericTextBoxComponent` that the input value should be changed.\n * Can be used to update the input after setting the component properties directly.\n */\n notifyValueChange() {\n this.setInputValue();\n }\n /**\n * @hidden\n */\n get incrementTitle() {\n return this.localizationService.get('increment');\n }\n /**\n * @hidden\n */\n get decrementTitle() {\n return this.localizationService.get('decrement');\n }\n get decimalSeparator() {\n const numberSymbols = this.intl.numberSymbols();\n return numberSymbols.decimal;\n }\n get elementValue() {\n return this.numericInput.nativeElement.value;\n }\n set elementValue(value) {\n this.renderer.setProperty(this.numericInput.nativeElement, 'value', value);\n }\n get focused() {\n return this.isFocused;\n }\n get hasDecimals() {\n return this.decimals !== null && this.decimals >= 0;\n }\n set focused(value) {\n if (this.isFocused !== value && this.numericWrap) {\n const wrap = this.numericWrap.nativeElement;\n const input = this.numericInput.nativeElement;\n if (value) {\n this.renderer.addClass(wrap, FOCUSED$2);\n if (!this.isDisabled) {\n this.renderer.removeClass(input, FORMATTED_VALUE);\n }\n }\n else {\n this.renderer.removeClass(wrap, FOCUSED$2);\n this.renderer.addClass(input, FORMATTED_VALUE);\n }\n this.isFocused = value;\n }\n }\n get isDisabled() {\n return this.disabled || this.readonly;\n }\n arrowPress(direction, e) {\n e.preventDefault();\n if (this.isDisabled) {\n return;\n }\n if (!mobileOS) {\n this.focused = true;\n this.focus();\n }\n if (this.arrowDirection !== direction) {\n this.arrowDirection = direction;\n this.changeDetector.detectChanges();\n }\n if (this.step) {\n this.spin(direction, INITIAL_SPIN_DELAY);\n }\n else {\n this.setInputValue();\n }\n }\n updateValue(value) {\n if (!areSame(this.value, value)) {\n this.ngZone.run(() => {\n this.value = value;\n this.ngChange(value);\n this.valueChange.emit(value);\n this.changeDetector.markForCheck();\n });\n }\n }\n replaceNumpadDotValue() {\n let value = this.inputValue || \"\";\n if (this.previousSelection) {\n const input = this.numericInput.nativeElement;\n const { selectionStart, selectionEnd } = input;\n const { start, end } = this.previousSelection;\n input.value = value = value.substring(0, start) + this.decimalSeparator + value.substring(end);\n this.setSelection(selectionStart, selectionEnd);\n }\n return value;\n }\n isValid(value) {\n if (!this.numericRegex) {\n this.numericRegex = numericRegex({\n autoCorrect: this.autoCorrect,\n decimals: this.decimals,\n min: this.min,\n separator: this.decimalSeparator\n });\n }\n return this.numericRegex.test(value);\n }\n spin(step, timeout) {\n clearTimeout(this.spinTimeout);\n this.spinTimeout = window.setTimeout(() => {\n this.spin(step, SPIN_DELAY);\n }, timeout);\n this.addStep(step);\n }\n addStep(step) {\n let value = add(this.value || 0, this.step * step);\n value = this.limitValue(value);\n value = this.restrictDecimals(value);\n this.setInputValue(value);\n this.updateValue(value);\n }\n setSelection(start, end) {\n if (this.focused) {\n invokeElementMethod(this.numericInput, 'setSelectionRange', start, end);\n }\n }\n limitValue(value) {\n let result = value;\n if (!this.isInRange(value)) {\n if (isNumber(this.max) && value > this.max) {\n result = this.max;\n }\n if (isNumber(this.min) && value < this.min) {\n result = this.min;\n }\n }\n return result;\n }\n limitInputValue(value) {\n let { selectionStart, selectionEnd, value: enteredValue } = this.numericInput.nativeElement;\n let limitedValue = value;\n let selectToEnd = false;\n if (!this.isInRange(value)) {\n const lengthChange = enteredValue.length - String(this.inputValue).length;\n const { min, max } = this;\n const hasMax = isNumber(max);\n const hasMin = isNumber(min);\n let padLimit, replaceNext;\n let correctedValue = value;\n if (selectionStart === 0 && this.inputValue.substr(1) === enteredValue) {\n return {\n selectionEnd: selectionEnd,\n selectionStart: selectionStart,\n value: null\n };\n }\n if (hasMax && value > max) {\n if (value > 0) {\n replaceNext = true;\n }\n else {\n padLimit = max;\n }\n }\n else if (hasMin && value < min) {\n if (value > 0) {\n padLimit = min;\n }\n else {\n replaceNext = true;\n }\n }\n if (padLimit) {\n const paddedValue = this.tryPadValue(value, padLimit);\n if (paddedValue && decimalPart(value) !== decimalPart(padLimit)) {\n correctedValue = paddedValue;\n selectToEnd = true;\n }\n }\n else if (replaceNext) {\n if (this.inputValue && selectionStart !== enteredValue.length) {\n correctedValue = parseFloat(enteredValue.substr(0, selectionStart) +\n enteredValue.substr(selectionStart + lengthChange));\n }\n }\n limitedValue = this.limitValue(correctedValue);\n selectToEnd = (selectToEnd || limitedValue !== correctedValue) && this.previousSelection &&\n (this.previousSelection.end - this.previousSelection.start + lengthChange) > 0;\n }\n return {\n selectionEnd: selectToEnd ? String(limitedValue).length : selectionEnd,\n selectionStart: selectionStart,\n value: limitedValue\n };\n }\n tryPadValue(value, limit) {\n const limitLength = String(Math.floor(limit)).length;\n const zeroPadded = pad(value, limitLength);\n const zeroPaddedNext = pad(value, limitLength + 1);\n let result;\n if (this.isInRange(zeroPadded)) {\n result = zeroPadded;\n }\n else if (this.isInRange(zeroPaddedNext)) {\n result = zeroPaddedNext;\n }\n return result;\n }\n isInRange(value) {\n return !isNumber(value) || ((!isNumber(this.min) || this.min <= value) && (!isNumber(this.max) || value <= this.max));\n }\n restrictModelValue(value) {\n let result = this.restrictDecimals(value, true);\n if (this.autoCorrect && this.limitValue(result) !== result) {\n result = null;\n }\n return result;\n }\n restrictDecimals(value, round) {\n let result = value;\n if (value && this.hasDecimals) {\n const decimals = this.decimals;\n const stringValue = String(value);\n if (round || EXPONENT_REGEX.test(stringValue)) {\n result = toFixedPrecision(value, decimals);\n }\n else {\n const parts = stringValue.split(POINT);\n let fraction = parts[1];\n if (fraction && fraction.length > decimals) {\n fraction = fraction.substr(0, decimals);\n result = parseFloat(`${parts[0]}${POINT}${fraction}`);\n }\n }\n }\n return result;\n }\n formatInputValue(value) {\n let stringValue = String(value);\n const exponentMatch = EXPONENT_REGEX.exec(stringValue);\n if (exponentMatch) {\n stringValue = value.toFixed(limitPrecision(parseInt(exponentMatch[1], 10)));\n }\n return stringValue.replace(POINT, this.decimalSeparator);\n }\n formatValue(value, focused) {\n let formattedValue;\n if (value === null || !defined(value) || value === '') {\n formattedValue = '';\n }\n else if (focused && !this.readonly) {\n formattedValue = this.formatInputValue(value);\n }\n else {\n formattedValue = this.intl.formatNumber(value, this.format);\n }\n return formattedValue;\n }\n setInputValue(value = this.value, focused = this.focused) {\n const formattedValue = this.formatValue(value, focused);\n this.elementValue = formattedValue;\n this.inputValue = formattedValue;\n }\n verifySettings() {\n if (!isDevMode()) {\n return;\n }\n if (this.min !== null && this.max !== null && this.min > this.max) {\n throw new Error(`The max value should be bigger than the min. See ${MIN_DOC_LINK} and ${MAX_DOC_LINK}.`);\n }\n }\n verifyValue(value) {\n if (isDevMode() && value && typeof value !== 'number') {\n throw new Error(`The NumericTextBox component requires value of type Number and ${JSON.stringify(value)} was set.`);\n }\n }\n parseOptions(options) {\n for (let idx = 0; idx < options.length; idx++) {\n const name = options[idx];\n const value = this[name];\n if (typeof value === 'string') {\n const parsed = parseFloat(value);\n const valid = !isNaN(parsed);\n if (isDevMode() && !valid && value !== '') {\n throw new Error('The NumericTextBox component requires value of type Number or a String representing ' +\n `a number for the ${name} property and ${JSON.stringify(value)} was set.`);\n }\n this[name] = valid ? parsed : PARSABLE_DEFAULTS[name];\n }\n }\n }\n intlChange() {\n delete this.numericRegex;\n if (this.numericInput && (!this.focused || !this.isValid(this.elementValue))) {\n this.setInputValue();\n }\n }\n hasTrailingZeros(inputValue) {\n if (this.hasDecimals && this.focused) {\n const fraction = inputValue.split(this.decimalSeparator)[1];\n return fraction && fraction.length > this.decimals && fraction.lastIndexOf('0') === fraction.length - 1;\n }\n }\n selectAll() {\n this.setInputValue();\n this.setSelection(0, this.inputValue.length);\n }\n selectCaret() {\n const caretPosition = getCaretPosition(this.numericInput.nativeElement);\n const formattedValue = this.elementValue;\n const partialValue = formattedValue.substring(0, caretPosition);\n this.setInputValue();\n if (partialValue.length) {\n const significantCharsInFormattedValue = extractSignificantNumericChars(partialValue, this.decimalSeparator);\n const adjustedSignificantChars = this.adjustSignificantChars(formattedValue, significantCharsInFormattedValue);\n this.setSelection(adjustedSignificantChars, adjustedSignificantChars);\n }\n else {\n this.setSelection(0, 0);\n }\n }\n numberOfLeadingZeroes(formattedValue) {\n const separatorIndex = formattedValue.indexOf(this.decimalSeparator);\n const matchedLeadingZeroes = formattedValue.match(/^[^1-9]*?(0+)/);\n if (matchedLeadingZeroes) {\n const lengthOfMatch = matchedLeadingZeroes[0].length;\n const lengthOfLeadingZeroesMatch = matchedLeadingZeroes[1].length;\n return lengthOfMatch === separatorIndex ? lengthOfLeadingZeroesMatch - 1 : lengthOfLeadingZeroesMatch;\n }\n return 0;\n }\n adjustSignificantChars(formattedValue, significantChars) {\n const leadingZeroes = this.numberOfLeadingZeroes(formattedValue);\n if (leadingZeroes > 0) {\n return Math.max(0, significantChars - leadingZeroes);\n }\n return significantChars;\n }\n}\nNumericTextBoxComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoNumericTextBox',\n providers: [\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.numerictextbox' },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NumericTextBoxComponent), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => NumericTextBoxComponent), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => NumericTextBoxComponent) }\n ],\n selector: 'kendo-numerictextbox',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nNumericTextBoxComponent.ctorParameters = () => [\n { type: IntlService },\n { type: Renderer2 },\n { type: LocalizationService },\n { type: Injector },\n { type: NgZone },\n { type: ChangeDetectorRef },\n { type: ElementRef }\n];\nNumericTextBoxComponent.propDecorators = {\n focusableId: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n title: [{ type: Input }],\n autoCorrect: [{ type: Input }],\n format: [{ type: Input }],\n max: [{ type: Input }],\n min: [{ type: Input }],\n decimals: [{ type: Input }],\n placeholder: [{ type: Input }],\n step: [{ type: Input }],\n spinners: [{ type: Input }],\n rangeValidation: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input }],\n selectOnFocus: [{ type: Input }],\n value: [{ type: Input }],\n valueChange: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n numericInput: [{ type: ViewChild, args: ['numericInput', { static: true },] }],\n numericWrap: [{ type: ViewChild, args: ['numericWrap',] }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n widgetClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-numerictextbox',] }]\n};\n\n/**\n * @hidden\n */\nclass NumericTextBoxMessages extends ComponentMessages {\n}\nNumericTextBoxMessages.propDecorators = {\n decrement: [{ type: Input }],\n increment: [{ type: Input }]\n};\n\n/**\n * Custom component messages override default component messages.\n */\nclass NumericTextBoxCustomMessagesComponent extends NumericTextBoxMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nNumericTextBoxCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: NumericTextBoxMessages,\n useExisting: forwardRef(() => NumericTextBoxCustomMessagesComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-numerictextbox-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nNumericTextBoxCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * @hidden\n */\nvar ResultType;\n(function (ResultType) {\n ResultType[ResultType[\"Literal\"] = 0] = \"Literal\";\n ResultType[ResultType[\"Mask\"] = 1] = \"Mask\";\n ResultType[ResultType[\"Undefined\"] = 2] = \"Undefined\";\n})(ResultType || (ResultType = {}));\n/**\n * @hidden\n */\nclass Result {\n constructor(value, rest, type = ResultType.Undefined) {\n this.value = value;\n this.rest = rest;\n this.type = type;\n }\n //map :: Functor f => f a ~> (a -> b) -> f b\n map(fn) {\n return new Result(fn(this.value), this.rest);\n }\n //chain :: Chain m => m a ~> (a -> m b) -> m b\n chain(fn) {\n return fn(this.value, this.rest);\n }\n fold(s, _ /*we don't need it*/) {\n return s(this.value, this.rest);\n }\n concat(r) {\n return this.map((vs, _) => r.chain((v, __) => vs.concat([v])));\n }\n toString() {\n return `Result({ value: '${this.value}', rest: ${this.rest} })`;\n }\n}\n\n/**\n * @hidden\n */\nclass Stream {\n constructor(input = [], control = []) {\n this.input = input;\n this.control = control;\n this.inputCursor = 0;\n this.controlCursor = 0;\n }\n eof() {\n return this.inputCursor >= this.input.length;\n }\n // Get the first value from the input.\n next() {\n return {\n char: this.input[this.inputCursor++],\n control: this.control[this.controlCursor++]\n };\n }\n peek() {\n return {\n char: this.input[this.inputCursor],\n control: this.control[this.controlCursor]\n };\n }\n eat_input() {\n this.inputCursor++;\n }\n eat_control() {\n this.controlCursor++;\n }\n eat() {\n this.inputCursor++;\n this.controlCursor++;\n }\n}\n\nconst toArray = (value) => (value || '').split('');\nconst ESCAPE_CHARACTER = '\\\\';\n/**\n * @hidden\n */\nclass Parser {\n constructor(parse) {\n this.parse = parse;\n }\n run(input, control = '') {\n if (input instanceof Stream) {\n return this.parse(input);\n }\n else {\n return this.parse(new Stream(toArray(input), toArray(control)));\n }\n }\n //map :: Functor f => f a ~> (a -> b) -> f b\n map(f) {\n return new Parser(stream => this.parse(stream).map(f));\n }\n //chain :: Chain m => m a ~> (a -> m b) -> m b\n chain(f) {\n return new Parser(stream => this.parse(stream).chain((v, s) => f(v).run(s)));\n }\n isLiteral(c) {\n return this.run(c).type === ResultType.Literal;\n }\n}\n/**\n * @hidden\n */\nconst mask = ({ prompt, promptPlaceholder }) => rule => new Parser(stream => {\n while (!stream.eof()) {\n const { char, control } = stream.peek();\n if (char === control && control === prompt) {\n stream.eat();\n return new Result(prompt, stream, ResultType.Mask);\n }\n if (rule.test(char)) {\n stream.eat();\n return new Result(char, stream, ResultType.Mask);\n }\n if (char === promptPlaceholder) {\n stream.eat();\n return new Result(prompt, stream, ResultType.Mask);\n }\n stream.eat_input();\n }\n stream.eat();\n return new Result(prompt, stream, ResultType.Mask);\n});\n/**\n * @hidden\n */\nconst literal = _token => new Parser(stream => {\n // let {char, control} = stream.peek();\n let char = stream.peek().char;\n if (char === _token) {\n stream.eat();\n return new Result(_token, stream, ResultType.Literal);\n }\n // if (control === _token) {\n // while (!stream.eof() && char !== _token) {\n // stream.eat_input();\n // char = stream.peek().char;\n // }\n // }\n //\n // if (control !== undefined) {\n // stream.eat();\n // }\n return new Result(_token, stream, ResultType.Literal);\n});\n/**\n * @hidden\n */\nconst unmask = prompt => rule => new Parser(stream => {\n while (!stream.eof()) {\n const { char, control } = stream.peek();\n if (char === prompt && control === prompt) {\n stream.eat();\n return new Result(char, stream);\n }\n if (rule.test(char)) {\n stream.eat();\n return new Result(char, stream);\n }\n stream.eat_input();\n }\n stream.eat();\n return new Result('', stream);\n});\n/**\n * @hidden\n */\nconst unliteral = _token => new Parser(stream => {\n if (stream.eof()) {\n return new Result('', stream);\n }\n const { char } = stream.peek();\n if (char === _token) {\n stream.eat();\n }\n return new Result(_token, stream);\n});\n/**\n * @hidden\n */\nconst token = (rules, creator) => new Parser(stream => {\n let { char } = stream.next();\n const rule = rules[char];\n if (char === ESCAPE_CHARACTER) {\n char = stream.next().char;\n return new Result(creator.literal(char), stream);\n }\n if (!rule) {\n return new Result(creator.literal(char), stream);\n }\n return new Result(creator.mask(rule), stream);\n});\n/**\n * @hidden\n */\nconst rawMask = ({ prompt, promptPlaceholder }) => new Parser(stream => {\n let { char } = stream.next();\n if (char === prompt) {\n return new Result(promptPlaceholder, stream);\n }\n return new Result(char, stream);\n});\n/**\n * @hidden\n */\nconst rawLiteral = includeLiterals => new Parser(stream => {\n let { char } = stream.next();\n if (includeLiterals) {\n return new Result(char, stream);\n }\n return new Result('', stream);\n});\n\n/**\n * @hidden\n */\nconst always = value => new Parser(stream => new Result(value, stream));\n/**\n * @hidden\n */\nconst append = (p1, p2) => p1.chain(vs => p2.map(v => vs.concat([v])));\n/**\n * @hidden\n */\nconst sequence = list => list.reduce((acc, parser) => append(acc, parser), always([]));\n/**\n * @hidden\n */\nconst greedy = parser => new Parser(stream => {\n let result = new Result([], stream);\n while (!stream.eof()) {\n result = result.concat(parser.run(stream));\n }\n return result;\n});\n\n/**\n * @hidden\n */\nclass MaskingService {\n constructor() {\n this.rules = {};\n this.prompt = \"_\";\n this.mask = \"\";\n this.promptPlaceholder = \" \";\n this.includeLiterals = false;\n this.maskTokens = [];\n this.unmaskTokens = [];\n this.rawTokens = [];\n this.validationTokens = [];\n }\n update({ mask: mask$$1 = '', prompt = '', promptPlaceholder = ' ', rules = {}, includeLiterals = false }) {\n this.mask = mask$$1;\n this.prompt = prompt;\n this.promptPlaceholder = promptPlaceholder;\n this.rules = rules;\n this.includeLiterals = includeLiterals;\n this.tokenize();\n }\n validationValue(maskedValue = '') {\n let value = maskedValue;\n sequence(this.validationTokens)\n .run(maskedValue)\n .fold(unmasked => {\n value = unmasked.join('');\n });\n return value;\n }\n rawValue(maskedValue = '') {\n let value = maskedValue;\n if (!this.rawTokens.length) {\n return value;\n }\n sequence(this.rawTokens)\n .run(maskedValue)\n .fold(unmasked => {\n value = unmasked.join('');\n });\n return value;\n }\n /**\n * @hidden\n */\n maskRaw(rawValue = '') {\n let value = rawValue;\n if (!this.maskTokens.length) {\n return value;\n }\n sequence(this.maskTokens)\n .run(rawValue)\n .fold(masked => {\n value = masked.join('');\n });\n return value;\n }\n maskInput(input, control, splitPoint) {\n if (input.length < control.length) {\n return this.maskRemoved(input, control, splitPoint);\n }\n return this.maskInserted(input, control, splitPoint);\n }\n maskInRange(pasted, oldValue, start, end) {\n let value = '';\n let selection = end;\n const beforeChange = oldValue.split('').slice(0, start);\n const afterChange = oldValue.split('').slice(end);\n sequence(this.maskTokens.slice(start, end))\n .run(pasted)\n .fold(masked => {\n value = beforeChange\n .concat(masked)\n .concat(afterChange)\n .join('');\n });\n return {\n selection,\n value\n };\n }\n maskRemoved(input, control, splitPoint) {\n let value = '';\n let selection = splitPoint;\n const unchanged = input.split('').slice(splitPoint);\n const changed = input.split('').slice(0, splitPoint).join('');\n const take$$1 = this.maskTokens.length - (input.length - splitPoint);\n sequence(this.maskTokens.slice(0, take$$1))\n .run(changed, control)\n .fold(masked => {\n selection = this.adjustPosition(masked, selection);\n value = masked.concat(unchanged).join('');\n });\n return {\n selection,\n value\n };\n }\n adjustPosition(input, selection) {\n const caretChar = input[selection];\n const isLiteral = this.maskTokens[selection].isLiteral(caretChar);\n if (!isLiteral && caretChar !== this.prompt) {\n return selection + 1;\n }\n return selection;\n }\n maskInserted(input, control, splitPoint) {\n let value = '';\n let selection = splitPoint;\n const changed = input.slice(0, splitPoint);\n sequence(this.unmaskTokens)\n .run(changed, control)\n .chain(unmasked => {\n selection = unmasked.join('').length;\n const unchanged = control.slice(selection);\n return sequence(this.maskTokens)\n .run(unmasked.join('') + unchanged, control);\n })\n .fold(masked => {\n value = masked.join('');\n });\n return {\n selection,\n value\n };\n }\n get maskTokenCreator() {\n const { prompt, promptPlaceholder } = this;\n return {\n literal: rule => literal(rule),\n mask: rule => mask({ prompt, promptPlaceholder })(rule)\n };\n }\n get unmaskTokenCreator() {\n return {\n literal: rule => unliteral(rule),\n mask: rule => unmask(this.prompt)(rule)\n };\n }\n get rawTokenCreator() {\n const { prompt, promptPlaceholder, includeLiterals } = this;\n return {\n literal: _ => rawLiteral(includeLiterals),\n mask: _ => rawMask({ prompt, promptPlaceholder })\n };\n }\n get validationTokenCreator() {\n const { prompt } = this;\n return {\n literal: _ => rawLiteral(false),\n mask: _ => rawMask({ prompt, promptPlaceholder: '' })\n };\n }\n tokenize() {\n greedy(token(this.rules, this.maskTokenCreator))\n .run(this.mask)\n .fold((tokens, _) => {\n this.maskTokens = tokens;\n });\n greedy(token(this.rules, this.unmaskTokenCreator))\n .run(this.mask)\n .fold((tokens, _) => {\n this.unmaskTokens = tokens;\n });\n greedy(token(this.rules, this.rawTokenCreator))\n .run(this.mask)\n .fold((tokens, _) => {\n this.rawTokens = tokens;\n });\n greedy(token(this.rules, this.validationTokenCreator))\n .run(this.mask)\n .fold((tokens, _) => {\n this.validationTokens = tokens;\n });\n }\n}\nMaskingService.decorators = [\n { type: Injectable },\n];\n\nconst resolvedPromise = Promise.resolve(null);\nconst FOCUSED$3 = 'k-state-focused';\n/**\n * Represents the [Kendo UI MaskedTextBox component for Angular]({% slug overview_maskedtextbox %}).\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public value: string = \"9580128055807792\";\n * public mask: string = \"0000-0000-0000-0000\";\n * }\n * ```\n */\nclass MaskedTextBoxComponent {\n constructor(service, renderer, hostElement, ngZone, injector, changeDetector, rtl) {\n this.service = service;\n this.renderer = renderer;\n this.hostElement = hostElement;\n this.ngZone = ngZone;\n this.injector = injector;\n this.changeDetector = changeDetector;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Determines whether the MaskedTextBox is disabled ([see example]({% slug disabled_maskedtextbox %})).\n */\n this.disabled = false;\n /**\n * Determines whether the MaskedTextBox is in its read-only state ([see example]({% slug readonly_maskedtextbox %})).\n */\n this.readonly = false;\n this.hostClasses = true;\n /**\n * Represents a prompt character for the masked value.\n * @default `_`\n */\n this.prompt = '_';\n /**\n * Indicates a character which represents an empty position in the raw value.\n * @default ' '\n */\n this.promptPlaceholder = ' ';\n /**\n * Indicates whether to include literals in the raw value ([see example]({% slug value_maskedtextbox %})).\n * @default false\n */\n this.includeLiterals = false;\n /**\n * Specifies if the mask should be shown on focus for empty value.\n */\n this.maskOnFocus = false;\n /**\n * Determines whether the built-in mask validator is enforced when a form is validated\n * ([see example]({% slug validation_maskedtextbox %})).\n * @default true\n */\n this.maskValidation = true;\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n this.tabindex = 0;\n /**\n * Fires each time the user focuses the `input` element.\n *\n * > To wire the event programmatically, use the `onFocus` property.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public handleFocus(): void {\n * console.log(\"Component is focused\");\n * }\n * }\n * ```\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the `input` element gets blurred.\n *\n * > To wire the event programmatically, use the `onBlur` property.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public handleBlur(): void {\n * console.log(\"Component is blurred\");\n * }\n * }\n * ```\n */\n this.onBlur = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the value changes.\n */\n this.valueChange = new EventEmitter();\n this.focusClick = false;\n this.defaultRules = {\n \"#\": /[\\d\\s\\+\\-]/,\n \"&\": /[\\S]/,\n \"0\": /[\\d]/,\n \"9\": /[\\d\\s]/,\n \"?\": /[a-zA-Z\\s]/,\n \"A\": /[a-zA-Z0-9]/,\n \"C\": /./,\n \"L\": /[a-zA-Z]/,\n \"a\": /[a-zA-Z0-9\\s]/\n };\n this.isPasted = false;\n this.selection = [0, 0];\n /**\n * @hidden\n */\n this.handleFocus = () => {\n this.focused = true;\n if (this.maskOnFocus && this.emptyMask) {\n this.updateInput(this.service.maskRaw(this.value));\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => { this.setSelection(0, 0); }, 0);\n });\n }\n if (hasObservers(this.onFocus)) {\n this.ngZone.run(() => {\n this.onFocus.emit();\n });\n }\n };\n /**\n * @hidden\n */\n this.handleClick = () => {\n if (this.focused && !this.focusClick) {\n this.focusClick = true;\n const { selectionStart, selectionEnd } = this.input.nativeElement;\n if (selectionStart === selectionEnd) {\n this.setFocusSelection();\n }\n }\n };\n /**\n * @hidden\n */\n this.handleBlur = () => {\n this.changeDetector.markForCheck();\n this.focused = false;\n this.focusClick = false;\n if (this.maskOnFocus && this.emptyMask) {\n this.updateInput(this.maskedValue);\n }\n if (hasObservers(this.onBlur) || requiresZoneOnBlur(this.control)) {\n this.ngZone.run(() => {\n this.onTouched();\n this.onBlur.emit();\n });\n }\n };\n this.onChange = (_) => { };\n this.onTouched = () => { };\n this.direction = rtl ? 'rtl' : 'ltr';\n this.updateService();\n }\n get hostDisabledClass() {\n return this.disabled;\n }\n /**\n * Exposes the RegExp-based mask validation array ([see example]({% slug masks_maskedtextbox %})).\n */\n get rules() {\n return this._rules || this.defaultRules;\n }\n set rules(value) {\n this._rules = Object.assign({}, this.defaultRules, value);\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n ngOnInit() {\n if (this.hostElement) {\n this.renderer.removeAttribute(this.hostElement.nativeElement, \"tabindex\");\n }\n this.control = this.injector.get(NgControl, null);\n }\n /**\n * @hidden\n * Used by the TextBoxContainer to determine if the MaskedTextBox is empty.\n */\n isEmpty() {\n if (this.input) {\n return !Boolean(this.input.nativeElement.value);\n }\n }\n /**\n * @hidden\n */\n handleDragDrop() {\n return false;\n }\n /**\n * Focuses the MaskedTextBox.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n if (!this.input) {\n return;\n }\n this.input.nativeElement.focus();\n this.setFocusSelection();\n }\n /**\n * Blurs the MaskedTextBox.\n */\n blur() {\n if (!this.input) {\n return;\n }\n this.input.nativeElement.blur();\n }\n /**\n * @hidden\n */\n pasteHandler(e) {\n const { selectionStart, selectionEnd } = e.target;\n if (selectionEnd === selectionStart) {\n return;\n }\n this.isPasted = true;\n this.selection = [selectionStart, selectionEnd];\n }\n /**\n * @hidden\n */\n inputHandler(e) {\n const value = e.target.value;\n const [start, end] = this.selection;\n if (!this.mask) {\n this.updateValue(value);\n this.isPasted = false;\n return;\n }\n let result;\n if (this.isPasted) {\n this.isPasted = false;\n const rightPart = this.maskedValue.length - end;\n const to = value.length - rightPart;\n result = this.service.maskInRange(value.slice(start, to), this.maskedValue, start, end);\n }\n else {\n result = this.service.maskInput(value, this.maskedValue, e.target.selectionStart);\n }\n this.updateInput(result.value, result.selection);\n this.updateValue(result.value);\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (changes.value) {\n this.value = this.normalizeValue();\n }\n if (!this.mask) {\n this.updateInput(this.value);\n return;\n }\n const next = this.extractChanges(changes);\n this.updateService(next);\n if (isChanged('value', changes)) {\n const maskedValue = this.service.maskRaw(this.value);\n if (maskedValue !== this.maskedValue) {\n this.updateInput(maskedValue);\n }\n }\n else if (anyChanged(['promptPlaceholder', 'includeLiterals'], changes)) {\n resolvedPromise.then(() => {\n this.updateValue(this.maskedValue);\n });\n }\n else {\n this.updateInput(this.service.maskRaw(this.value));\n }\n }\n /**\n * @hidden\n * Writes a new value to the element.\n */\n writeValue(value) {\n this.value = this.normalizeValue(value);\n this.updateInput(this.service.maskRaw(this.value));\n }\n /**\n * @hidden\n * Sets the function that will be called when a `change` event is triggered.\n */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /**\n * @hidden\n * Sets the function that will be called when a `touch` event is triggered.\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * @hidden\n * Called when the status of the component changes to or from `disabled`.\n * Depending on the value, it enables or disables the appropriate DOM element.\n *\n * @param isDisabled\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n */\n validate(_) {\n if (this.maskValidation === false || !this.mask) {\n return null;\n }\n if (!this.service.validationValue(this.maskedValue)) {\n return null;\n }\n if (this.maskedValue.indexOf(this.prompt) !== -1) {\n return {\n patternError: {\n mask: this.mask,\n maskedValue: this.maskedValue,\n value: this.value\n }\n };\n }\n return null;\n }\n /**\n * @hidden\n */\n updateValue(maskedValue) {\n if (this.mask && !this.service.validationValue(maskedValue)) {\n this.value = '';\n }\n else {\n this.value = this.service.rawValue(maskedValue);\n }\n this.onChange(this.value);\n this.valueChange.emit(this.value);\n }\n updateInput(maskedValue = '', selection) {\n this.maskedValue = maskedValue;\n const value = this.maskOnFocus && !this.focused && this.emptyMask ? '' : maskedValue;\n this.renderer.setProperty(this.input.nativeElement, \"value\", value);\n if (selection !== undefined) {\n this.setSelection(selection, selection);\n }\n }\n extractChanges(changes) {\n return Object.keys(changes).filter(key => key !== 'rules').reduce((obj, key) => {\n obj[key] = changes[key].currentValue;\n return obj;\n }, {}); // tslint:disable-line:align\n }\n updateService(extra) {\n const config = Object.assign({\n includeLiterals: this.includeLiterals,\n mask: this.mask,\n prompt: this.prompt,\n promptPlaceholder: this.promptPlaceholder,\n rules: this.rules\n }, extra); // tslint:disable-line:align\n this.service.update(config);\n }\n setSelection(start = this.selection[0], end = this.selection[1]) {\n if (this.focused) {\n invokeElementMethod(this.input, 'setSelectionRange', start, end);\n }\n }\n get emptyMask() {\n return this.service.maskRaw() === this.maskedValue;\n }\n setFocusSelection() {\n const selectionStart = this.input.nativeElement.selectionStart;\n const index = this.maskedValue ? this.maskedValue.indexOf(this.prompt) : 0;\n if (index >= 0 && index < selectionStart) {\n this.selection = [index, index];\n this.setSelection();\n }\n }\n get focused() {\n return this.isFocused;\n }\n set focused(value) {\n if (this.isFocused !== value && this.hostElement) {\n const element = this.hostElement.nativeElement;\n if (value) {\n this.renderer.addClass(element, FOCUSED$3);\n }\n else {\n this.renderer.removeClass(element, FOCUSED$3);\n }\n this.isFocused = value;\n }\n }\n normalizeValue(value = this.value) {\n const present = isPresent(value);\n if (present && typeof value !== 'string') {\n if (isDevMode()) {\n throw new Error('The MaskedTextBox component supports only string values.');\n }\n return String(value);\n }\n return present ? value : '';\n }\n}\nMaskedTextBoxComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoMaskedTextBox',\n providers: [\n MaskingService,\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MaskedTextBoxComponent) /* tslint:disable-line */\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaskedTextBoxComponent) /* tslint:disable-line */\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => MaskedTextBoxComponent)\n }\n ],\n selector: 'kendo-maskedtextbox',\n template: `\n \n `\n },] },\n];\n/** @nocollapse */\nMaskedTextBoxComponent.ctorParameters = () => [\n { type: MaskingService },\n { type: Renderer2 },\n { type: ElementRef },\n { type: NgZone },\n { type: Injector },\n { type: ChangeDetectorRef },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [RTL,] }] }\n];\nMaskedTextBoxComponent.propDecorators = {\n focusableId: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n title: [{ type: Input }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-maskedtextbox',] }],\n hostDisabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }],\n mask: [{ type: Input }],\n value: [{ type: Input }],\n rules: [{ type: Input }],\n prompt: [{ type: Input }],\n promptPlaceholder: [{ type: Input }],\n includeLiterals: [{ type: Input }],\n maskOnFocus: [{ type: Input }],\n maskValidation: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n valueChange: [{ type: Output }],\n input: [{ type: ViewChild, args: ['input', { static: true },] }],\n pasteHandler: [{ type: HostListener, args: ['paste', ['$event'],] }],\n inputHandler: [{ type: HostListener, args: ['input', ['$event'],] }]\n};\n\n/* tslint:disable:component-selector */\n/**\n * @hidden\n */\nclass SliderTick {\n constructor(value) {\n this.value = value;\n this.classes = {\n 'k-tick': true\n };\n }\n}\n/**\n * @hidden\n */\nclass SliderTicksComponent {\n constructor(rtl) {\n this.rtl = rtl;\n this.wrapperClasses = 'k-reset k-slider-items';\n this.ticks = [];\n }\n ngOnChanges(_) {\n this.createTicks();\n }\n createTicks() {\n const count = calculateTicksCount(this.min, this.max, this.step);\n const largeStep = this.largeStep;\n const tickValueProps = {\n max: this.max,\n min: this.min,\n smallStep: this.step\n };\n let result = [];\n for (let i = 0; i < count; i++) {\n result.push(new SliderTick(calculateValueFromTick(i, tickValueProps)));\n if (largeStep && i % largeStep === 0) {\n result[i].large = true;\n result[i].classes['k-tick-large'] = true;\n }\n }\n if (this.rtl || this.vertical) {\n result = result.reverse();\n }\n if (result.length > 0) {\n Object.assign(result[0].classes, this.endTickClasses(true));\n Object.assign(result[result.length - 1].classes, this.endTickClasses(false));\n }\n this.ticks = result;\n }\n endTickClasses(first) {\n return {\n 'k-first': (first && !this.vertical) || (!first && this.vertical),\n 'k-last': (!first && !this.vertical) || (first && this.vertical)\n };\n }\n}\nSliderTicksComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoSliderTicks]',\n template: `\n
  • \n \n \n \n \n \n  \n \n
  • \n\n \n {{ tickTitle(value) }}\n \n `\n },] },\n];\n/** @nocollapse */\nSliderTicksComponent.ctorParameters = () => [\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [RTL,] }] }\n];\nSliderTicksComponent.propDecorators = {\n wrapperClasses: [{ type: HostBinding, args: ['class',] }],\n tickTitle: [{ type: Input }],\n vertical: [{ type: Input }],\n step: [{ type: Input }],\n largeStep: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n labelTemplate: [{ type: Input }],\n tickElements: [{ type: ViewChildren, args: ['tickElement',] }]\n};\n\n/**\n * @hidden\n */\nclass SliderMessages extends ComponentMessages {\n}\nSliderMessages.propDecorators = {\n decrement: [{ type: Input }],\n increment: [{ type: Input }],\n dragHandle: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass LocalizedSliderMessagesDirective extends SliderMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nLocalizedSliderMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: SliderMessages,\n useExisting: forwardRef(() => LocalizedSliderMessagesDirective) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoSliderLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nLocalizedSliderMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Custom component messages override default component messages.\n */\nclass SliderCustomMessagesComponent extends SliderMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nSliderCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: SliderMessages,\n useExisting: forwardRef(() => SliderCustomMessagesComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-slider-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nSliderCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Slider component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Inputs module\n * import { SliderModule } from '@progress/kendo-angular-inputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, BrowserAnimationsModule, SliderModule], // import Slider module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass SliderModule {\n}\nSliderModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n SliderComponent,\n SliderTicksComponent,\n SliderCustomMessagesComponent,\n LocalizedSliderMessagesDirective,\n LabelTemplateDirective\n ],\n exports: [\n SliderComponent,\n SliderCustomMessagesComponent,\n LocalizedSliderMessagesDirective,\n LabelTemplateDirective\n ],\n imports: [CommonModule, DraggableModule, EventsModule, ResizeSensorModule]\n },] },\n];\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.propDecorators = {\n on: [{ type: Input }],\n off: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass LocalizedSwitchMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nLocalizedSwitchMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedSwitchMessagesDirective) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoSwitchLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nLocalizedSwitchMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Custom component messages override default component messages.\n */\nclass SwitchCustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nSwitchCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => SwitchCustomMessagesComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-switch-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nSwitchCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Switch component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Switch module\n * import { SwitchModule } from '@progress/kendo-angular-inputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, SwitchModule], // import Switch module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass SwitchModule {\n}\nSwitchModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n SwitchComponent,\n SwitchCustomMessagesComponent,\n LocalizedSwitchMessagesDirective\n ],\n exports: [\n SwitchComponent,\n SwitchCustomMessagesComponent,\n LocalizedSwitchMessagesDirective\n ],\n imports: [CommonModule, EventsModule, ResizeSensorModule]\n },] },\n];\n\n/**\n * @hidden\n */\nclass LocalizedNumericTextBoxMessagesDirective extends NumericTextBoxMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nLocalizedNumericTextBoxMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: NumericTextBoxMessages,\n useExisting: forwardRef(() => LocalizedNumericTextBoxMessagesDirective) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoNumericTextBoxLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nLocalizedNumericTextBoxMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the NumericTextBox component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the NumericTextBox module\n * import { NumericTextBoxModule } from '@progress/kendo-angular-inputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, NumericTextBoxModule], // import NumericTextBox module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass NumericTextBoxModule {\n}\nNumericTextBoxModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n LocalizedNumericTextBoxMessagesDirective,\n NumericTextBoxComponent,\n NumericTextBoxCustomMessagesComponent\n ],\n exports: [\n NumericTextBoxComponent,\n NumericTextBoxCustomMessagesComponent\n ],\n imports: [CommonModule, EventsModule]\n },] },\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the MaskedTextBox component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the MaskedTextBox module\n * import { MaskedTextBoxModule } from '@progress/kendo-angular-inputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, MaskedTextBoxModule], // import MaskedTextBox module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass MaskedTextBoxModule {\n}\nMaskedTextBoxModule.decorators = [\n { type: NgModule, args: [{\n declarations: [MaskedTextBoxComponent],\n exports: [MaskedTextBoxComponent],\n imports: [CommonModule, EventsModule]\n },] },\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the TextBox directive.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the TextBox module\n * import { TextBoxModule } from '@progress/kendo-angular-inputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, TextBoxModule], // import TextBox module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass TextBoxModule {\n}\nTextBoxModule.decorators = [\n { type: NgModule, args: [{\n declarations: [TextBoxDirective, TextAreaDirective, TextBoxContainerComponent],\n exports: [TextBoxDirective, TextAreaDirective, TextBoxContainerComponent],\n imports: [CommonModule]\n },] },\n];\n\n/**\n * @hidden\n */\nclass PreventableEvent {\n constructor() {\n this.prevented = false;\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * If the event is prevented by any of its subscribers, returns `true`.\n *\n * @returns - `true` if the default action was prevented. Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * Fires each time the left side of the ColorPicker wrapper is clicked.\n * The event is triggered regardless of whether a ColorPicker icon is set or not.\n *\n * Provides information about the current active color and gives the option to prevent the opening of the popup.\n *\n * @example\n *\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public handleActiveColorClick(event: ActiveColorClickEvent): void {\n * event.preventOpen();\n *\n * console.log('Open prevented:', event.isOpenPrevented());\n * console.log('Current color:', event.color);\n * }\n * }\n * ```\n */\nclass ActiveColorClickEvent {\n /**\n * @hidden\n * @param color Represents the current value of the ColorPicker.\n */\n constructor(color) {\n this.color = color;\n this.openPrevented = false;\n }\n /**\n * Prevents the opening of the popup.\n */\n preventOpen() {\n this.openPrevented = true;\n }\n /**\n * Returns `true` if the popup opening is prevented by any of its subscribers.\n *\n * @returns - Returns `true` if the open action was prevented. Otherwise, returns `false`.\n */\n isOpenPrevented() {\n return this.openPrevented;\n }\n}\n\n/**\n * @hidden\n *\n * Returns the hex or rgba string representation of the color.\n */\nconst parseColor$1 = (value, format, safe = true) => {\n const allowedFormats = ['hex', 'rgba', 'name'];\n if (allowedFormats.indexOf(format) === -1) {\n throw new Error(`Unsupported color output format '${format}'. The available options are 'hex', 'rgba' or 'name'.`);\n }\n if (!isPresent(value)) {\n return;\n }\n if (format === 'name') {\n return nameFormat(value, safe);\n }\n const parsedColor = parseColor(value.trim(), safe);\n if (!isPresent(parsedColor)) {\n return;\n }\n return format === 'hex' ? parsedColor.toCss() : parsedColor.toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns an HSV object representation of the color string.\n */\nconst getHSV = (value, safe = true) => {\n const parsed = parseColor(value, safe);\n if (!isPresent(parsed)) {\n return {};\n }\n return parsed.toHSV();\n};\n/**\n * @hidden\n *\n * Returns an RGBA object representation of the color string.\n */\nconst getRGBA = (value, safe = true) => {\n const parsed = parseColor(value, safe);\n if (!isPresent(parsed)) {\n return {};\n }\n return parsed.toBytes();\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color.\n */\nconst getColorFromHSV = (hsva) => {\n const hue = fitIntoBounds(hsva.h, 0, 359.9);\n const saturation = fitIntoBounds(hsva.s, 0, 1);\n const value = fitIntoBounds(hsva.v, 0, 1);\n const alpha = fitIntoBounds(hsva.a, 0, 1);\n return Color.fromHSV(hue, saturation, value, alpha).toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color based on the `hue`, assuming the `value`, `saturation` and `alpha` have value of `1`.\n */\nconst getColorFromHue = (hue) => {\n return getColorFromHSV({ h: hue, s: 1, v: 1, a: 1 });\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color.\n */\nconst getColorFromRGBA = (rgba) => {\n const red = fitIntoBounds(rgba.r, 0, 255);\n const green = fitIntoBounds(rgba.g, 0, 255);\n const blue = fitIntoBounds(rgba.b, 0, 255);\n const alpha = fitIntoBounds(rgba.a, 0, 1);\n return Color.fromBytes(red, green, blue, alpha).toCssRgba();\n};\n/**\n *\n * @hidden\n */\nfunction nameFormat(value, safe) {\n value = value.toLowerCase().trim();\n if (isPresent(namedColors[value])) {\n return value;\n }\n if (parseColor(value, safe)) {\n value = parseColor(value, safe).toHex();\n }\n const key = Object.keys(namedColors).find(key => namedColors[key] === value);\n if (!key && !safe) {\n throw new Error(`The provided color ${value} is not supported for 'format=\"name\"' property.To display ${value} color, the component 'format' property shoud be set to 'hex' or 'rgba' `);\n }\n return key;\n}\n\n// tslint:disable:max-line-length\n/**\n * @hidden\n */\nconst PALETTEPRESETS = {\n basic: {\n colors: '000000,7f7f7f,880015,ed1c24,ff7f27,fff200,22b14c,00a2e8,3f48cc,a349a4,ffffff,c3c3c3,b97a57,ffaec9,ffc90e,efe4b0,b5e61d,99d9ea,7092be,c8bfe7',\n columns: 10\n },\n office: {\n colors: 'ffffff, 000000, e6e6e6, 435569, 4371c4, ed7e32, a5a4a5, febf04, 5a9bd5, 71ae48, f2f2f3, 7f7f7f, d1cece, d5dde3, dae1f4, fce5d4, deeded, fff2cc, deeaf6, e1efd9, d7d8d8, 585959, aeabab, adbaca, b4c5e7, f6caac, dbdbdb, ffe498, bcd6ee, c5e0b2, bfbfc0, 3f3f3f, 767070, 8595b1, 8fabdb, f5b183, c9c8c9, fed965, 9bc4e5, a8d08d, a5a5a6, 262625, 393939, 334050, 2e5496, c45a11, 7b7b7a, bf9000, 2f75b5, 548235, 7f7f7f, 0b0c0c, 161616, 222a34, 203764, 843d0b, 525252, 7f6000, 1d4d79, 375623',\n columns: 10\n },\n apex: {\n colors: 'ffffff, 000000, c9c2d1, 69676d, ceb966, 9cb084, 6bb1c9, 6585cf, 7e6bc9, a379bb, f2f2f2, 7f7f7f, f4f2f5, e0e0e2, f5f1e0, ebefe6, e1eff4, e0e6f5, e5e1f4, ece4f1, d8d8d8, 595959, e9e6ec, c2c1c5, ebe3c1, d7dfcd, c3dfe9, c1ceeb, cbc3e9, dac9e3, bfbfbf, 3f3f3f, dedae3, a4a3a8, e1d5a3, c3cfb5, a6d0de, a2b5e2, b1a6de, c7aed6, a5a5a5, 262626, 9688a5, 4e4d51, ae9638, 758c5a, 3d8da9, 365bb0, 533da9, 7d4d99, 7f7f7f, 0c0c0c, 635672, 343336, 746425, 4e5d3c, 295e70, 243c75, 372970, 533366',\n columns: 10\n },\n austin: {\n colors: 'ffffff, 000000, caf278, 3e3d2d, 94c600, 71685a, ff6700, 909465, 956b43, fea022, f2f2f2, 7f7f7f, f4fce4, dddcd0, efffc0, e3e1dc, ffe0cb, e8e9df, ece1d6, feecd2, d8d8d8, 595959, e9f9c9, bbb9a1, dfff82, c8c3ba, ffc299, d2d4c0, dac3ad, fed9a6, bfbfbf, 3f3f3f, dff7ae, ada598, cfff43, ada598, ffa365, bcbfa1, c8a585, fec67a, a5a5a5, 262626, a9ea25, 2e2d21, 6f9400, 544e43, bf4d00, 6c6f4b, 6f5032, d77b00, 7f7f7f, 0c0c0c, 74a50f, 1f1e16, 4a6300, 38342d, 7f3300, 484a32, 4a3521, 8f5200',\n columns: 10\n },\n clarity: {\n colors: 'ffffff, 292934, f3f2dc, d2533c, 93a299, ad8f67, 726056, 4c5a6a, 808da0, 79463d, f2f2f2, e7e7ec, e7e5b9, f6dcd8, e9ecea, eee8e0, e4dedb, d8dde3, e5e8ec, e9d6d3, d8d8d8, c4c4d1, d5d185, edbab1, d3d9d6, ded2c2, c9beb8, b2bcc8, ccd1d9, d3aea7, bfbfbf, 8a8aa3, aca73b, e4978a, bec7c1, cdbba3, af9e94, 8c9bac, b2bac6, bd857c, a5a5a5, 56566e, 56531d, a43925, 6b7c72, 866b48, 554840, 39434f, 5c697b, 5a342d, 7f7f7f, 3b3b4b, 22210b, 6d2619, 47534c, 594730, 39302b, 262d35, 3d4652, 3c231e',\n columns: 10\n },\n slipstream: {\n colors: 'ffffff, 000000, b4dcfa, 212745, 4e67c8, 5eccf3, a7ea52, 5dceaf, ff8021, f14124, f2f2f2, 7f7f7f, 8bc9f7, c7cce4, dbe0f4, def4fc, edfadc, def5ef, ffe5d2, fcd9d3, d8d8d8, 595959, 4facf3, 909aca, b8c2e9, beeafa, dbf6b9, beebdf, ffcca6, f9b3a7, bfbfbf, 3f3f3f, 0d78c9, 5967af, 94a3de, 9ee0f7, caf297, 9de1cf, ffb279, f68d7b, a5a5a5, 262626, 063c64, 181d33, 31479f, 11b2eb, 81d319, 34ac8b, d85c00, c3260c, 7f7f7f, 0c0c0c, 021828, 101322, 202f6a, 0b769c, 568c11, 22725c, 903d00, 821908',\n columns: 10\n },\n metro: {\n colors: 'ffffff, 000000, d6ecff, 4e5b6f, 7fd13b, ea157a, feb80a, 00addc, 738ac8, 1ab39f, f2f2f2, 7f7f7f, a7d6ff, d9dde4, e5f5d7, fad0e4, fef0cd, c5f2ff, e2e7f4, c9f7f1, d8d8d8, 595959, 60b5ff, b3bcca, cbecb0, f6a1c9, fee29c, 8be6ff, c7d0e9, 94efe3, bfbfbf, 3f3f3f, 007dea, 8d9baf, b2e389, f272af, fed46b, 51d9ff, aab8de, 5fe7d5, a5a5a5, 262626, 003e75, 3a4453, 5ea226, af0f5b, c58c00, 0081a5, 425ea9, 138677, 7f7f7f, 0c0c0c, 00192e, 272d37, 3f6c19, 750a3d, 835d00, 00566e, 2c3f71, 0c594f',\n columns: 10\n },\n flow: {\n colors: 'ffffff, 000000, dbf5f9, 04617b, 0f6fc6, 009dd9, 0bd0d9, 10cf9b, 7cca62, a5c249, f2f2f2, 7f7f7f, b2e9f2, b4ecfc, c7e2fa, c4eeff, c9fafc, c9faed, e4f4df, edf2da, d8d8d8, 595959, 76d9e8, 6adafa, 90c6f6, 89deff, 93f5f9, 94f6db, cae9c0, dbe6b6, bfbfbf, 3f3f3f, 21b2c8, 20c8f7, 59a9f2, 4fceff, 5df0f6, 5ff2ca, b0dfa0, c9da91, a5a5a5, 262626, 105964, 02485c, 0b5394, 0075a2, 089ca2, 0b9b74, 54a838, 7e9532, 7f7f7f, 0c0c0c, 062328, 01303d, 073763, 004e6c, 05686c, 07674d, 387025, 546321',\n columns: 10\n },\n hardcover: {\n colors: 'ffffff, 000000, ece9c6, 895d1d, 873624, d6862d, d0be40, 877f6c, 972109, aeb795, f2f2f2, 7f7f7f, e1dca5, f2e0c6, f0d0c9, f6e6d5, f5f2d8, e7e5e1, fbc7bc, eef0e9, d8d8d8, 595959, d0c974, e6c28d, e2a293, eeceaa, ece5b2, cfccc3, f78f7a, dee2d4, bfbfbf, 3f3f3f, a29a36, daa454, d4735e, e6b681, e2d88c, b7b2a5, f35838, ced3bf, a5a5a5, 262626, 514d1b, 664515, 65281a, a2641f, a39428, 655f50, 711806, 879464, 7f7f7f, 0c0c0c, 201e0a, 442e0e, 431b11, 6c4315, 6d621a, 433f35, 4b1004, 5a6243',\n columns: 10\n },\n trek: {\n colors: 'ffffff, 000000, fbeec9, 4e3b30, f0a22e, a5644e, b58b80, c3986d, a19574, c17529, f2f2f2, 7f7f7f, f7e09e, e1d6cf, fcecd5, eddfda, f0e7e5, f3eae1, ece9e3, f5e3d1, d8d8d8, 595959, f3cc5f, c4ad9f, f9d9ab, dcc0b6, e1d0cc, e7d5c4, d9d4c7, ebc7a3, bfbfbf, 3f3f3f, d29f0f, a78470, f6c781, cba092, d2b9b2, dbc1a7, c6bfab, e1ac76, a5a5a5, 262626, 694f07, 3a2c24, c87d0e, 7b4b3a, 926255, a17242, 7b7153, 90571e, 7f7f7f, 0c0c0c, 2a1f03, 271d18, 855309, 523226, 614138, 6b4c2c, 524b37, 603a14',\n columns: 10\n },\n verve: {\n colors: 'ffffff, 000000, d2d2d2, 666666, ff388c, e40059, 9c007f, 68007f, 005bd3, 00349e, f2f2f2, 7f7f7f, bdbdbd, e0e0e0, ffd7e8, ffc6dc, ffb8f1, f1b2ff, c3dcff, b8cfff, d8d8d8, 595959, 9d9d9d, c1c1c1, ffafd1, ff8eba, ff71e4, e365ff, 87baff, 72a0ff, bfbfbf, 3f3f3f, 696969, a3a3a3, ff87ba, ff5597, ff2ad7, d519ff, 4b98ff, 2b71ff, a5a5a5, 262626, 343434, 4c4c4c, e90062, ab0042, 75005f, 4e005f, 00449e, 002676, 7f7f7f, 0c0c0c, 151515, 333333, 9b0041, 72002c, 4e003f, 34003f, 002d69, 00194f',\n columns: 10\n },\n monochrome: {\n colors: '000000, 1a1a1a, 333333, 4d4d4d, 666666, 808080, 999999, b3b3b3, cccccc, e6e6e6, f2f2f2, ffffff',\n columns: 12\n },\n accessible: {\n colors: 'black, grey, darkred, red, darkorange, gold, green, blue, darkblue, purple, white, darkgrey, saddlebrown, pink, orange, yellow, lightgreen, lightskyblue, lightblue, mediumpurple',\n columns: 10\n }\n};\n\nconst DEFAULT_PRESET = 'office';\nconst DEFAULT_ACCESSIBLE_PRESET = 'accessible';\nlet serial = 0;\n/**\n * Represents the [Kendo UI ColorPicker component for Angular]({% slug overview_colorpicker %}).\n * Designed to replace the `` HTML5 tag which is not widely supported in browsers.\n */\nclass ColorPickerComponent {\n constructor(popupService, localizationService) {\n this.popupService = popupService;\n /**\n * @hidden\n */\n this.hostClasses = true;\n /**\n * @hidden\n */\n this.focusableId = `k-colorpicker-${serial++}`;\n /**\n * Sets what view the ColorPicker will render in the popup.\n */\n this.view = 'gradient';\n /**\n * Sets the read-only state of the ColorPicker.\n */\n this.readonly = false;\n /**\n * Sets the disabled state of the ColorPicker.\n */\n this.disabled = false;\n /**\n * Specifies the output format of the ColorPicker.\n * The input value may be in a different format. However, it will be parsed into the output `format`\n * after the component processes it.\n *\n * If the `gradient` view is used with the `opacity` option set to true, this setting will be ignored and `rgba` will be used instead.\n *\n * The supported values are:\n * * `rgba` (default)\n * * `hex`\n * * [`name`](https://www.w3.org/wiki/CSS/Properties/color/keywords)\n */\n this.format = 'rgba';\n /**\n * Fires each time the value is changed.\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time the popup is about to open.\n * This event is preventable. If you cancel it, the popup will remain closed.\n */\n this.open = new EventEmitter();\n /**\n * Fires each time the popup is about to close.\n * This event is preventable. If you cancel it, the popup will remain open.\n */\n this.close = new EventEmitter();\n /**\n * Fires each time ColorPicker is focused.\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires each time the ColorPicker is blurred.\n */\n this.onBlur = new EventEmitter();\n /**\n * Fires each time the left side of the ColorPicker wrapper is clicked.\n * The event is triggered regardless of whether a ColorPicker icon is set or not.\n *\n * The [`ActiveColorClickEvent`]({% slug api_inputs_activecolorclickevent %}) event provides the option to prevent the popup opening.\n */\n this.activeColorClick = new EventEmitter();\n this._tabindex = 0;\n this._popupSettings = { animate: true };\n this._paletteSettings = {};\n this._gradientSettings = { opacity: true, clearButton: false };\n this.notifyNgTouched = () => { };\n this.notifyNgChanged = () => { };\n this.dynamicRTLSubscription = localizationService.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n }\n /**\n * Specifies the value of the initially selected color.\n */\n set value(value) {\n this._value = parseColor$1(value, this.format);\n }\n get value() {\n return this._value;\n }\n /**\n * Configures the popup of the ColorPicker.\n */\n set popupSettings(value) {\n this._popupSettings = Object.assign(this._popupSettings, value);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * Configures the palette that is displayed in the ColorPicker popup.\n */\n set paletteSettings(value) {\n this._paletteSettings = Object.assign(this._paletteSettings, value);\n }\n get paletteSettings() {\n return this._paletteSettings;\n }\n /**\n * Configures the gradient that is displayed in the ColorPicker popup.\n */\n set gradientSettings(value) {\n this._gradientSettings = Object.assign(this._gradientSettings, value);\n }\n get gradientSettings() {\n return this._gradientSettings;\n }\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n set tabindex(value) {\n const tabindex = Number(value);\n const defaultValue = 0;\n this._tabindex = !isNaN(tabindex) ? tabindex : defaultValue;\n }\n get tabindex() {\n return !this.disabled ? this._tabindex : undefined;\n }\n /**\n * Indicates whether the ColorPicker popup is open.\n */\n get isOpen() {\n return isPresent(this.popupRef);\n }\n /**\n * @hidden\n */\n get iconStyles() {\n if (this.iconClass) {\n return this.iconClass;\n }\n if (this.icon) {\n return `k-icon k-i-${this.icon}`;\n }\n }\n ngOnInit() {\n const defaultPreset = (this.format !== 'name') ? DEFAULT_PRESET : DEFAULT_ACCESSIBLE_PRESET;\n const settingsPalette = this._paletteSettings.palette;\n const presetColumns = typeof settingsPalette === 'string' && PALETTEPRESETS[settingsPalette] ?\n PALETTEPRESETS[settingsPalette].columns :\n undefined;\n this._paletteSettings = {\n palette: settingsPalette || defaultPreset,\n tileSize: this._paletteSettings.tileSize || 24,\n columns: this._paletteSettings.columns || presetColumns || 10\n };\n }\n ngOnChanges(changes) {\n if (changes.format && changes.format.currentValue === 'name') {\n this.view = 'palette';\n }\n if (this.view === 'gradient' && this.gradientSettings.opacity) {\n this.format = 'rgba';\n this.value = parseColor$1(this.value, this.format);\n }\n }\n ngOnDestroy() {\n this.closePopup();\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n handleWrapperClick() {\n this.toggleWithEvents(!this.isOpen);\n this.focus();\n }\n /**\n * @hidden\n */\n handleActiveColorClick() {\n this.focus();\n const event = new ActiveColorClickEvent(this.value);\n this.activeColorClick.emit(event);\n if (!event.isOpenPrevented() || this.isOpen) {\n this.handleWrapperClick();\n }\n }\n /**\n * Focuses the wrapper of the ColorPicker.\n */\n focus() {\n if (this.disabled) {\n return;\n }\n this.wrapper.nativeElement.focus();\n }\n /**\n * @hidden\n */\n handleWrapperFocus() {\n if (isPresent(this.palette)) {\n this.palette.nativeElement.focus();\n }\n if (this.isFocused) {\n return;\n }\n this.isFocused = true;\n this.onFocus.emit();\n }\n /**\n * Blurs the ColorPicker.\n */\n blur() {\n this.wrapper.nativeElement.blur();\n }\n /**\n * @hidden\n */\n handleWrapperBlur() {\n if (this.isOpen) {\n return;\n }\n this.isFocused = false;\n this.onBlur.emit();\n this.notifyNgTouched();\n }\n /**\n * Clears the color value of the ColorPicker.\n */\n reset() {\n if (!isPresent(this.value)) {\n return;\n }\n this._value = undefined;\n this.notifyNgChanged(undefined);\n }\n /**\n * Toggles the popup of the ColorPicker.\n * Does not trigger the `open` and `close` events of the component.\n *\n * @param open An optional parameter. Specifies whether the popup will be opened or closed.\n */\n toggle(open) {\n if (this.disabled || this.readonly) {\n return;\n }\n this.closePopup();\n open = isPresent(open) ? open : !this.isOpen;\n if (open) {\n this.openPopup();\n }\n }\n /**\n * @hidden\n */\n handleValueChange(color, closePopup) {\n const parsedColor = parseColor$1(color, this.format);\n const valueChange = parsedColor !== this.value;\n if (closePopup) {\n this.toggleWithEvents(false);\n this.focus();\n }\n if (valueChange) {\n this.value = parsedColor;\n this.valueChange.emit(parsedColor);\n this.notifyNgChanged(parsedColor);\n }\n }\n /**\n * @hidden\n */\n handlePopupBlur(event) {\n const focusInPopupElement = this.popupRef.popupElement.contains(event.relatedTarget);\n const wrapperClicked = event.relatedTarget === this.wrapper.nativeElement;\n if (!this.isFocused || wrapperClicked || focusInPopupElement) {\n return;\n }\n this.isFocused = false;\n this.onBlur.emit();\n this.notifyNgTouched();\n this.toggleWithEvents(false);\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = value;\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.notifyNgChanged = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.notifyNgTouched = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n */\n handleWrapperKeyDown(event) {\n if (event.keyCode === Keys.ArrowDown || event.keyCode === Keys.Enter) {\n event.preventDefault();\n this.toggleWithEvents(true);\n }\n }\n /**\n * @hidden\n */\n handlePopupKeyDown(keyCode) {\n if (keyCode === Keys.Tab || keyCode === Keys.Escape) {\n this.toggleWithEvents(false);\n this.wrapper.nativeElement.focus();\n }\n }\n /**\n * @hidden\n * Used by the TextBoxContainer to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n toggleWithEvents(open) {\n const sameState = this.isOpen === open;\n if (this.disabled || this.readonly || sameState) {\n return;\n }\n const eventArgs = new PreventableEvent();\n open ? this.open.emit(eventArgs) : this.close.emit(eventArgs);\n if (!eventArgs.isDefaultPrevented()) {\n this.toggle(open);\n }\n }\n openPopup() {\n const horizontalAlign = this.direction === \"rtl\" ? \"right\" : \"left\";\n const anchorPosition = { horizontal: horizontalAlign, vertical: \"bottom\" };\n const popupPosition = { horizontal: horizontalAlign, vertical: \"top\" };\n this.popupRef = this.popupService.open({\n anchor: this.wrapper,\n animate: this.popupSettings.animate,\n appendTo: this.popupSettings.appendTo,\n popupAlign: popupPosition,\n anchorAlign: anchorPosition,\n popupClass: 'k-colorpicker-popup',\n content: this.popupTemplate,\n positionMode: 'absolute'\n });\n this.popupRef.popupAnchorViewportLeave.subscribe(() => {\n this.toggleWithEvents(false);\n if (!this.isOpen) {\n this.wrapper.nativeElement.focus({\n preventScroll: true\n });\n }\n });\n }\n closePopup() {\n if (!this.isOpen) {\n return;\n }\n this.popupRef.close();\n this.popupRef = null;\n this.palette = null;\n }\n}\nColorPickerComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-colorpicker',\n providers: [{\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPickerComponent)\n }, {\n provide: KendoInput,\n useExisting: forwardRef(() => ColorPickerComponent)\n },\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.colorpicker'\n }\n ],\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nColorPickerComponent.ctorParameters = () => [\n { type: PopupService },\n { type: LocalizationService }\n];\nColorPickerComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-colorpicker',] }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n focusableId: [{ type: Input }],\n view: [{ type: Input }],\n readonly: [{ type: Input }],\n disabled: [{ type: Input }],\n format: [{ type: Input }],\n value: [{ type: Input }],\n popupSettings: [{ type: Input }],\n paletteSettings: [{ type: Input }],\n gradientSettings: [{ type: Input }],\n icon: [{ type: Input }],\n iconClass: [{ type: Input }],\n tabindex: [{ type: Input }],\n valueChange: [{ type: Output }],\n open: [{ type: Output }],\n close: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n activeColorClick: [{ type: Output }],\n container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef },] }],\n wrapper: [{ type: ViewChild, args: ['wrapper',] }],\n popupTemplate: [{ type: ViewChild, args: ['popupTemplate',] }],\n palette: [{ type: ViewChild, args: ['palette', { read: ElementRef },] }]\n};\n\n/**\n * @hidden\n */\nclass ColorPaletteService {\n constructor() {\n this.colorRows = [];\n }\n setColorMatrix(palette, columns) {\n this.colorRows = [];\n if (!(isPresent(palette) && palette.length)) {\n return;\n }\n columns = columns || palette.length;\n for (let start = 0; start < palette.length; start += columns) {\n const row = palette.slice(start, columns + start);\n this.colorRows.push(row);\n }\n }\n getCellCoordsFor(color) {\n if (!isPresent(color)) {\n return;\n }\n for (let row = 0; row < this.colorRows.length; row++) {\n for (let col = 0; col < this.colorRows[row].length; col++) {\n if (this.colorRows[row][col] === color) {\n return { row, col };\n }\n }\n }\n }\n getColorAt(cellCoords) {\n if (!(isPresent(cellCoords) && isPresent(this.colorRows[cellCoords.row]))) {\n return;\n }\n return this.colorRows[cellCoords.row][cellCoords.col];\n }\n getNextCell(current, horizontalStep, verticalStep) {\n if (!(isPresent(current) && isPresent(current.row) && isPresent(current.col))) {\n return { row: 0, col: 0 };\n }\n const row = this.clampIndex(current.row + verticalStep, this.colorRows.length - 1);\n const col = this.clampIndex(current.col + horizontalStep, this.colorRows[row].length - 1);\n return { row, col };\n }\n clampIndex(index, max) {\n const minArrayIndex = 0;\n if (index < minArrayIndex) {\n return minArrayIndex;\n }\n if (index > max) {\n return max;\n }\n return index;\n }\n}\nColorPaletteService.decorators = [\n { type: Injectable },\n];\n\nconst DEFAULT_TILE_SIZE = 24;\nconst DEFAULT_COLUMNS_COUNT = 10;\nconst DEFAULT_PRESET$1 = 'office';\nconst DEFAULT_ACCESSIBLE_PRESET$1 = 'accessible';\nlet serial$1 = 0;\n/**\n * The ColorPalette component provides a set of predefined palette presets and enables you to implement a custom color palette.\n * The ColorPalette is independently used by `kendo-colorpicker` and can be directly added to the page.\n */\nclass ColorPaletteComponent {\n constructor(service, localizationService) {\n this.service = service;\n /**\n * @hidden\n */\n this.id = `k-colorpalette-${serial$1++}`;\n /**\n * Specifies the output format of the ColorPaletteComponent.\n * The input value may be in a different format. However, it will be parsed into the output `format`\n * after the component processes it.\n *\n * The supported values are:\n * * (Default) `hex`\n * * `rgba`\n * * `name`\n */\n this.format = 'hex';\n /**\n * Specifies the size of a color cell.\n *\n * The possible values are:\n * * (Default) `tileSize = 24`\n * * `{ width: number, height: number }`\n */\n this.tileSize = { width: DEFAULT_TILE_SIZE, height: DEFAULT_TILE_SIZE };\n /**\n * Fires each time the color selection is changed.\n */\n this.selectionChange = new EventEmitter();\n /**\n * Fires each time the value is changed.\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires each time the user selects a cell with the mouse or presses `Enter`.\n *\n * @hidden\n */\n this.cellSelection = new EventEmitter();\n /**\n * @hidden\n */\n this.hostClasses = true;\n this._tabindex = 0;\n this.notifyNgTouched = () => { };\n this.notifyNgChanged = () => { };\n this.dynamicRTLSubscription = localizationService.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n }\n /**\n * @hidden\n */\n get paletteId() {\n return this.id;\n }\n /**\n * Specifies the value of the initially selected color.\n */\n set value(value) {\n this._value = parseColor$1(value, this.format);\n }\n get value() {\n return this._value;\n }\n /**\n * Specifies the number of columns that will be displayed.\n * Defaults to `10`.\n */\n set columns(value) {\n const minColumnsCount = 1;\n this._columns = value > minColumnsCount ? value : minColumnsCount;\n }\n get columns() {\n return this._columns;\n }\n /**\n * The color palette that will be displayed.\n *\n * The supported values are:\n * * The name of the predefined palette preset (for example, `office`, `basic`, and `apex`).\n * * A string with comma-separated colors.\n * * A string array.\n */\n set palette(value) {\n if (!isPresent(value)) {\n value = DEFAULT_PRESET$1;\n }\n if (typeof value === 'string' && isPresent(PALETTEPRESETS[value])) {\n this.columns = this.columns || PALETTEPRESETS[value].columns;\n value = PALETTEPRESETS[value].colors;\n }\n const colors = (typeof value === 'string') ? value.split(',') : value;\n this._palette = colors.map(color => parseColor$1(color, this.format, false));\n }\n get palette() {\n return this._palette;\n }\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n set tabindex(value) {\n const tabindex = Number(value);\n const defaultValue = 0;\n this._tabindex = !isNaN(tabindex) ? tabindex : defaultValue;\n }\n get tabindex() {\n return !this.disabled ? this._tabindex : undefined;\n }\n /**\n * @hidden\n */\n get tileLayout() {\n if (typeof this.tileSize !== 'number') {\n return this.tileSize;\n }\n return { width: this.tileSize, height: this.tileSize };\n }\n /**\n * @hidden\n */\n get colorRows() {\n return this.service.colorRows;\n }\n /**\n * @hidden\n */\n get hostTabindex() { return this.tabindex; }\n /**\n * @hidden\n */\n get disabledClass() { return this.disabled; }\n ngOnInit() {\n if (this.colorRows.length === 0) {\n const defaultPreset = (this.format !== 'name') ? DEFAULT_PRESET$1 : DEFAULT_ACCESSIBLE_PRESET$1;\n this.palette = this.palette || defaultPreset;\n this.setRows();\n this.focusedCell = this.service.getCellCoordsFor(this.value);\n }\n }\n ngOnDestroy() {\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n ngOnChanges(changes) {\n if (changes.palette || changes.columns) {\n this.setRows();\n }\n if (changes.palette || changes.value || changes.columns) {\n this.focusedCell = this.service.getCellCoordsFor(this.value);\n }\n }\n /**\n * @hidden\n */\n handleKeydown(event) {\n const isRTL = this.direction === 'rtl';\n switch (event.keyCode) {\n case Keys.ArrowDown:\n this.handleCellNavigation(0, 1);\n break;\n case Keys.ArrowUp:\n this.handleCellNavigation(0, -1);\n break;\n case Keys.ArrowRight:\n this.handleCellNavigation(isRTL ? -1 : 1, 0);\n break;\n case Keys.ArrowLeft:\n this.handleCellNavigation(isRTL ? 1 : -1, 0);\n break;\n case Keys.Enter:\n this.handleEnter();\n break;\n default: return;\n }\n event.preventDefault();\n }\n /**\n * @hidden\n */\n handleHostBlur() {\n this.notifyNgTouched();\n }\n /**\n * @hidden\n */\n handleCellSelection(value, focusedCell) {\n if (this.readonly) {\n return;\n }\n this.focusedCell = focusedCell;\n const parsedColor = parseColor$1(value, this.format, false);\n this.cellSelection.emit(parsedColor);\n if (this.value !== parsedColor) {\n this.value = parsedColor;\n this.valueChange.emit(parsedColor);\n this.notifyNgChanged(parsedColor);\n }\n if (this.selection !== parsedColor) {\n this.selection = parsedColor;\n this.selectionChange.emit(parsedColor);\n }\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = value;\n this.focusedCell = this.service.getCellCoordsFor(this.value);\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.notifyNgChanged = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.notifyNgTouched = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n * Used by the TextBoxContainer to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n /**\n * Clears the color value of the ColorPalette.\n */\n reset() {\n this.focusedCell = null;\n if (isPresent(this.value)) {\n this._value = undefined;\n this.notifyNgChanged(undefined);\n }\n }\n setRows() {\n if (!isPresent(this.palette)) {\n return;\n }\n this.columns = this.columns || DEFAULT_COLUMNS_COUNT;\n this.service.setColorMatrix(this.palette, this.columns);\n }\n handleCellNavigation(horizontalStep, verticalStep) {\n if (this.readonly) {\n return;\n }\n this.focusedCell = this.service.getNextCell(this.focusedCell, horizontalStep, verticalStep);\n const selection = this.service.getColorAt(this.focusedCell);\n if (this.selection !== selection) {\n this.selection = selection;\n this.selectionChange.emit(selection);\n }\n }\n handleEnter() {\n if (!isPresent(this.focusedCell)) {\n return;\n }\n const selectedColor = this.service.getColorAt(this.focusedCell);\n this.handleCellSelection(selectedColor, this.focusedCell);\n }\n}\nColorPaletteComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-colorpalette',\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPaletteComponent) // tslint:disable-line:no-forward-ref\n }, {\n provide: KendoInput,\n useExisting: forwardRef(() => ColorPaletteComponent)\n },\n ColorPaletteService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.colorpalette'\n }\n ],\n template: `\n
    \n \n \n \n \n \n \n
    \n
    \n
    \n `\n },] },\n];\n/** @nocollapse */\nColorPaletteComponent.ctorParameters = () => [\n { type: ColorPaletteService },\n { type: LocalizationService }\n];\nColorPaletteComponent.propDecorators = {\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n paletteId: [{ type: HostBinding, args: ['attr.id',] }],\n id: [{ type: Input }],\n format: [{ type: Input }],\n value: [{ type: Input }],\n columns: [{ type: Input }],\n palette: [{ type: Input }],\n tabindex: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n tileSize: [{ type: Input }],\n selectionChange: [{ type: Output }],\n valueChange: [{ type: Output }],\n cellSelection: [{ type: Output }],\n hostTabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-colorpalette',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }],\n handleKeydown: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n handleHostBlur: [{ type: HostListener, args: ['blur',] }]\n};\n\nconst DEFAULT_OUTPUT_FORMAT = 'rgba';\nconst DEFAULT_BACKGROUND_COLOR = 'rgba(255, 0, 0, 1)';\nlet serial$2 = 0;\n/**\n * The ColorGradient component enables smooth color transitions and provides options for selecting specific colors over the drag handle.\n * The ColorGradient is independently used by `kendo-colorpicker` and can be directly added to the page.\n */\nclass ColorGradientComponent {\n constructor(host, ngZone, renderer, cdr, localizationService) {\n this.host = host;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.cdr = cdr;\n this.hostClasses = true;\n /**\n * @hidden\n */\n this.id = `k-colorgradient-${serial$2++}`;\n /**\n * Defines whether the alpha slider will be displayed.\n */\n this.opacity = true;\n /**\n * Sets the disabled state of the ColorGradient.\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the ColorGradient.\n */\n this.readonly = false;\n /**\n * Specifies whether the ColorGradient should display a 'Clear color' button.\n */\n this.clearButton = false;\n /**\n * Fires each time the user selects a new color.\n */\n this.valueChange = new EventEmitter();\n /**\n * @hidden\n */\n this.backgroundColor = DEFAULT_BACKGROUND_COLOR;\n /**\n * @hidden\n *\n * Represents the currently selected `hue`, `saturation`, `value`, and `alpha` values.\n * The values are initially set in `ngOnInit` or in `ngOnChanges` and are\n * updated on moving the drag handle or the sliders.\n */\n this.hsva = {};\n /**\n * Specifies the output format of the ColorGradientComponent.\n * The input value may be in a different format. However, it will be parsed into the output `format`\n * after the component processes it.\n *\n * The supported values are:\n * * (Default) `rgba`\n * * `hex`\n */\n this.format = DEFAULT_OUTPUT_FORMAT;\n this._tabindex = 0;\n this.listeners = [];\n this.notifyNgChanged = () => { };\n this.notifyNgTouched = () => { };\n this.dynamicRTLSubscription = localizationService.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n }\n get disabledClass() {\n return this.disabled;\n }\n get hostTabindex() {\n return this.tabindex;\n }\n /**\n * @hidden\n */\n get gradientId() {\n return this.id;\n }\n /**\n * Specifies the value of the initially selected color.\n */\n set value(value) {\n this._value = parseColor$1(value, this.format);\n }\n get value() {\n return this._value;\n }\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n set tabindex(value) {\n const tabindex = Number(value);\n const defaultValue = 0;\n this._tabindex = !isNaN(tabindex) ? tabindex : defaultValue;\n }\n get tabindex() {\n return !this.disabled ? this._tabindex : undefined;\n }\n /**\n * Indicates whether the ColorGradient or any of its content is focused.\n */\n get isFocused() {\n if (!(isDocumentAvailable() && isPresent(this.host))) {\n return false;\n }\n return this.host.nativeElement === document.activeElement || this.host.nativeElement.contains(document.activeElement);\n }\n /**\n * @hidden\n */\n get alphaSliderValue() {\n // setting the initial value to undefined to force the slider to recalculate the height of the slider track on the next cdr run\n if (!(isPresent(this.hsva) && isPresent(this.hsva.a))) {\n return;\n }\n return this.hsva.a * 100;\n }\n get gradientRect() {\n return this.gradientWrapper.nativeElement.getBoundingClientRect();\n }\n ngAfterViewInit() {\n this.updateUI();\n this.cdr.detectChanges();\n this.addEventListeners();\n }\n ngOnChanges(changes) {\n if (isChanged('value', changes) && !this.isFocused) {\n this.updateUI();\n }\n }\n ngOnDestroy() {\n this.listeners.forEach(removeListener => removeListener());\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n /**\n * Focuses the component.\n */\n focus() {\n if (this.disabled) {\n return;\n }\n this.host.nativeElement.focus();\n }\n /**\n * @hidden\n */\n reset() {\n this.handleValueChange(undefined);\n this.updateUI();\n }\n /**\n * @hidden\n */\n handleDragPress(args) {\n if (this.disabled || this.readonly || !isPresent(args.originalEvent)) {\n return;\n }\n this.focus();\n args.originalEvent.preventDefault();\n }\n /**\n * @hidden\n */\n onHandleDrag(args) {\n if (this.disabled || this.readonly) {\n return;\n }\n this.renderer.addClass(this.gradientWrapper.nativeElement, 'k-dragging');\n this.changePosition(args);\n }\n /**\n * @hidden\n */\n onHandleRelease() {\n if (this.disabled || this.readonly) {\n return;\n }\n this.renderer.removeClass(this.gradientWrapper.nativeElement, 'k-dragging');\n }\n /**\n * @hidden\n */\n changePosition(position) {\n if (this.disabled || this.readonly) {\n return;\n }\n this.ngZone.run(() => this.moveDragHandle(position));\n }\n /**\n * @hidden\n */\n handleHueSliderChange(hue) {\n this.handleValueChange(getColorFromHSV(this.hsva));\n this.backgroundColor = getColorFromHue(hue);\n this.setAlphaSliderBackground(this.backgroundColor);\n }\n /**\n * @hidden\n */\n handleAlphaSliderChange(alpha) {\n this.hsva.a = alpha / 100;\n this.handleValueChange(getColorFromHSV(this.hsva));\n }\n /**\n * @hidden\n */\n handleInputsValueChange(color) {\n const parsed = parseColor$1(color, this.format);\n if (this.value !== parsed) {\n this.handleValueChange(parsed);\n this.updateUI();\n }\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = value;\n if (isPresent(this.gradientWrapper)) {\n this.updateUI();\n }\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.notifyNgChanged = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.notifyNgTouched = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n * Used by the TextBoxContainer to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n moveDragHandle(position) {\n const deltaX = position.clientX - this.gradientRect.left;\n const deltaY = position.clientY - this.gradientRect.top;\n const top = fitIntoBounds(deltaY, 0, this.gradientRect.height);\n const left = fitIntoBounds(deltaX, 0, this.gradientRect.width);\n this.setDragHandleElementPosition(top, left);\n this.hsva.s = left / this.gradientRect.width;\n this.hsva.v = 1 - top / this.gradientRect.height;\n this.handleValueChange(getColorFromHSV(this.hsva));\n this.setAlphaSliderBackground(getColorFromHSV(Object.assign({}, this.hsva, { a: 1 })));\n }\n updateUI() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.hsva = this.value ? getHSV(this.value) : { h: 0, s: 0, v: 1, a: 1 };\n const top = (1 - this.hsva.v) * this.gradientRect.height;\n const left = this.hsva.s * this.gradientRect.width;\n this.setDragHandleElementPosition(top, left);\n this.backgroundColor = getColorFromHue(this.hsva.h);\n this.setAlphaSliderBackground(this.backgroundColor);\n }\n handleValueChange(color) {\n if (this.value === color) {\n return;\n }\n this.value = color;\n this.valueChange.emit(color);\n this.notifyNgChanged(color);\n }\n setDragHandleElementPosition(top, left) {\n const dragHandle = this.dragHandle.nativeElement;\n this.renderer.setStyle(dragHandle, 'top', `${top}px`);\n this.renderer.setStyle(dragHandle, 'left', `${left}px`);\n }\n setAlphaSliderBackground(backgroundColor) {\n if (!isPresent(this.alphaSlider)) {\n return;\n }\n const sliderTrack = this.alphaSlider.track.nativeElement;\n this.renderer.setStyle(sliderTrack, 'background', `linear-gradient(to top, transparent, ${backgroundColor})`);\n }\n addEventListeners() {\n this.ngZone.runOutsideAngular(() => {\n const focusOutListener = this.renderer.listen(this.host.nativeElement, 'focusout', (event) => {\n if (!containsFocus(this.host.nativeElement, event.relatedTarget) && isUntouched(this.host)) {\n this.ngZone.run(() => this.notifyNgTouched());\n }\n });\n this.listeners.push(focusOutListener);\n });\n }\n}\nColorGradientComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-colorgradient',\n providers: [{\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorGradientComponent)\n }, {\n provide: KendoInput,\n useExisting: forwardRef(() => ColorGradientComponent)\n },\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.colorgradient'\n }\n ],\n template: `\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n \n \n`\n },] },\n];\n/** @nocollapse */\nColorGradientComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone },\n { type: Renderer2 },\n { type: ChangeDetectorRef },\n { type: LocalizationService }\n];\nColorGradientComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-flatcolorpicker',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }],\n hostTabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n gradientId: [{ type: HostBinding, args: ['attr.id',] }],\n id: [{ type: Input }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n opacity: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n clearButton: [{ type: Input }],\n value: [{ type: Input }],\n tabindex: [{ type: Input }],\n valueChange: [{ type: Output }],\n format: [{ type: Input }],\n alphaSlider: [{ type: ViewChild, args: ['alphaSlider',] }],\n gradientWrapper: [{ type: ViewChild, args: ['gradientWrapper',] }],\n dragHandle: [{ type: ViewChild, args: ['dragHandle',] }]\n};\n\n/**\n * @hidden\n */\nclass ColorInputComponent {\n constructor(host) {\n this.host = host;\n /**\n * Sets whether the alpha slider will be shown.\n */\n this.opacity = true;\n /**\n * Sets the disabled state of the ColorInput.\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the ColorInput.\n */\n this.readonly = false;\n /**\n * Emits a parsed rgba string color.\n */\n this.valueChange = new EventEmitter();\n this.colorInputClass = true;\n /**\n * The rgba inputs values.\n */\n this.rgba = {};\n }\n /**\n * Indicates whether any of the inputs are focused.\n */\n get isFocused() {\n if (!(isDocumentAvailable() && isPresent(this.host))) {\n return false;\n }\n const activeElement = document.activeElement;\n return this.host.nativeElement.contains(activeElement);\n }\n /**\n * Indicates whether any of the rgba inputs have value.\n */\n get rgbaInputValid() {\n return Object.keys(this.rgba).every(key => isPresent(this.rgba[key]));\n }\n ngOnChanges(changes) {\n if (isPresent(changes.value) && !this.isFocused) {\n this.hex = parseColor$1(this.value, 'hex');\n this.rgba = getRGBA(this.value);\n this.rgba.a = parseColor$1(this.value, 'rgba') ? this.rgba.a : 1;\n }\n }\n handleRgbaValueChange() {\n const color = getColorFromRGBA(this.rgba);\n if (!this.rgbaInputValid || color === this.value) {\n return;\n }\n this.value = color;\n this.rgba = getRGBA(this.value);\n this.hex = parseColor$1(color, 'hex');\n this.valueChange.emit(color);\n }\n handleHexValueChange(hex) {\n this.hex = hex;\n const color = parseColor$1(hex, 'rgba');\n if (!isPresent(color) || color === this.value) {\n return;\n }\n this.value = color;\n this.rgba = getRGBA(color);\n this.valueChange.emit(color);\n }\n handleRgbaInputBlur() {\n if (!this.rgbaInputValid) {\n this.rgba = getRGBA(this.value);\n }\n }\n handleHexInputBlur() {\n this.hex = parseColor$1(this.value, 'hex');\n }\n}\nColorInputComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-colorinput',\n template: `\n
    \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    hex
    \n
    r
    \n
    g
    \n
    b
    \n
    a
    \n
    \n `\n },] },\n];\n/** @nocollapse */\nColorInputComponent.ctorParameters = () => [\n { type: ElementRef }\n];\nColorInputComponent.propDecorators = {\n value: [{ type: Input }],\n opacity: [{ type: Input }],\n disabled: [{ type: Input }],\n readonly: [{ type: Input }],\n valueChange: [{ type: Output }],\n colorInputClass: [{ type: HostBinding, args: ['class.k-colorinputs',] }]\n};\n\n/**\n * @hidden\n */\nclass FocusOnDomReadyDirective {\n constructor(host, ngZone) {\n this.host = host;\n this.ngZone = ngZone;\n }\n ngAfterContentInit() {\n this.focusOnNextTick();\n }\n focusOnNextTick() {\n this.ngZone.runOutsideAngular(() => setTimeout(() => this.host.nativeElement.focus()));\n }\n}\nFocusOnDomReadyDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoFocusOnDomReady]'\n },] },\n];\n/** @nocollapse */\nFocusOnDomReadyDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone }\n];\n\nconst PUBLIC_DIRECTIVES = [\n ColorPickerComponent,\n ColorPaletteComponent,\n ColorGradientComponent\n];\nconst INTERNAL_DIRECTIVES = [\n ColorInputComponent,\n FocusOnDomReadyDirective\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the ColorPicker.\n */\nclass ColorPickerModule {\n}\nColorPickerModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n PUBLIC_DIRECTIVES,\n INTERNAL_DIRECTIVES\n ],\n exports: [PUBLIC_DIRECTIVES],\n imports: [\n SliderModule,\n NumericTextBoxModule,\n CommonModule,\n PopupModule,\n DraggableModule\n ]\n },] },\n];\n\n/**\n * Represents the directive that renders the [Kendo UI CheckBox]({% slug overview_checkbox %}) input component.\n * The directive is placed on input type=\"checkbox\" elements.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nclass CheckBoxDirective {\n constructor() {\n this.kendoClass = true;\n }\n}\nCheckBoxDirective.decorators = [\n { type: Directive, args: [{\n selector: 'input[kendoCheckBox]'\n },] },\n];\nCheckBoxDirective.propDecorators = {\n kendoClass: [{ type: HostBinding, args: ['class.k-checkbox',] }]\n};\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the CheckBox directive.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the CheckBox module\n * import { CheckBoxModule } from '@progress/kendo-angular-inputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, CheckBoxModule], // import CheckBox module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass CheckBoxModule {\n}\nCheckBoxModule.decorators = [\n { type: NgModule, args: [{\n declarations: [CheckBoxDirective],\n exports: [CheckBoxDirective],\n imports: [CommonModule]\n },] },\n];\n\n/**\n * Represents the directive that renders the [Kendo UI RadioButton]({% slug overview_checkbox %}) input component.\n * The directive is placed on input type=\"radio\" elements.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nclass RadioButtonDirective {\n constructor() {\n this.kendoClass = true;\n }\n}\nRadioButtonDirective.decorators = [\n { type: Directive, args: [{\n selector: 'input[kendoRadioButton]'\n },] },\n];\nRadioButtonDirective.propDecorators = {\n kendoClass: [{ type: HostBinding, args: ['class.k-radio',] }]\n};\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the RadioButton directive.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the RadioButton module\n * import { RadioButtonModule } from '@progress/kendo-angular-inputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, RadioButtonModule], // import RadioButton module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass RadioButtonModule {\n}\nRadioButtonModule.decorators = [\n { type: NgModule, args: [{\n declarations: [RadioButtonDirective],\n exports: [RadioButtonDirective],\n imports: [CommonModule]\n },] },\n];\n\nlet serial$3 = 0;\n/**\n * Represents an error message that will be shown underneath\n * a Kendo control or native HTML form-bound component after a validation.\n */\nclass ErrorComponent {\n constructor() {\n this.hostClass = true;\n /**\n * Specifies the alignment of the Error message.\n *\n * The possible values are:\n * * (Default) `start`\n * * `end`\n */\n this.align = 'start';\n /**\n * @hidden\n */\n this.id = `kendo-error-${serial$3++}`;\n this.roleAttribute = 'alert';\n }\n get startClass() {\n return this.align === 'start';\n }\n get endClass() {\n return this.align === 'end';\n }\n get idAttribute() {\n return this.id;\n }\n}\nErrorComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-formerror',\n template: `\n \n `\n },] },\n];\nErrorComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-form-error',] }],\n align: [{ type: Input }],\n roleAttribute: [{ type: HostBinding, args: ['attr.role',] }],\n startClass: [{ type: HostBinding, args: ['class.k-text-start',] }],\n endClass: [{ type: HostBinding, args: ['class.k-text-end',] }],\n idAttribute: [{ type: HostBinding, args: ['attr.id',] }]\n};\n\nlet serial$4 = 0;\n/**\n * Represents a hint message that will be shown underneath a form-bound component.\n */\nclass HintComponent {\n constructor() {\n /**\n * Specifies the alignment of the Hint message.\n *\n * The possible values are:\n * * (Default) `start`\n * * `end`\n */\n this.align = 'start';\n /**\n * @hidden\n */\n this.id = `kendo-hint-${serial$4++}`;\n this.hostClass = true;\n }\n get startClass() {\n return this.align === 'start';\n }\n get endClass() {\n return this.align === 'end';\n }\n get idAttribute() {\n return this.id;\n }\n}\nHintComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-formhint',\n template: `\n \n `\n },] },\n];\nHintComponent.propDecorators = {\n align: [{ type: Input }],\n hostClass: [{ type: HostBinding, args: ['class.k-form-hint',] }],\n startClass: [{ type: HostBinding, args: ['class.k-text-start',] }],\n endClass: [{ type: HostBinding, args: ['class.k-text-end',] }],\n idAttribute: [{ type: HostBinding, args: ['attr.id',] }]\n};\n\n/**\n * Specifies a container for form-bound controls (Kendo controls or native HTML controls).\n * Applies styling and behavior rules.\n */\nclass FormFieldComponent {\n constructor(renderer, localizationService) {\n this.renderer = renderer;\n this.localizationService = localizationService;\n this.hostClass = true;\n /**\n *\n * Specifies when the Hint messages will be shown.\n *\n * The possible values are:\n *\n * * (Default) `initial`—Allows displaying hints when the form-bound component state is\n * `valid` or `untouched` and `pristine`.\n * * `always`—Allows full control over the visibility of the hints.\n *\n */\n this.showHints = 'initial';\n /**\n * Specifies the layout orientation of the form field.\n *\n * * The possible values are:\n *\n * * (Default) `vertical`\n * * `horizontal`\n */\n this.orientation = 'vertical';\n /**\n * Specifies when the Error messages will be shown.\n *\n * The possible values are:\n *\n * * (Default) `initial`—Allows displaying errors when the form-bound component state is\n * `invalid` and `touched` or `dirty`.\n * * `always`—Allows full control over the visibility of the errors.\n *\n */\n this.showErrors = 'initial';\n this.subscriptions = new Subscription();\n this.rtl = false;\n this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n }));\n }\n get errorClass() {\n if (!this.control) {\n return false;\n }\n return this.control.invalid && (this.control.touched || this.control.dirty);\n }\n get disabledClass() {\n if (!this.control) {\n return false;\n }\n // radiobutton group\n if (this.isRadioControl(this.control)) {\n return false;\n }\n return this.disabledControl() ||\n this.disabledElement() ||\n this.disabledKendoInput();\n }\n set formControls(formControls) {\n this.validateFormControl(formControls);\n this.control = formControls.first;\n }\n /**\n * @hidden\n */\n get horizontal() {\n return this.orientation === 'horizontal';\n }\n /**\n * @hidden\n */\n get hasHints() {\n return this.showHints === 'always' ? true : this.showHintsInitial();\n }\n /**\n * @hidden\n */\n get hasErrors() {\n return this.showErrors === 'always' ? true : this.showErrorsInitial();\n }\n ngAfterViewInit() {\n this.setDescription();\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n disabledKendoInput() {\n return this.kendoInput && this.kendoInput.disabled;\n }\n disabledControl() {\n return this.control.disabled;\n }\n disabledElement() {\n const elements = this.controlElementRefs.toArray();\n return elements.every(e => e.nativeElement.hasAttribute('disabled'));\n }\n validateFormControl(formControls) {\n if (isDevMode() && formControls.length !== 1 && !this.isControlGroup(formControls)) {\n throw new Error('The `kendo-formfield` component should contain ' +\n 'only one control of type NgControl.');\n }\n }\n isControlGroup(formControls) {\n if (!formControls.length) {\n return false;\n }\n const name = formControls.first.name;\n return formControls.toArray().every(c => c.name === name && (this.isRadioControl(c)));\n }\n isRadioControl(control) {\n return control.valueAccessor instanceof RadioControlValueAccessor;\n }\n updateDescription() {\n const controls = this.findControlElements();\n if (!controls) {\n return;\n }\n controls.forEach((control) => {\n const ariaIds = this.generateDescriptionIds(control);\n this.renderer.setAttribute(control, 'aria-describedby', ariaIds);\n });\n }\n findControlElements() {\n if (!this.controlElementRefs) {\n return;\n }\n // if the control is KendoInput and has focusableId - dropdowns, dateinputs\n if (this.kendoInput && this.kendoInput.focusableId && isDocumentAvailable()) {\n return [document.getElementById(this.kendoInput.focusableId)];\n }\n return this.controlElementRefs.map(el => el.nativeElement);\n }\n generateDescriptionIds(control) {\n const ids = new Set();\n if (control.hasAttribute('aria-describedby')) {\n const attributes = control.getAttribute('aria-describedby').split(' ');\n attributes.forEach((attr) => {\n if (attr.includes('kendo-hint-') || attr.includes('kendo-error-')) {\n return;\n }\n ids.add(attr);\n });\n }\n this.hintChildren.forEach((hint) => {\n ids.add(hint.id);\n });\n this.errorChildren.forEach((error) => {\n ids.add(error.id);\n });\n return Array.from(ids).join(' ');\n }\n showHintsInitial() {\n if (!this.control) {\n return true;\n }\n const { valid, untouched, pristine } = this.control;\n return valid || (untouched && pristine);\n }\n showErrorsInitial() {\n if (!this.control) {\n return false;\n }\n const { invalid, dirty, touched } = this.control;\n return invalid && (dirty || touched);\n }\n setDescription() {\n this.updateDescription();\n this.subscriptions.add(this.errorChildren.changes.subscribe(() => this.updateDescription()));\n this.subscriptions.add(this.hintChildren.changes.subscribe(() => this.updateDescription()));\n }\n}\nFormFieldComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-formfield',\n template: `\n \n
    \n \n \n \n
    \n `,\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.formfield'\n }\n ]\n },] },\n];\n/** @nocollapse */\nFormFieldComponent.ctorParameters = () => [\n { type: Renderer2 },\n { type: LocalizationService }\n];\nFormFieldComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-form-field',] }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n errorClass: [{ type: HostBinding, args: ['class.k-form-field-error',] }],\n disabledClass: [{ type: HostBinding, args: ['class.k-form-field-disabled',] }],\n formControls: [{ type: ContentChildren, args: [NgControl, { descendants: true, static: true },] }],\n controlElementRefs: [{ type: ContentChildren, args: [NgControl, { read: ElementRef, descendants: true, static: true },] }],\n kendoInput: [{ type: ContentChild, args: [KendoInput, { static: true },] }],\n errorChildren: [{ type: ContentChildren, args: [ErrorComponent, { descendants: true, static: true },] }],\n hintChildren: [{ type: ContentChildren, args: [HintComponent, { descendants: true, static: true },] }],\n showHints: [{ type: Input }],\n orientation: [{ type: Input }],\n showErrors: [{ type: Input }]\n};\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the FormField, Error and Hint components.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the FormField module\n * import { FormFieldModule } from '@progress/kendo-angular-inputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, FormFieldModule], // import FormField module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass FormFieldModule {\n}\nFormFieldModule.decorators = [\n { type: NgModule, args: [{\n declarations: [HintComponent, ErrorComponent, FormFieldComponent],\n exports: [HintComponent, ErrorComponent, FormFieldComponent],\n imports: [CommonModule]\n },] },\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Inputs components.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Inputs module\n * import { InputsModule } from '@progress/kendo-angular-inputs';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, BrowserAnimationsModule, InputsModule], // import Inputs module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass InputsModule {\n}\nInputsModule.decorators = [\n { type: NgModule, args: [{\n exports: [TextBoxModule, SliderModule, SwitchModule, NumericTextBoxModule, MaskedTextBoxModule, ColorPickerModule, CheckBoxModule, RadioButtonModule, FormFieldModule],\n imports: [CommonModule]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CheckBoxModule, ColorInputComponent, FocusOnDomReadyDirective, ColorPaletteService, MaskingService, NumericTextBoxMessages, RadioButtonModule, SliderCustomMessagesComponent, SliderMessages, SwitchCustomMessagesComponent, Messages, SliderComponent, LabelTemplateDirective, SwitchComponent, TextBoxContainerComponent, TextBoxDirective, TextAreaDirective, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, MaskedTextBoxComponent, InputsModule, SliderTicksComponent, SliderModule, SwitchModule, NumericTextBoxModule, MaskedTextBoxModule, TextBoxModule, ColorPickerComponent, ColorPaletteComponent, ColorGradientComponent, ColorPickerModule, ActiveColorClickEvent, CheckBoxDirective, RadioButtonDirective, HintComponent, ErrorComponent, FormFieldComponent, FormFieldModule, LocalizedNumericTextBoxMessagesDirective, LocalizedSliderMessagesDirective, LocalizedSwitchMessagesDirective };\n","export { detectMobileOS, detectDesktopBrowser, browser, mobileOS, touch, msPointers, pointers, touchEnabled } from './support';\n","/* tslint:disable:object-literal-sort-keys max-line-length */\nimport { isWindowAvailable } from './util';\nconst agentRxs = {\n wp: /(Windows Phone(?: OS)?)\\s(\\d+)\\.(\\d+(\\.\\d+)?)/,\n fire: /(Silk)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n android: /(Android|Android.*(?:Opera|Firefox).*?\\/)\\s*(\\d+)\\.(\\d+(\\.\\d+)?)/,\n iphone: /(iPhone|iPod).*OS\\s+(\\d+)[\\._]([\\d\\._]+)/,\n ipad: /(iPad).*OS\\s+(\\d+)[\\._]([\\d_]+)/,\n meego: /(MeeGo).+NokiaBrowser\\/(\\d+)\\.([\\d\\._]+)/,\n webos: /(webOS)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n blackberry: /(BlackBerry|BB10).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n playbook: /(PlayBook).*?Tablet\\s*OS\\s*(\\d+)\\.(\\d+(\\.\\d+)?)/,\n windows: /(MSIE)\\s+(\\d+)\\.(\\d+(\\.\\d+)?)/,\n tizen: /(tizen).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/i,\n sailfish: /(sailfish).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*firefox/i,\n ffos: /(Mobile).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*Firefox/\n};\nconst osRxs = {\n ios: /^i(phone|pad|pod)$/i,\n android: /^android|fire$/i,\n blackberry: /^blackberry|playbook/i,\n windows: /windows/,\n wp: /wp/,\n flat: /sailfish|ffos|tizen/i,\n meego: /meego/\n};\nconst desktopBrowserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\nconst mobileBrowserRxs = {\n omini: /Opera\\sMini/i,\n omobile: /Opera\\sMobi/i,\n firefox: /Firefox|Fennec/i,\n mobilesafari: /version\\/.*safari/i,\n ie: /MSIE|Windows\\sPhone/i,\n chrome: /chrome|crios/i,\n webkit: /webkit/i\n};\nconst testRx = (agent, rxs, dflt) => {\n for (let rx in rxs) {\n if (rxs.hasOwnProperty(rx) && rxs[rx].test(agent)) {\n return rx;\n }\n }\n return dflt !== undefined ? dflt : agent;\n};\n/**\n * A function that detects the mobile browser based on the given UserAgent.\n *\n * @param ua - The user agent string.\n * @returns - A browser info object containing the browser type and version.\n *\n * @example\n * ```ts-no-run\n * const userAgent = 'Mozilla/5.0 (Linux; Android 8.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.3 Chrome/61.0.3163.81 Mobile Safari/537.36';\n * detectMobileOS(userAgent); // { android: true };\n * ```\n */\nexport const detectMobileOS = (ua) => {\n let minorVersion;\n let match = [];\n for (let agent in agentRxs) {\n if (agentRxs.hasOwnProperty(agent)) {\n match = ua.match(agentRxs[agent]);\n if (!match) {\n continue;\n }\n if (agent === 'windows' && 'plugins' in window.navigator) {\n return null;\n } // Break if not Metro/Mobile Windows\n const os = {};\n os.device = agent;\n os.browser = testRx(ua, mobileBrowserRxs, 'default');\n os.name = testRx(agent, osRxs);\n os[os.name] = true;\n os.majorVersion = match[2];\n os.minorVersion = match[3].replace('_', '.');\n minorVersion = os.minorVersion.replace('.', '').substr(0, 2);\n os.flatVersion = os.majorVersion + minorVersion +\n (new Array(3 - (minorVersion.length < 3 ? minorVersion.length : 2)).join('0'));\n os.cordova = typeof window.PhoneGap !== undefined\n || typeof window.cordova !== undefined; // Use file protocol to detect appModes.\n os.appMode = window.navigator.standalone\n || (/file|local|wmapp/).test(window.location.protocol)\n || os.cordova; // Use file protocol to detect appModes.\n return os;\n }\n }\n return null;\n};\n/**\n * A function that detects the desktop browser based on the given UserAgent.\n *\n * @param ua - The user agent string.\n * @returns - A browser info object containing the browser type and version.\n *\n * @example\n * ```ts-no-run\n * const userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19';\n * detectDesktopBrowser(userAgent); // { chrome: true, webkit: true };\n * ```\n */\nexport const detectDesktopBrowser = (ua) => {\n let browserInfo = null;\n let match = [];\n for (let agent in desktopBrowserRxs) {\n if (desktopBrowserRxs.hasOwnProperty(agent)) {\n match = ua.match(desktopBrowserRxs[agent]);\n if (match) {\n browserInfo = {};\n browserInfo[agent] = true;\n browserInfo[match[1].toLowerCase().split(' ')[0].split('/')[0]] = true;\n browserInfo.version = parseInt(document.documentMode || match[2], 10);\n break;\n }\n }\n }\n return browserInfo;\n};\nconst userAgent = isWindowAvailable() && window.navigator ? window.navigator.userAgent : null;\n/**\n * A constant holding the desktop browser info. The variable persists the result of the detectDesktopBrowser(window.navigator.userAgent) call.\n * If no desktop browser is detected, the constant will be `null`.\n */\nexport const browser = userAgent ? detectDesktopBrowser(userAgent) : null;\n/**\n * A constant holding the mobile OS info. The variable persists the result of the detectMobileOS(window.navigator.userAgent) call.\n * If no mobile OS is detected, the constant will be `null`.\n */\nexport const mobileOS = userAgent ? detectMobileOS(userAgent) : null;\n/**\n * A constant reporting the browser `touch` events support.\n */\nexport const touch = isWindowAvailable() && 'ontouchstart' in window;\n/**\n * @hidden\n * A constant reporting the browser `msPointers` events support.\n */\nexport const msPointers = browser && !browser.chrome && window.MSPointerEvent;\n/**\n * A constant reporting the browser `pointers` events support.\n */\nexport const pointers = browser && !browser.chrome && window.PointerEvent;\n/**\n * A constant reporting whether the browser is touch enabled.\n */\nexport const touchEnabled = mobileOS && (touch || msPointers || pointers);\n","/**\n * @hidden\n */\nexport const isWindowAvailable = () => {\n return typeof window !== 'undefined';\n};\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { EventEmitter, Inject, Injectable, LOCALE_ID, NgModule, Pipe, defineInjectable, inject } from '@angular/core';\nimport { dateFieldName, dateFormatNames, firstDay, format, formatDate, formatNumber, load, localeInfo, numberSymbols, parseDate, parseNumber, setData, splitDateFormat, toString, weekendRange } from '@telerik/kendo-intl';\n\nconst DOCS_URL = 'http://www.telerik.com/kendo-angular-ui/components/internationalization/troubleshooting/';\n/**\n * @hidden\n */\nconst errorSolutions = {\n 'NoCurrency': `Solution: ${DOCS_URL}#toc-no-currency`,\n 'NoCurrencyDisplay': `Solution: ${DOCS_URL}#toc-no-currency-display`,\n 'NoCurrencyRegion': `Solution: ${DOCS_URL}#toc-no-currency-region`,\n 'NoDateFieldNames': `Solution: ${DOCS_URL}#toc-no-date-filed-names`,\n 'NoFirstDay': `Solution: ${DOCS_URL}#toc-no-first-day`,\n 'NoGMTInfo': `Solution: ${DOCS_URL}#toc-no-gmt-info`,\n 'NoLocale': `Solution: ${DOCS_URL}#toc-no-locale`,\n 'NoValidCurrency': `Solution: ${DOCS_URL}#toc-no-valid-currency`,\n 'NoWeekData': `Solution: ${DOCS_URL}#toc-no-week-data`\n};\n\nfunction formatMessage(error) {\n const message = error.message;\n const errorSolution = errorSolutions[Object.keys(errorSolutions).filter(key => message.indexOf(key) === 0)[0]];\n return errorSolution ? `${message} ${errorSolution}` : message;\n}\nfunction intlMethod(fn) {\n return function (...values) {\n try {\n return fn.apply(null, values);\n }\n catch (error) {\n error.message = formatMessage(error);\n throw error;\n }\n };\n}\n/**\n * @hidden\n */\nconst dateFormatNames$1 = intlMethod(dateFormatNames);\n/**\n * @hidden\n */\nconst dateFieldName$1 = intlMethod(dateFieldName);\n/**\n * @hidden\n */\nconst firstDay$1 = intlMethod(firstDay);\n/**\n * @hidden\n */\nconst format$1 = intlMethod(format);\n/**\n * @hidden\n */\nconst formatDate$1 = intlMethod(formatDate);\n/**\n * @hidden\n */\nconst formatNumber$1 = intlMethod(formatNumber);\n/**\n * @hidden\n */\nconst load$1 = intlMethod(load);\n/**\n * @hidden\n */\nconst numberSymbols$1 = intlMethod(numberSymbols);\n/**\n * @hidden\n */\nconst parseDate$1 = intlMethod(parseDate);\n/**\n * @hidden\n */\nconst parseNumber$1 = intlMethod(parseNumber);\n/**\n * @hidden\n */\nconst splitDateFormat$1 = intlMethod(splitDateFormat);\n/**\n * @hidden\n */\nconst toString$1 = intlMethod(toString);\n/**\n * @hidden\n */\nconst weekendRange$1 = intlMethod(weekendRange);\n/**\n * Sets a pre-built locale.\n *\n * @params data - The pre-built locale data.\n */\nconst setData$1 = (data) => setData(data);\n/**\n * Retrieves the locale data for the specified locale.\n *\n * @params locale - The locale id.\n * @returns data - The locale data.\n */\nconst localeData = (locale) => {\n try {\n return localeInfo(locale);\n }\n catch (error) {\n error.message = formatMessage(error);\n throw error;\n }\n};\n\nconst LOCALE_REGEX = /_/g;\n/**\n * @hidden\n */\nfunction cldrServiceFactory(localeId) {\n return new CldrIntlService(localeId);\n}\n/**\n * An abstract base class that implements\n * the Internationalization service methods\n * for the current locale.\n */\nclass IntlService {\n constructor() {\n /**\n * @hidden\n */\n this.changes = new EventEmitter();\n }\n /**\n * Notifies that the service was changed.\n */\n notify() {\n this.changes.emit();\n }\n}\nIntlService.decorators = [\n { type: Injectable, args: [{\n providedIn: 'root',\n useFactory: cldrServiceFactory,\n deps: [LOCALE_ID]\n },] },\n];\nIntlService.ngInjectableDef = defineInjectable({ factory: function IntlService_Factory() { return cldrServiceFactory(inject(LOCALE_ID)); }, token: IntlService, providedIn: \"root\" });\n/**\n * The Internationalization service implemented by using\n * the CLDR Database via the `@telerik/kendo-intl` package.\n */\nclass CldrIntlService extends IntlService {\n /**\n * Creates a new instance of the service with the ID of the specified locale.\n *\n * Note that the parts of the locale ID can be separated by either `_` (underscore)\n * or `-` (dash).\n *\n * @param localeId - The default locale ID.\n */\n constructor(localeId) {\n super();\n this.localeId = localeId;\n }\n /**\n * Gets or sets the current locale ID.\n */\n get localeId() {\n return this.locale;\n }\n set localeId(value) {\n // Angular locales use underscore, for example, en_US\n // while IETF BCP-47 specifies a dash.\n // https://tools.ietf.org/html/bcp47\n const locale = value.replace(LOCALE_REGEX, '-');\n if (locale !== this.locale) {\n this.locale = locale;\n this.notify();\n }\n }\n /**\n * Formats a string with placeholders such as\n * `Total amount {0:c}`.\n *\n * @param format - The format string.\n * @param values - One or more values to output in the format string placeholders.\n * @return - The formatted string.\n */\n format(format$$1, ...values) {\n return format$1(format$$1, values, this.localeId);\n }\n /**\n * Converts an object into a string based on the specified format.\n *\n * @param value - The value to format.\n * @param format - The format to use.\n * @param localeId - The locale ID to use in place of the default one. Optional.\n * @return The formatted object.\n */\n toString(value, format$$1, localeId) {\n return toString$1(value, format$$1, localeId || this.localeId);\n }\n /**\n * Converts a `Date` object into a string based on the specified format.\n * If no format is provided, the default short date format is used.\n *\n * @param value - The date to format.\n * @param format - The format string or options.\n * @param localeId - The locale ID to use in place of the default one. Optional.\n * @return The formatted date.\n */\n formatDate(value, format$$1, localeId) {\n return formatDate$1(value, format$$1, localeId || this.localeId);\n }\n /**\n * Converts a string into a `Date` object based on the specified format.\n *\n * @param value - The string to convert.\n * @param format - The format strings or options.\n * @param localeId - The locale ID to use in place of the default one. Optional.\n * @return The parsed date.\n */\n parseDate(value, format$$1, localeId) {\n return parseDate$1(value, format$$1, localeId || this.localeId);\n }\n /**\n * Converts a string into a `Number`.\n *\n * @param value - The string to convert.\n * @param format - The format string or options.\n * @param localeId - The locale ID to use in place of the default one. Optional.\n * @return The parsed number.\n */\n parseNumber(value, format$$1, localeId) {\n return parseNumber$1(value, localeId || this.localeId, format$$1);\n }\n /**\n * Converts a `Number` into a string based on the specified format.\n *\n * @param value - The number to format.\n * @param format - The format string or options.\n * @param localeId - The locale ID to use in place of the default one. Optional.\n * @return The formatted number.\n */\n formatNumber(value, format$$1, localeId) {\n return formatNumber$1(value, format$$1, localeId || this.localeId);\n }\n /**\n * Returns the date names from the current locale based on the option.\n *\n * The available `type` values are:\n * - `era`\n * - `year`\n * - `quarter`\n * - `month`\n * - `week`\n * - `day`\n * - `dayperiod`\n * - `hour`\n * - `minute`\n * - `second`\n * - `zone`\n *\n * The available `nameType` values are:\n * - `wide`\n * - `narrow`\n * - `short`\n *\n * @param options - Detailed configuration for the desired date field name.\n * @param localeId - The locale ID to use in place of the default one. Optional.\n * @return - The day names from the current locale based on the option.\n * @returns The localized date field name from the current locale based on the option.\n *\n * @example\n * ```\n * dateFieldName({ type: 'day' }); //returns 'day';\n * dateFieldName({ type: 'day', nameType: 'wide' }); //returns 'day';\n * dateFieldName({ type: 'month', nameType: 'short' }); //returns 'mo.';\n * dateFieldName({ type: 'month', nameType: 'wide' }); //returns 'month';\n * ```\n */\n dateFieldName(options, localeId) {\n return dateFieldName$1(options, localeId || this.localeId);\n }\n /**\n * Returns a localized date field name based on specific dateFieldName options.\n *\n * The available type values are:\n * - `day`\n * - `dayperiod`\n * - `months`\n * - `quarters`\n * - `eras`\n *\n * @param options - Detailed configuration for the desired date format.\n * @param localeId - The locale ID to use in place of the default one. Optional.\n * @return - The day names from the current locale based on the option.\n */\n dateFormatNames(options, localeId) {\n return dateFormatNames$1(localeId || this.localeId, options);\n }\n /**\n * Splits the date format into objects containing information about each part of the pattern.\n *\n * @param format The format string or options.\n * @param localeId The optional locale id. If not specified, the `\"en\"` locale id is used.\n * @returns The date format parts.\n */\n splitDateFormat(format$$1, localeId) {\n return splitDateFormat$1(format$$1, localeId || this.localeId);\n }\n /**\n * Returns the number symbols from the current locale based on the option.\n *\n * @param localeId - The locale ID to use in place of the default one. Optional.\n * @return - The number symbols from the current locale.\n */\n numberSymbols(localeId) {\n return numberSymbols$1(localeId || this.localeId);\n }\n /**\n * Returns the first day index starting from Sunday.\n *\n * @param localeId - The locale ID. Defaults to the current locale ID.\n * @return - The index of the first day of the week (0 == Sunday).\n */\n firstDay(localeId) {\n return firstDay$1(localeId || this.localeId);\n }\n /**\n * Returns the start and end index of the locale weekend starting from Sunday.\n *\n * @param localeId - The locale ID. Defaults to the current locale ID.\n * @return - The the start and end index of the locale weekend (0 == Sunday).\n */\n weekendRange(localeId) {\n return weekendRange$1(localeId || this.localeId);\n }\n}\nCldrIntlService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nCldrIntlService.ctorParameters = () => [\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }\n];\n\nconst isNumeric = (value) => !isNaN(value - parseFloat(value));\nconst ɵ0 = isNumeric;\n/**\n * Formats a date value to a string based on the requested format.\n * This pipe uses the [IntlService]({% slug api_intl_intlservice %}).\n *\n * @example\n * ```ng-template-no-run\n *
      \n *
    • {{date | kendoDate }}
    • \n *
    • {{milliseconds | kendoDate: 'M/dd/yyy' }}
    • \n *
    • {{stringDate | kendoDate: 'G' }}
    • \n *
    \n * ```\n */\nclass DatePipe {\n /**\n * @hidden\n */\n constructor(intlService) {\n this.intlService = intlService;\n }\n /**\n * Converts a `Date` object into a string based on the specified format.\n * If no format is provided, the default short date format is used.\n *\n * @param value - The date to format.\n * @param format - The format string or options.\n * @param localeId - (Optional) The ID of the locale which will be used instead of the default one.\n * @return - The formatted date.\n */\n transform(value, format$$1 = \"\", localeId) {\n value = this.normalize(value);\n if (value) {\n return this.intlService.formatDate(value, format$$1, localeId);\n }\n return value;\n }\n normalize(value) {\n if (value && typeof value === 'string') {\n value = this.intlService.parseDate(value);\n }\n else if (value && isNumeric(value)) {\n value = new Date(parseFloat(value));\n }\n return value;\n }\n}\nDatePipe.decorators = [\n { type: Pipe, args: [{\n name: 'kendoDate'\n },] },\n];\n/** @nocollapse */\nDatePipe.ctorParameters = () => [\n { type: IntlService }\n];\n\n/**\n * Formats a number value to a string based on the requested format.\n * This pipe uses the [`IntlService`]({% slug api_intl_intlservice %}).\n *\n * @example\n * ```ng-template-no-run\n *
      \n *
    • {{decimal | kendoNumber:'c' }}
    • \n *
    • {{stringNumber | kendoNumber:'p' }}
    • \n *
    • {{int | kendoNumber:'##.00' }}
    • \n *
    \n * ```\n */\nclass NumberPipe {\n /**\n * @hidden\n */\n constructor(intlService) {\n this.intlService = intlService;\n }\n /**\n * Converts a `Number` object into a string based on the specified format.\n * If no format is provided, the value is formatted as decimal number using the\n * [`\"n\"`](https://github.com/telerik/kendo-intl/blob/master/docs/num-formatting/index.md#standard) format.\n *\n * @param value - The numer that will be formatted.\n * @param format - The format string or options.\n * @param localeId - (Optional) The locale ID that will be used in place of the default one.\n * @return - The formatted number.\n */\n transform(value, format$$1, localeId) {\n if (typeof value === 'string') {\n value = this.intlService.parseNumber(value);\n }\n if (value !== null && value !== undefined) {\n return this.intlService.formatNumber(value, format$$1, localeId);\n }\n return value;\n }\n}\nNumberPipe.decorators = [\n { type: Pipe, args: [{\n name: 'kendoNumber'\n },] },\n];\n/** @nocollapse */\nNumberPipe.ctorParameters = () => [\n { type: IntlService }\n];\n\nconst pipes = [\n DatePipe,\n NumberPipe\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }}docs/ts/latest/guide/ngmodule.html)\n * definition for the Intl services.\n */\nclass IntlModule {\n}\nIntlModule.decorators = [\n { type: NgModule, args: [{\n declarations: [pipes],\n exports: [pipes]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { cldrServiceFactory, IntlService, CldrIntlService, DatePipe, ɵ0, NumberPipe, IntlModule, dateFormatNames$1 as dateFormatNames, dateFieldName$1 as dateFieldName, firstDay$1 as firstDay, format$1 as format, formatDate$1 as formatDate, formatNumber$1 as formatNumber, load$1 as load, numberSymbols$1 as numberSymbols, parseDate$1 as parseDate, parseNumber$1 as parseNumber, splitDateFormat$1 as splitDateFormat, toString$1 as toString, weekendRange$1 as weekendRange, setData$1 as setData, localeData };\n","var setData = require('@progress/kendo-angular-intl').setData;\nsetData({\n name: \"en\",\n identity: {\n language: \"en\"\n },\n territory: \"US\",\n numbers: {\n symbols: {\n decimal: \".\",\n group: \",\",\n list: \";\",\n percentSign: \"%\",\n plusSign: \"+\",\n minusSign: \"-\",\n exponential: \"E\",\n superscriptingExponent: \"×\",\n perMille: \"‰\",\n infinity: \"∞\",\n nan: \"NaN\",\n timeSeparator: \":\"\n },\n decimal: {\n patterns: [\n \"n\"\n ],\n groupSize: [\n 3\n ]\n },\n scientific: {\n patterns: [\n \"nEn\"\n ],\n groupSize: []\n },\n percent: {\n patterns: [\n \"n%\"\n ],\n groupSize: [\n 3\n ]\n },\n currency: {\n patterns: [\n \"$n\"\n ],\n groupSize: [\n 3\n ],\n \"unitPattern-count-one\": \"n $\",\n \"unitPattern-count-other\": \"n $\"\n },\n currencies: {\n ADP: {\n displayName: \"Andorran Peseta\",\n \"displayName-count-one\": \"Andorran peseta\",\n \"displayName-count-other\": \"Andorran pesetas\",\n symbol: \"ADP\"\n },\n AED: {\n displayName: \"United Arab Emirates Dirham\",\n \"displayName-count-one\": \"UAE dirham\",\n \"displayName-count-other\": \"UAE dirhams\",\n symbol: \"AED\"\n },\n AFA: {\n displayName: \"Afghan Afghani (1927–2002)\",\n \"displayName-count-one\": \"Afghan afghani (1927–2002)\",\n \"displayName-count-other\": \"Afghan afghanis (1927–2002)\",\n symbol: \"AFA\"\n },\n AFN: {\n displayName: \"Afghan Afghani\",\n \"displayName-count-one\": \"Afghan Afghani\",\n \"displayName-count-other\": \"Afghan Afghanis\",\n symbol: \"AFN\"\n },\n ALK: {\n displayName: \"Albanian Lek (1946–1965)\",\n \"displayName-count-one\": \"Albanian lek (1946–1965)\",\n \"displayName-count-other\": \"Albanian lekë (1946–1965)\",\n symbol: \"ALK\"\n },\n ALL: {\n displayName: \"Albanian Lek\",\n \"displayName-count-one\": \"Albanian lek\",\n \"displayName-count-other\": \"Albanian lekë\",\n symbol: \"ALL\"\n },\n AMD: {\n displayName: \"Armenian Dram\",\n \"displayName-count-one\": \"Armenian dram\",\n \"displayName-count-other\": \"Armenian drams\",\n symbol: \"AMD\"\n },\n ANG: {\n displayName: \"Netherlands Antillean Guilder\",\n \"displayName-count-one\": \"Netherlands Antillean guilder\",\n \"displayName-count-other\": \"Netherlands Antillean guilders\",\n symbol: \"ANG\"\n },\n AOA: {\n displayName: \"Angolan Kwanza\",\n \"displayName-count-one\": \"Angolan kwanza\",\n \"displayName-count-other\": \"Angolan kwanzas\",\n symbol: \"AOA\",\n \"symbol-alt-narrow\": \"Kz\"\n },\n AOK: {\n displayName: \"Angolan Kwanza (1977–1991)\",\n \"displayName-count-one\": \"Angolan kwanza (1977–1991)\",\n \"displayName-count-other\": \"Angolan kwanzas (1977–1991)\",\n symbol: \"AOK\"\n },\n AON: {\n displayName: \"Angolan New Kwanza (1990–2000)\",\n \"displayName-count-one\": \"Angolan new kwanza (1990–2000)\",\n \"displayName-count-other\": \"Angolan new kwanzas (1990–2000)\",\n symbol: \"AON\"\n },\n AOR: {\n displayName: \"Angolan Readjusted Kwanza (1995–1999)\",\n \"displayName-count-one\": \"Angolan readjusted kwanza (1995–1999)\",\n \"displayName-count-other\": \"Angolan readjusted kwanzas (1995–1999)\",\n symbol: \"AOR\"\n },\n ARA: {\n displayName: \"Argentine Austral\",\n \"displayName-count-one\": \"Argentine austral\",\n \"displayName-count-other\": \"Argentine australs\",\n symbol: \"ARA\"\n },\n ARL: {\n displayName: \"Argentine Peso Ley (1970–1983)\",\n \"displayName-count-one\": \"Argentine peso ley (1970–1983)\",\n \"displayName-count-other\": \"Argentine pesos ley (1970–1983)\",\n symbol: \"ARL\"\n },\n ARM: {\n displayName: \"Argentine Peso (1881–1970)\",\n \"displayName-count-one\": \"Argentine peso (1881–1970)\",\n \"displayName-count-other\": \"Argentine pesos (1881–1970)\",\n symbol: \"ARM\"\n },\n ARP: {\n displayName: \"Argentine Peso (1983–1985)\",\n \"displayName-count-one\": \"Argentine peso (1983–1985)\",\n \"displayName-count-other\": \"Argentine pesos (1983–1985)\",\n symbol: \"ARP\"\n },\n ARS: {\n displayName: \"Argentine Peso\",\n \"displayName-count-one\": \"Argentine peso\",\n \"displayName-count-other\": \"Argentine pesos\",\n symbol: \"ARS\",\n \"symbol-alt-narrow\": \"$\"\n },\n ATS: {\n displayName: \"Austrian Schilling\",\n \"displayName-count-one\": \"Austrian schilling\",\n \"displayName-count-other\": \"Austrian schillings\",\n symbol: \"ATS\"\n },\n AUD: {\n displayName: \"Australian Dollar\",\n \"displayName-count-one\": \"Australian dollar\",\n \"displayName-count-other\": \"Australian dollars\",\n symbol: \"A$\",\n \"symbol-alt-narrow\": \"$\"\n },\n AWG: {\n displayName: \"Aruban Florin\",\n \"displayName-count-one\": \"Aruban florin\",\n \"displayName-count-other\": \"Aruban florin\",\n symbol: \"AWG\"\n },\n AZM: {\n displayName: \"Azerbaijani Manat (1993–2006)\",\n \"displayName-count-one\": \"Azerbaijani manat (1993–2006)\",\n \"displayName-count-other\": \"Azerbaijani manats (1993–2006)\",\n symbol: \"AZM\"\n },\n AZN: {\n displayName: \"Azerbaijani Manat\",\n \"displayName-count-one\": \"Azerbaijani manat\",\n \"displayName-count-other\": \"Azerbaijani manats\",\n symbol: \"AZN\"\n },\n BAD: {\n displayName: \"Bosnia-Herzegovina Dinar (1992–1994)\",\n \"displayName-count-one\": \"Bosnia-Herzegovina dinar (1992–1994)\",\n \"displayName-count-other\": \"Bosnia-Herzegovina dinars (1992–1994)\",\n symbol: \"BAD\"\n },\n BAM: {\n displayName: \"Bosnia-Herzegovina Convertible Mark\",\n \"displayName-count-one\": \"Bosnia-Herzegovina convertible mark\",\n \"displayName-count-other\": \"Bosnia-Herzegovina convertible marks\",\n symbol: \"BAM\",\n \"symbol-alt-narrow\": \"KM\"\n },\n BAN: {\n displayName: \"Bosnia-Herzegovina New Dinar (1994–1997)\",\n \"displayName-count-one\": \"Bosnia-Herzegovina new dinar (1994–1997)\",\n \"displayName-count-other\": \"Bosnia-Herzegovina new dinars (1994–1997)\",\n symbol: \"BAN\"\n },\n BBD: {\n displayName: \"Barbadian Dollar\",\n \"displayName-count-one\": \"Barbadian dollar\",\n \"displayName-count-other\": \"Barbadian dollars\",\n symbol: \"BBD\",\n \"symbol-alt-narrow\": \"$\"\n },\n BDT: {\n displayName: \"Bangladeshi Taka\",\n \"displayName-count-one\": \"Bangladeshi taka\",\n \"displayName-count-other\": \"Bangladeshi takas\",\n symbol: \"BDT\",\n \"symbol-alt-narrow\": \"৳\"\n },\n BEC: {\n displayName: \"Belgian Franc (convertible)\",\n \"displayName-count-one\": \"Belgian franc (convertible)\",\n \"displayName-count-other\": \"Belgian francs (convertible)\",\n symbol: \"BEC\"\n },\n BEF: {\n displayName: \"Belgian Franc\",\n \"displayName-count-one\": \"Belgian franc\",\n \"displayName-count-other\": \"Belgian francs\",\n symbol: \"BEF\"\n },\n BEL: {\n displayName: \"Belgian Franc (financial)\",\n \"displayName-count-one\": \"Belgian franc (financial)\",\n \"displayName-count-other\": \"Belgian francs (financial)\",\n symbol: \"BEL\"\n },\n BGL: {\n displayName: \"Bulgarian Hard Lev\",\n \"displayName-count-one\": \"Bulgarian hard lev\",\n \"displayName-count-other\": \"Bulgarian hard leva\",\n symbol: \"BGL\"\n },\n BGM: {\n displayName: \"Bulgarian Socialist Lev\",\n \"displayName-count-one\": \"Bulgarian socialist lev\",\n \"displayName-count-other\": \"Bulgarian socialist leva\",\n symbol: \"BGM\"\n },\n BGN: {\n displayName: \"Bulgarian Lev\",\n \"displayName-count-one\": \"Bulgarian lev\",\n \"displayName-count-other\": \"Bulgarian leva\",\n symbol: \"BGN\"\n },\n BGO: {\n displayName: \"Bulgarian Lev (1879–1952)\",\n \"displayName-count-one\": \"Bulgarian lev (1879–1952)\",\n \"displayName-count-other\": \"Bulgarian leva (1879–1952)\",\n symbol: \"BGO\"\n },\n BHD: {\n displayName: \"Bahraini Dinar\",\n \"displayName-count-one\": \"Bahraini dinar\",\n \"displayName-count-other\": \"Bahraini dinars\",\n symbol: \"BHD\"\n },\n BIF: {\n displayName: \"Burundian Franc\",\n \"displayName-count-one\": \"Burundian franc\",\n \"displayName-count-other\": \"Burundian francs\",\n symbol: \"BIF\"\n },\n BMD: {\n displayName: \"Bermudan Dollar\",\n \"displayName-count-one\": \"Bermudan dollar\",\n \"displayName-count-other\": \"Bermudan dollars\",\n symbol: \"BMD\",\n \"symbol-alt-narrow\": \"$\"\n },\n BND: {\n displayName: \"Brunei Dollar\",\n \"displayName-count-one\": \"Brunei dollar\",\n \"displayName-count-other\": \"Brunei dollars\",\n symbol: \"BND\",\n \"symbol-alt-narrow\": \"$\"\n },\n BOB: {\n displayName: \"Bolivian Boliviano\",\n \"displayName-count-one\": \"Bolivian boliviano\",\n \"displayName-count-other\": \"Bolivian bolivianos\",\n symbol: \"BOB\",\n \"symbol-alt-narrow\": \"Bs\"\n },\n BOL: {\n displayName: \"Bolivian Boliviano (1863–1963)\",\n \"displayName-count-one\": \"Bolivian boliviano (1863–1963)\",\n \"displayName-count-other\": \"Bolivian bolivianos (1863–1963)\",\n symbol: \"BOL\"\n },\n BOP: {\n displayName: \"Bolivian Peso\",\n \"displayName-count-one\": \"Bolivian peso\",\n \"displayName-count-other\": \"Bolivian pesos\",\n symbol: \"BOP\"\n },\n BOV: {\n displayName: \"Bolivian Mvdol\",\n \"displayName-count-one\": \"Bolivian mvdol\",\n \"displayName-count-other\": \"Bolivian mvdols\",\n symbol: \"BOV\"\n },\n BRB: {\n displayName: \"Brazilian New Cruzeiro (1967–1986)\",\n \"displayName-count-one\": \"Brazilian new cruzeiro (1967–1986)\",\n \"displayName-count-other\": \"Brazilian new cruzeiros (1967–1986)\",\n symbol: \"BRB\"\n },\n BRC: {\n displayName: \"Brazilian Cruzado (1986–1989)\",\n \"displayName-count-one\": \"Brazilian cruzado (1986–1989)\",\n \"displayName-count-other\": \"Brazilian cruzados (1986–1989)\",\n symbol: \"BRC\"\n },\n BRE: {\n displayName: \"Brazilian Cruzeiro (1990–1993)\",\n \"displayName-count-one\": \"Brazilian cruzeiro (1990–1993)\",\n \"displayName-count-other\": \"Brazilian cruzeiros (1990–1993)\",\n symbol: \"BRE\"\n },\n BRL: {\n displayName: \"Brazilian Real\",\n \"displayName-count-one\": \"Brazilian real\",\n \"displayName-count-other\": \"Brazilian reals\",\n symbol: \"R$\",\n \"symbol-alt-narrow\": \"R$\"\n },\n BRN: {\n displayName: \"Brazilian New Cruzado (1989–1990)\",\n \"displayName-count-one\": \"Brazilian new cruzado (1989–1990)\",\n \"displayName-count-other\": \"Brazilian new cruzados (1989–1990)\",\n symbol: \"BRN\"\n },\n BRR: {\n displayName: \"Brazilian Cruzeiro (1993–1994)\",\n \"displayName-count-one\": \"Brazilian cruzeiro (1993–1994)\",\n \"displayName-count-other\": \"Brazilian cruzeiros (1993–1994)\",\n symbol: \"BRR\"\n },\n BRZ: {\n displayName: \"Brazilian Cruzeiro (1942–1967)\",\n \"displayName-count-one\": \"Brazilian cruzeiro (1942–1967)\",\n \"displayName-count-other\": \"Brazilian cruzeiros (1942–1967)\",\n symbol: \"BRZ\"\n },\n BSD: {\n displayName: \"Bahamian Dollar\",\n \"displayName-count-one\": \"Bahamian dollar\",\n \"displayName-count-other\": \"Bahamian dollars\",\n symbol: \"BSD\",\n \"symbol-alt-narrow\": \"$\"\n },\n BTN: {\n displayName: \"Bhutanese Ngultrum\",\n \"displayName-count-one\": \"Bhutanese ngultrum\",\n \"displayName-count-other\": \"Bhutanese ngultrums\",\n symbol: \"BTN\"\n },\n BUK: {\n displayName: \"Burmese Kyat\",\n \"displayName-count-one\": \"Burmese kyat\",\n \"displayName-count-other\": \"Burmese kyats\",\n symbol: \"BUK\"\n },\n BWP: {\n displayName: \"Botswanan Pula\",\n \"displayName-count-one\": \"Botswanan pula\",\n \"displayName-count-other\": \"Botswanan pulas\",\n symbol: \"BWP\",\n \"symbol-alt-narrow\": \"P\"\n },\n BYB: {\n displayName: \"Belarusian Ruble (1994–1999)\",\n \"displayName-count-one\": \"Belarusian ruble (1994–1999)\",\n \"displayName-count-other\": \"Belarusian rubles (1994–1999)\",\n symbol: \"BYB\"\n },\n BYN: {\n displayName: \"Belarusian Ruble\",\n \"displayName-count-one\": \"Belarusian ruble\",\n \"displayName-count-other\": \"Belarusian rubles\",\n symbol: \"BYN\",\n \"symbol-alt-narrow\": \"р.\"\n },\n BYR: {\n displayName: \"Belarusian Ruble (2000–2016)\",\n \"displayName-count-one\": \"Belarusian ruble (2000–2016)\",\n \"displayName-count-other\": \"Belarusian rubles (2000–2016)\",\n symbol: \"BYR\"\n },\n BZD: {\n displayName: \"Belize Dollar\",\n \"displayName-count-one\": \"Belize dollar\",\n \"displayName-count-other\": \"Belize dollars\",\n symbol: \"BZD\",\n \"symbol-alt-narrow\": \"$\"\n },\n CAD: {\n displayName: \"Canadian Dollar\",\n \"displayName-count-one\": \"Canadian dollar\",\n \"displayName-count-other\": \"Canadian dollars\",\n symbol: \"CA$\",\n \"symbol-alt-narrow\": \"$\"\n },\n CDF: {\n displayName: \"Congolese Franc\",\n \"displayName-count-one\": \"Congolese franc\",\n \"displayName-count-other\": \"Congolese francs\",\n symbol: \"CDF\"\n },\n CHE: {\n displayName: \"WIR Euro\",\n \"displayName-count-one\": \"WIR euro\",\n \"displayName-count-other\": \"WIR euros\",\n symbol: \"CHE\"\n },\n CHF: {\n displayName: \"Swiss Franc\",\n \"displayName-count-one\": \"Swiss franc\",\n \"displayName-count-other\": \"Swiss francs\",\n symbol: \"CHF\"\n },\n CHW: {\n displayName: \"WIR Franc\",\n \"displayName-count-one\": \"WIR franc\",\n \"displayName-count-other\": \"WIR francs\",\n symbol: \"CHW\"\n },\n CLE: {\n displayName: \"Chilean Escudo\",\n \"displayName-count-one\": \"Chilean escudo\",\n \"displayName-count-other\": \"Chilean escudos\",\n symbol: \"CLE\"\n },\n CLF: {\n displayName: \"Chilean Unit of Account (UF)\",\n \"displayName-count-one\": \"Chilean unit of account (UF)\",\n \"displayName-count-other\": \"Chilean units of account (UF)\",\n symbol: \"CLF\"\n },\n CLP: {\n displayName: \"Chilean Peso\",\n \"displayName-count-one\": \"Chilean peso\",\n \"displayName-count-other\": \"Chilean pesos\",\n symbol: \"CLP\",\n \"symbol-alt-narrow\": \"$\"\n },\n CNH: {\n displayName: \"Chinese Yuan (offshore)\",\n \"displayName-count-one\": \"Chinese yuan (offshore)\",\n \"displayName-count-other\": \"Chinese yuan (offshore)\",\n symbol: \"CNH\"\n },\n CNX: {\n displayName: \"Chinese People’s Bank Dollar\",\n \"displayName-count-one\": \"Chinese People’s Bank dollar\",\n \"displayName-count-other\": \"Chinese People’s Bank dollars\",\n symbol: \"CNX\"\n },\n CNY: {\n displayName: \"Chinese Yuan\",\n \"displayName-count-one\": \"Chinese yuan\",\n \"displayName-count-other\": \"Chinese yuan\",\n symbol: \"CN¥\",\n \"symbol-alt-narrow\": \"¥\"\n },\n COP: {\n displayName: \"Colombian Peso\",\n \"displayName-count-one\": \"Colombian peso\",\n \"displayName-count-other\": \"Colombian pesos\",\n symbol: \"COP\",\n \"symbol-alt-narrow\": \"$\"\n },\n COU: {\n displayName: \"Colombian Real Value Unit\",\n \"displayName-count-one\": \"Colombian real value unit\",\n \"displayName-count-other\": \"Colombian real value units\",\n symbol: \"COU\"\n },\n CRC: {\n displayName: \"Costa Rican Colón\",\n \"displayName-count-one\": \"Costa Rican colón\",\n \"displayName-count-other\": \"Costa Rican colóns\",\n symbol: \"CRC\",\n \"symbol-alt-narrow\": \"₡\"\n },\n CSD: {\n displayName: \"Serbian Dinar (2002–2006)\",\n \"displayName-count-one\": \"Serbian dinar (2002–2006)\",\n \"displayName-count-other\": \"Serbian dinars (2002–2006)\",\n symbol: \"CSD\"\n },\n CSK: {\n displayName: \"Czechoslovak Hard Koruna\",\n \"displayName-count-one\": \"Czechoslovak hard koruna\",\n \"displayName-count-other\": \"Czechoslovak hard korunas\",\n symbol: \"CSK\"\n },\n CUC: {\n displayName: \"Cuban Convertible Peso\",\n \"displayName-count-one\": \"Cuban convertible peso\",\n \"displayName-count-other\": \"Cuban convertible pesos\",\n symbol: \"CUC\",\n \"symbol-alt-narrow\": \"$\"\n },\n CUP: {\n displayName: \"Cuban Peso\",\n \"displayName-count-one\": \"Cuban peso\",\n \"displayName-count-other\": \"Cuban pesos\",\n symbol: \"CUP\",\n \"symbol-alt-narrow\": \"$\"\n },\n CVE: {\n displayName: \"Cape Verdean Escudo\",\n \"displayName-count-one\": \"Cape Verdean escudo\",\n \"displayName-count-other\": \"Cape Verdean escudos\",\n symbol: \"CVE\"\n },\n CYP: {\n displayName: \"Cypriot Pound\",\n \"displayName-count-one\": \"Cypriot pound\",\n \"displayName-count-other\": \"Cypriot pounds\",\n symbol: \"CYP\"\n },\n CZK: {\n displayName: \"Czech Koruna\",\n \"displayName-count-one\": \"Czech koruna\",\n \"displayName-count-other\": \"Czech korunas\",\n symbol: \"CZK\",\n \"symbol-alt-narrow\": \"Kč\"\n },\n DDM: {\n displayName: \"East German Mark\",\n \"displayName-count-one\": \"East German mark\",\n \"displayName-count-other\": \"East German marks\",\n symbol: \"DDM\"\n },\n DEM: {\n displayName: \"German Mark\",\n \"displayName-count-one\": \"German mark\",\n \"displayName-count-other\": \"German marks\",\n symbol: \"DEM\"\n },\n DJF: {\n displayName: \"Djiboutian Franc\",\n \"displayName-count-one\": \"Djiboutian franc\",\n \"displayName-count-other\": \"Djiboutian francs\",\n symbol: \"DJF\"\n },\n DKK: {\n displayName: \"Danish Krone\",\n \"displayName-count-one\": \"Danish krone\",\n \"displayName-count-other\": \"Danish kroner\",\n symbol: \"DKK\",\n \"symbol-alt-narrow\": \"kr\"\n },\n DOP: {\n displayName: \"Dominican Peso\",\n \"displayName-count-one\": \"Dominican peso\",\n \"displayName-count-other\": \"Dominican pesos\",\n symbol: \"DOP\",\n \"symbol-alt-narrow\": \"$\"\n },\n DZD: {\n displayName: \"Algerian Dinar\",\n \"displayName-count-one\": \"Algerian dinar\",\n \"displayName-count-other\": \"Algerian dinars\",\n symbol: \"DZD\"\n },\n ECS: {\n displayName: \"Ecuadorian Sucre\",\n \"displayName-count-one\": \"Ecuadorian sucre\",\n \"displayName-count-other\": \"Ecuadorian sucres\",\n symbol: \"ECS\"\n },\n ECV: {\n displayName: \"Ecuadorian Unit of Constant Value\",\n \"displayName-count-one\": \"Ecuadorian unit of constant value\",\n \"displayName-count-other\": \"Ecuadorian units of constant value\",\n symbol: \"ECV\"\n },\n EEK: {\n displayName: \"Estonian Kroon\",\n \"displayName-count-one\": \"Estonian kroon\",\n \"displayName-count-other\": \"Estonian kroons\",\n symbol: \"EEK\"\n },\n EGP: {\n displayName: \"Egyptian Pound\",\n \"displayName-count-one\": \"Egyptian pound\",\n \"displayName-count-other\": \"Egyptian pounds\",\n symbol: \"EGP\",\n \"symbol-alt-narrow\": \"E£\"\n },\n ERN: {\n displayName: \"Eritrean Nakfa\",\n \"displayName-count-one\": \"Eritrean nakfa\",\n \"displayName-count-other\": \"Eritrean nakfas\",\n symbol: \"ERN\"\n },\n ESA: {\n displayName: \"Spanish Peseta (A account)\",\n \"displayName-count-one\": \"Spanish peseta (A account)\",\n \"displayName-count-other\": \"Spanish pesetas (A account)\",\n symbol: \"ESA\"\n },\n ESB: {\n displayName: \"Spanish Peseta (convertible account)\",\n \"displayName-count-one\": \"Spanish peseta (convertible account)\",\n \"displayName-count-other\": \"Spanish pesetas (convertible account)\",\n symbol: \"ESB\"\n },\n ESP: {\n displayName: \"Spanish Peseta\",\n \"displayName-count-one\": \"Spanish peseta\",\n \"displayName-count-other\": \"Spanish pesetas\",\n symbol: \"ESP\",\n \"symbol-alt-narrow\": \"₧\"\n },\n ETB: {\n displayName: \"Ethiopian Birr\",\n \"displayName-count-one\": \"Ethiopian birr\",\n \"displayName-count-other\": \"Ethiopian birrs\",\n symbol: \"ETB\"\n },\n EUR: {\n displayName: \"Euro\",\n \"displayName-count-one\": \"euro\",\n \"displayName-count-other\": \"euros\",\n symbol: \"€\",\n \"symbol-alt-narrow\": \"€\"\n },\n FIM: {\n displayName: \"Finnish Markka\",\n \"displayName-count-one\": \"Finnish markka\",\n \"displayName-count-other\": \"Finnish markkas\",\n symbol: \"FIM\"\n },\n FJD: {\n displayName: \"Fijian Dollar\",\n \"displayName-count-one\": \"Fijian dollar\",\n \"displayName-count-other\": \"Fijian dollars\",\n symbol: \"FJD\",\n \"symbol-alt-narrow\": \"$\"\n },\n FKP: {\n displayName: \"Falkland Islands Pound\",\n \"displayName-count-one\": \"Falkland Islands pound\",\n \"displayName-count-other\": \"Falkland Islands pounds\",\n symbol: \"FKP\",\n \"symbol-alt-narrow\": \"£\"\n },\n FRF: {\n displayName: \"French Franc\",\n \"displayName-count-one\": \"French franc\",\n \"displayName-count-other\": \"French francs\",\n symbol: \"FRF\"\n },\n GBP: {\n displayName: \"British Pound\",\n \"displayName-count-one\": \"British pound\",\n \"displayName-count-other\": \"British pounds\",\n symbol: \"£\",\n \"symbol-alt-narrow\": \"£\"\n },\n GEK: {\n displayName: \"Georgian Kupon Larit\",\n \"displayName-count-one\": \"Georgian kupon larit\",\n \"displayName-count-other\": \"Georgian kupon larits\",\n symbol: \"GEK\"\n },\n GEL: {\n displayName: \"Georgian Lari\",\n \"displayName-count-one\": \"Georgian lari\",\n \"displayName-count-other\": \"Georgian laris\",\n symbol: \"GEL\",\n \"symbol-alt-narrow\": \"₾\"\n },\n GHC: {\n displayName: \"Ghanaian Cedi (1979–2007)\",\n \"displayName-count-one\": \"Ghanaian cedi (1979–2007)\",\n \"displayName-count-other\": \"Ghanaian cedis (1979–2007)\",\n symbol: \"GHC\"\n },\n GHS: {\n displayName: \"Ghanaian Cedi\",\n \"displayName-count-one\": \"Ghanaian cedi\",\n \"displayName-count-other\": \"Ghanaian cedis\",\n symbol: \"GHS\"\n },\n GIP: {\n displayName: \"Gibraltar Pound\",\n \"displayName-count-one\": \"Gibraltar pound\",\n \"displayName-count-other\": \"Gibraltar pounds\",\n symbol: \"GIP\",\n \"symbol-alt-narrow\": \"£\"\n },\n GMD: {\n displayName: \"Gambian Dalasi\",\n \"displayName-count-one\": \"Gambian dalasi\",\n \"displayName-count-other\": \"Gambian dalasis\",\n symbol: \"GMD\"\n },\n GNF: {\n displayName: \"Guinean Franc\",\n \"displayName-count-one\": \"Guinean franc\",\n \"displayName-count-other\": \"Guinean francs\",\n symbol: \"GNF\",\n \"symbol-alt-narrow\": \"FG\"\n },\n GNS: {\n displayName: \"Guinean Syli\",\n \"displayName-count-one\": \"Guinean syli\",\n \"displayName-count-other\": \"Guinean sylis\",\n symbol: \"GNS\"\n },\n GQE: {\n displayName: \"Equatorial Guinean Ekwele\",\n \"displayName-count-one\": \"Equatorial Guinean ekwele\",\n \"displayName-count-other\": \"Equatorial Guinean ekwele\",\n symbol: \"GQE\"\n },\n GRD: {\n displayName: \"Greek Drachma\",\n \"displayName-count-one\": \"Greek drachma\",\n \"displayName-count-other\": \"Greek drachmas\",\n symbol: \"GRD\"\n },\n GTQ: {\n displayName: \"Guatemalan Quetzal\",\n \"displayName-count-one\": \"Guatemalan quetzal\",\n \"displayName-count-other\": \"Guatemalan quetzals\",\n symbol: \"GTQ\",\n \"symbol-alt-narrow\": \"Q\"\n },\n GWE: {\n displayName: \"Portuguese Guinea Escudo\",\n \"displayName-count-one\": \"Portuguese Guinea escudo\",\n \"displayName-count-other\": \"Portuguese Guinea escudos\",\n symbol: \"GWE\"\n },\n GWP: {\n displayName: \"Guinea-Bissau Peso\",\n \"displayName-count-one\": \"Guinea-Bissau peso\",\n \"displayName-count-other\": \"Guinea-Bissau pesos\",\n symbol: \"GWP\"\n },\n GYD: {\n displayName: \"Guyanaese Dollar\",\n \"displayName-count-one\": \"Guyanaese dollar\",\n \"displayName-count-other\": \"Guyanaese dollars\",\n symbol: \"GYD\",\n \"symbol-alt-narrow\": \"$\"\n },\n HKD: {\n displayName: \"Hong Kong Dollar\",\n \"displayName-count-one\": \"Hong Kong dollar\",\n \"displayName-count-other\": \"Hong Kong dollars\",\n symbol: \"HK$\",\n \"symbol-alt-narrow\": \"$\"\n },\n HNL: {\n displayName: \"Honduran Lempira\",\n \"displayName-count-one\": \"Honduran lempira\",\n \"displayName-count-other\": \"Honduran lempiras\",\n symbol: \"HNL\",\n \"symbol-alt-narrow\": \"L\"\n },\n HRD: {\n displayName: \"Croatian Dinar\",\n \"displayName-count-one\": \"Croatian dinar\",\n \"displayName-count-other\": \"Croatian dinars\",\n symbol: \"HRD\"\n },\n HRK: {\n displayName: \"Croatian Kuna\",\n \"displayName-count-one\": \"Croatian kuna\",\n \"displayName-count-other\": \"Croatian kunas\",\n symbol: \"HRK\",\n \"symbol-alt-narrow\": \"kn\"\n },\n HTG: {\n displayName: \"Haitian Gourde\",\n \"displayName-count-one\": \"Haitian gourde\",\n \"displayName-count-other\": \"Haitian gourdes\",\n symbol: \"HTG\"\n },\n HUF: {\n displayName: \"Hungarian Forint\",\n \"displayName-count-one\": \"Hungarian forint\",\n \"displayName-count-other\": \"Hungarian forints\",\n symbol: \"HUF\",\n \"symbol-alt-narrow\": \"Ft\"\n },\n IDR: {\n displayName: \"Indonesian Rupiah\",\n \"displayName-count-one\": \"Indonesian rupiah\",\n \"displayName-count-other\": \"Indonesian rupiahs\",\n symbol: \"IDR\",\n \"symbol-alt-narrow\": \"Rp\"\n },\n IEP: {\n displayName: \"Irish Pound\",\n \"displayName-count-one\": \"Irish pound\",\n \"displayName-count-other\": \"Irish pounds\",\n symbol: \"IEP\"\n },\n ILP: {\n displayName: \"Israeli Pound\",\n \"displayName-count-one\": \"Israeli pound\",\n \"displayName-count-other\": \"Israeli pounds\",\n symbol: \"ILP\"\n },\n ILR: {\n displayName: \"Israeli Shekel (1980–1985)\",\n \"displayName-count-one\": \"Israeli shekel (1980–1985)\",\n \"displayName-count-other\": \"Israeli shekels (1980–1985)\",\n symbol: \"ILR\"\n },\n ILS: {\n displayName: \"Israeli New Shekel\",\n \"displayName-count-one\": \"Israeli new shekel\",\n \"displayName-count-other\": \"Israeli new shekels\",\n symbol: \"₪\",\n \"symbol-alt-narrow\": \"₪\"\n },\n INR: {\n displayName: \"Indian Rupee\",\n \"displayName-count-one\": \"Indian rupee\",\n \"displayName-count-other\": \"Indian rupees\",\n symbol: \"₹\",\n \"symbol-alt-narrow\": \"₹\"\n },\n IQD: {\n displayName: \"Iraqi Dinar\",\n \"displayName-count-one\": \"Iraqi dinar\",\n \"displayName-count-other\": \"Iraqi dinars\",\n symbol: \"IQD\"\n },\n IRR: {\n displayName: \"Iranian Rial\",\n \"displayName-count-one\": \"Iranian rial\",\n \"displayName-count-other\": \"Iranian rials\",\n symbol: \"IRR\"\n },\n ISJ: {\n displayName: \"Icelandic Króna (1918–1981)\",\n \"displayName-count-one\": \"Icelandic króna (1918–1981)\",\n \"displayName-count-other\": \"Icelandic krónur (1918–1981)\",\n symbol: \"ISJ\"\n },\n ISK: {\n displayName: \"Icelandic Króna\",\n \"displayName-count-one\": \"Icelandic króna\",\n \"displayName-count-other\": \"Icelandic krónur\",\n symbol: \"ISK\",\n \"symbol-alt-narrow\": \"kr\"\n },\n ITL: {\n displayName: \"Italian Lira\",\n \"displayName-count-one\": \"Italian lira\",\n \"displayName-count-other\": \"Italian liras\",\n symbol: \"ITL\"\n },\n JMD: {\n displayName: \"Jamaican Dollar\",\n \"displayName-count-one\": \"Jamaican dollar\",\n \"displayName-count-other\": \"Jamaican dollars\",\n symbol: \"JMD\",\n \"symbol-alt-narrow\": \"$\"\n },\n JOD: {\n displayName: \"Jordanian Dinar\",\n \"displayName-count-one\": \"Jordanian dinar\",\n \"displayName-count-other\": \"Jordanian dinars\",\n symbol: \"JOD\"\n },\n JPY: {\n displayName: \"Japanese Yen\",\n \"displayName-count-one\": \"Japanese yen\",\n \"displayName-count-other\": \"Japanese yen\",\n symbol: \"¥\",\n \"symbol-alt-narrow\": \"¥\"\n },\n KES: {\n displayName: \"Kenyan Shilling\",\n \"displayName-count-one\": \"Kenyan shilling\",\n \"displayName-count-other\": \"Kenyan shillings\",\n symbol: \"KES\"\n },\n KGS: {\n displayName: \"Kyrgystani Som\",\n \"displayName-count-one\": \"Kyrgystani som\",\n \"displayName-count-other\": \"Kyrgystani soms\",\n symbol: \"KGS\"\n },\n KHR: {\n displayName: \"Cambodian Riel\",\n \"displayName-count-one\": \"Cambodian riel\",\n \"displayName-count-other\": \"Cambodian riels\",\n symbol: \"KHR\",\n \"symbol-alt-narrow\": \"៛\"\n },\n KMF: {\n displayName: \"Comorian Franc\",\n \"displayName-count-one\": \"Comorian franc\",\n \"displayName-count-other\": \"Comorian francs\",\n symbol: \"KMF\",\n \"symbol-alt-narrow\": \"CF\"\n },\n KPW: {\n displayName: \"North Korean Won\",\n \"displayName-count-one\": \"North Korean won\",\n \"displayName-count-other\": \"North Korean won\",\n symbol: \"KPW\",\n \"symbol-alt-narrow\": \"₩\"\n },\n KRH: {\n displayName: \"South Korean Hwan (1953–1962)\",\n \"displayName-count-one\": \"South Korean hwan (1953–1962)\",\n \"displayName-count-other\": \"South Korean hwan (1953–1962)\",\n symbol: \"KRH\"\n },\n KRO: {\n displayName: \"South Korean Won (1945–1953)\",\n \"displayName-count-one\": \"South Korean won (1945–1953)\",\n \"displayName-count-other\": \"South Korean won (1945–1953)\",\n symbol: \"KRO\"\n },\n KRW: {\n displayName: \"South Korean Won\",\n \"displayName-count-one\": \"South Korean won\",\n \"displayName-count-other\": \"South Korean won\",\n symbol: \"₩\",\n \"symbol-alt-narrow\": \"₩\"\n },\n KWD: {\n displayName: \"Kuwaiti Dinar\",\n \"displayName-count-one\": \"Kuwaiti dinar\",\n \"displayName-count-other\": \"Kuwaiti dinars\",\n symbol: \"KWD\"\n },\n KYD: {\n displayName: \"Cayman Islands Dollar\",\n \"displayName-count-one\": \"Cayman Islands dollar\",\n \"displayName-count-other\": \"Cayman Islands dollars\",\n symbol: \"KYD\",\n \"symbol-alt-narrow\": \"$\"\n },\n KZT: {\n displayName: \"Kazakhstani Tenge\",\n \"displayName-count-one\": \"Kazakhstani tenge\",\n \"displayName-count-other\": \"Kazakhstani tenges\",\n symbol: \"KZT\",\n \"symbol-alt-narrow\": \"₸\"\n },\n LAK: {\n displayName: \"Laotian Kip\",\n \"displayName-count-one\": \"Laotian kip\",\n \"displayName-count-other\": \"Laotian kips\",\n symbol: \"LAK\",\n \"symbol-alt-narrow\": \"₭\"\n },\n LBP: {\n displayName: \"Lebanese Pound\",\n \"displayName-count-one\": \"Lebanese pound\",\n \"displayName-count-other\": \"Lebanese pounds\",\n symbol: \"LBP\",\n \"symbol-alt-narrow\": \"L£\"\n },\n LKR: {\n displayName: \"Sri Lankan Rupee\",\n \"displayName-count-one\": \"Sri Lankan rupee\",\n \"displayName-count-other\": \"Sri Lankan rupees\",\n symbol: \"LKR\",\n \"symbol-alt-narrow\": \"Rs\"\n },\n LRD: {\n displayName: \"Liberian Dollar\",\n \"displayName-count-one\": \"Liberian dollar\",\n \"displayName-count-other\": \"Liberian dollars\",\n symbol: \"LRD\",\n \"symbol-alt-narrow\": \"$\"\n },\n LSL: {\n displayName: \"Lesotho Loti\",\n \"displayName-count-one\": \"Lesotho loti\",\n \"displayName-count-other\": \"Lesotho lotis\",\n symbol: \"LSL\"\n },\n LTL: {\n displayName: \"Lithuanian Litas\",\n \"displayName-count-one\": \"Lithuanian litas\",\n \"displayName-count-other\": \"Lithuanian litai\",\n symbol: \"LTL\",\n \"symbol-alt-narrow\": \"Lt\"\n },\n LTT: {\n displayName: \"Lithuanian Talonas\",\n \"displayName-count-one\": \"Lithuanian talonas\",\n \"displayName-count-other\": \"Lithuanian talonases\",\n symbol: \"LTT\"\n },\n LUC: {\n displayName: \"Luxembourgian Convertible Franc\",\n \"displayName-count-one\": \"Luxembourgian convertible franc\",\n \"displayName-count-other\": \"Luxembourgian convertible francs\",\n symbol: \"LUC\"\n },\n LUF: {\n displayName: \"Luxembourgian Franc\",\n \"displayName-count-one\": \"Luxembourgian franc\",\n \"displayName-count-other\": \"Luxembourgian francs\",\n symbol: \"LUF\"\n },\n LUL: {\n displayName: \"Luxembourg Financial Franc\",\n \"displayName-count-one\": \"Luxembourg financial franc\",\n \"displayName-count-other\": \"Luxembourg financial francs\",\n symbol: \"LUL\"\n },\n LVL: {\n displayName: \"Latvian Lats\",\n \"displayName-count-one\": \"Latvian lats\",\n \"displayName-count-other\": \"Latvian lati\",\n symbol: \"LVL\",\n \"symbol-alt-narrow\": \"Ls\"\n },\n LVR: {\n displayName: \"Latvian Ruble\",\n \"displayName-count-one\": \"Latvian ruble\",\n \"displayName-count-other\": \"Latvian rubles\",\n symbol: \"LVR\"\n },\n LYD: {\n displayName: \"Libyan Dinar\",\n \"displayName-count-one\": \"Libyan dinar\",\n \"displayName-count-other\": \"Libyan dinars\",\n symbol: \"LYD\"\n },\n MAD: {\n displayName: \"Moroccan Dirham\",\n \"displayName-count-one\": \"Moroccan dirham\",\n \"displayName-count-other\": \"Moroccan dirhams\",\n symbol: \"MAD\"\n },\n MAF: {\n displayName: \"Moroccan Franc\",\n \"displayName-count-one\": \"Moroccan franc\",\n \"displayName-count-other\": \"Moroccan francs\",\n symbol: \"MAF\"\n },\n MCF: {\n displayName: \"Monegasque Franc\",\n \"displayName-count-one\": \"Monegasque franc\",\n \"displayName-count-other\": \"Monegasque francs\",\n symbol: \"MCF\"\n },\n MDC: {\n displayName: \"Moldovan Cupon\",\n \"displayName-count-one\": \"Moldovan cupon\",\n \"displayName-count-other\": \"Moldovan cupon\",\n symbol: \"MDC\"\n },\n MDL: {\n displayName: \"Moldovan Leu\",\n \"displayName-count-one\": \"Moldovan leu\",\n \"displayName-count-other\": \"Moldovan lei\",\n symbol: \"MDL\"\n },\n MGA: {\n displayName: \"Malagasy Ariary\",\n \"displayName-count-one\": \"Malagasy ariary\",\n \"displayName-count-other\": \"Malagasy ariaries\",\n symbol: \"MGA\",\n \"symbol-alt-narrow\": \"Ar\"\n },\n MGF: {\n displayName: \"Malagasy Franc\",\n \"displayName-count-one\": \"Malagasy franc\",\n \"displayName-count-other\": \"Malagasy francs\",\n symbol: \"MGF\"\n },\n MKD: {\n displayName: \"Macedonian Denar\",\n \"displayName-count-one\": \"Macedonian denar\",\n \"displayName-count-other\": \"Macedonian denari\",\n symbol: \"MKD\"\n },\n MKN: {\n displayName: \"Macedonian Denar (1992–1993)\",\n \"displayName-count-one\": \"Macedonian denar (1992–1993)\",\n \"displayName-count-other\": \"Macedonian denari (1992–1993)\",\n symbol: \"MKN\"\n },\n MLF: {\n displayName: \"Malian Franc\",\n \"displayName-count-one\": \"Malian franc\",\n \"displayName-count-other\": \"Malian francs\",\n symbol: \"MLF\"\n },\n MMK: {\n displayName: \"Myanmar Kyat\",\n \"displayName-count-one\": \"Myanmar kyat\",\n \"displayName-count-other\": \"Myanmar kyats\",\n symbol: \"MMK\",\n \"symbol-alt-narrow\": \"K\"\n },\n MNT: {\n displayName: \"Mongolian Tugrik\",\n \"displayName-count-one\": \"Mongolian tugrik\",\n \"displayName-count-other\": \"Mongolian tugriks\",\n symbol: \"MNT\",\n \"symbol-alt-narrow\": \"₮\"\n },\n MOP: {\n displayName: \"Macanese Pataca\",\n \"displayName-count-one\": \"Macanese pataca\",\n \"displayName-count-other\": \"Macanese patacas\",\n symbol: \"MOP\"\n },\n MRO: {\n displayName: \"Mauritanian Ouguiya (1973–2017)\",\n \"displayName-count-one\": \"Mauritanian ouguiya (1973–2017)\",\n \"displayName-count-other\": \"Mauritanian ouguiyas (1973–2017)\",\n symbol: \"MRO\"\n },\n MRU: {\n displayName: \"Mauritanian Ouguiya\",\n \"displayName-count-one\": \"Mauritanian ouguiya\",\n \"displayName-count-other\": \"Mauritanian ouguiyas\",\n symbol: \"MRU\"\n },\n MTL: {\n displayName: \"Maltese Lira\",\n \"displayName-count-one\": \"Maltese lira\",\n \"displayName-count-other\": \"Maltese lira\",\n symbol: \"MTL\"\n },\n MTP: {\n displayName: \"Maltese Pound\",\n \"displayName-count-one\": \"Maltese pound\",\n \"displayName-count-other\": \"Maltese pounds\",\n symbol: \"MTP\"\n },\n MUR: {\n displayName: \"Mauritian Rupee\",\n \"displayName-count-one\": \"Mauritian rupee\",\n \"displayName-count-other\": \"Mauritian rupees\",\n symbol: \"MUR\",\n \"symbol-alt-narrow\": \"Rs\"\n },\n MVP: {\n displayName: \"Maldivian Rupee (1947–1981)\",\n \"displayName-count-one\": \"Maldivian rupee (1947–1981)\",\n \"displayName-count-other\": \"Maldivian rupees (1947–1981)\",\n symbol: \"MVP\"\n },\n MVR: {\n displayName: \"Maldivian Rufiyaa\",\n \"displayName-count-one\": \"Maldivian rufiyaa\",\n \"displayName-count-other\": \"Maldivian rufiyaas\",\n symbol: \"MVR\"\n },\n MWK: {\n displayName: \"Malawian Kwacha\",\n \"displayName-count-one\": \"Malawian kwacha\",\n \"displayName-count-other\": \"Malawian kwachas\",\n symbol: \"MWK\"\n },\n MXN: {\n displayName: \"Mexican Peso\",\n \"displayName-count-one\": \"Mexican peso\",\n \"displayName-count-other\": \"Mexican pesos\",\n symbol: \"MX$\",\n \"symbol-alt-narrow\": \"$\"\n },\n MXP: {\n displayName: \"Mexican Silver Peso (1861–1992)\",\n \"displayName-count-one\": \"Mexican silver peso (1861–1992)\",\n \"displayName-count-other\": \"Mexican silver pesos (1861–1992)\",\n symbol: \"MXP\"\n },\n MXV: {\n displayName: \"Mexican Investment Unit\",\n \"displayName-count-one\": \"Mexican investment unit\",\n \"displayName-count-other\": \"Mexican investment units\",\n symbol: \"MXV\"\n },\n MYR: {\n displayName: \"Malaysian Ringgit\",\n \"displayName-count-one\": \"Malaysian ringgit\",\n \"displayName-count-other\": \"Malaysian ringgits\",\n symbol: \"MYR\",\n \"symbol-alt-narrow\": \"RM\"\n },\n MZE: {\n displayName: \"Mozambican Escudo\",\n \"displayName-count-one\": \"Mozambican escudo\",\n \"displayName-count-other\": \"Mozambican escudos\",\n symbol: \"MZE\"\n },\n MZM: {\n displayName: \"Mozambican Metical (1980–2006)\",\n \"displayName-count-one\": \"Mozambican metical (1980–2006)\",\n \"displayName-count-other\": \"Mozambican meticals (1980–2006)\",\n symbol: \"MZM\"\n },\n MZN: {\n displayName: \"Mozambican Metical\",\n \"displayName-count-one\": \"Mozambican metical\",\n \"displayName-count-other\": \"Mozambican meticals\",\n symbol: \"MZN\"\n },\n NAD: {\n displayName: \"Namibian Dollar\",\n \"displayName-count-one\": \"Namibian dollar\",\n \"displayName-count-other\": \"Namibian dollars\",\n symbol: \"NAD\",\n \"symbol-alt-narrow\": \"$\"\n },\n NGN: {\n displayName: \"Nigerian Naira\",\n \"displayName-count-one\": \"Nigerian naira\",\n \"displayName-count-other\": \"Nigerian nairas\",\n symbol: \"NGN\",\n \"symbol-alt-narrow\": \"₦\"\n },\n NIC: {\n displayName: \"Nicaraguan Córdoba (1988–1991)\",\n \"displayName-count-one\": \"Nicaraguan córdoba (1988–1991)\",\n \"displayName-count-other\": \"Nicaraguan córdobas (1988–1991)\",\n symbol: \"NIC\"\n },\n NIO: {\n displayName: \"Nicaraguan Córdoba\",\n \"displayName-count-one\": \"Nicaraguan córdoba\",\n \"displayName-count-other\": \"Nicaraguan córdobas\",\n symbol: \"NIO\",\n \"symbol-alt-narrow\": \"C$\"\n },\n NLG: {\n displayName: \"Dutch Guilder\",\n \"displayName-count-one\": \"Dutch guilder\",\n \"displayName-count-other\": \"Dutch guilders\",\n symbol: \"NLG\"\n },\n NOK: {\n displayName: \"Norwegian Krone\",\n \"displayName-count-one\": \"Norwegian krone\",\n \"displayName-count-other\": \"Norwegian kroner\",\n symbol: \"NOK\",\n \"symbol-alt-narrow\": \"kr\"\n },\n NPR: {\n displayName: \"Nepalese Rupee\",\n \"displayName-count-one\": \"Nepalese rupee\",\n \"displayName-count-other\": \"Nepalese rupees\",\n symbol: \"NPR\",\n \"symbol-alt-narrow\": \"Rs\"\n },\n NZD: {\n displayName: \"New Zealand Dollar\",\n \"displayName-count-one\": \"New Zealand dollar\",\n \"displayName-count-other\": \"New Zealand dollars\",\n symbol: \"NZ$\",\n \"symbol-alt-narrow\": \"$\"\n },\n OMR: {\n displayName: \"Omani Rial\",\n \"displayName-count-one\": \"Omani rial\",\n \"displayName-count-other\": \"Omani rials\",\n symbol: \"OMR\"\n },\n PAB: {\n displayName: \"Panamanian Balboa\",\n \"displayName-count-one\": \"Panamanian balboa\",\n \"displayName-count-other\": \"Panamanian balboas\",\n symbol: \"PAB\"\n },\n PEI: {\n displayName: \"Peruvian Inti\",\n \"displayName-count-one\": \"Peruvian inti\",\n \"displayName-count-other\": \"Peruvian intis\",\n symbol: \"PEI\"\n },\n PEN: {\n displayName: \"Peruvian Sol\",\n \"displayName-count-one\": \"Peruvian sol\",\n \"displayName-count-other\": \"Peruvian soles\",\n symbol: \"PEN\"\n },\n PES: {\n displayName: \"Peruvian Sol (1863–1965)\",\n \"displayName-count-one\": \"Peruvian sol (1863–1965)\",\n \"displayName-count-other\": \"Peruvian soles (1863–1965)\",\n symbol: \"PES\"\n },\n PGK: {\n displayName: \"Papua New Guinean Kina\",\n \"displayName-count-one\": \"Papua New Guinean kina\",\n \"displayName-count-other\": \"Papua New Guinean kina\",\n symbol: \"PGK\"\n },\n PHP: {\n displayName: \"Philippine Piso\",\n \"displayName-count-one\": \"Philippine piso\",\n \"displayName-count-other\": \"Philippine pisos\",\n symbol: \"PHP\",\n \"symbol-alt-narrow\": \"₱\"\n },\n PKR: {\n displayName: \"Pakistani Rupee\",\n \"displayName-count-one\": \"Pakistani rupee\",\n \"displayName-count-other\": \"Pakistani rupees\",\n symbol: \"PKR\",\n \"symbol-alt-narrow\": \"Rs\"\n },\n PLN: {\n displayName: \"Polish Zloty\",\n \"displayName-count-one\": \"Polish zloty\",\n \"displayName-count-other\": \"Polish zlotys\",\n symbol: \"PLN\",\n \"symbol-alt-narrow\": \"zł\"\n },\n PLZ: {\n displayName: \"Polish Zloty (1950–1995)\",\n \"displayName-count-one\": \"Polish zloty (PLZ)\",\n \"displayName-count-other\": \"Polish zlotys (PLZ)\",\n symbol: \"PLZ\"\n },\n PTE: {\n displayName: \"Portuguese Escudo\",\n \"displayName-count-one\": \"Portuguese escudo\",\n \"displayName-count-other\": \"Portuguese escudos\",\n symbol: \"PTE\"\n },\n PYG: {\n displayName: \"Paraguayan Guarani\",\n \"displayName-count-one\": \"Paraguayan guarani\",\n \"displayName-count-other\": \"Paraguayan guaranis\",\n symbol: \"PYG\",\n \"symbol-alt-narrow\": \"₲\"\n },\n QAR: {\n displayName: \"Qatari Rial\",\n \"displayName-count-one\": \"Qatari rial\",\n \"displayName-count-other\": \"Qatari rials\",\n symbol: \"QAR\"\n },\n RHD: {\n displayName: \"Rhodesian Dollar\",\n \"displayName-count-one\": \"Rhodesian dollar\",\n \"displayName-count-other\": \"Rhodesian dollars\",\n symbol: \"RHD\"\n },\n ROL: {\n displayName: \"Romanian Leu (1952–2006)\",\n \"displayName-count-one\": \"Romanian leu (1952–2006)\",\n \"displayName-count-other\": \"Romanian Lei (1952–2006)\",\n symbol: \"ROL\"\n },\n RON: {\n displayName: \"Romanian Leu\",\n \"displayName-count-one\": \"Romanian leu\",\n \"displayName-count-other\": \"Romanian lei\",\n symbol: \"RON\",\n \"symbol-alt-narrow\": \"lei\"\n },\n RSD: {\n displayName: \"Serbian Dinar\",\n \"displayName-count-one\": \"Serbian dinar\",\n \"displayName-count-other\": \"Serbian dinars\",\n symbol: \"RSD\"\n },\n RUB: {\n displayName: \"Russian Ruble\",\n \"displayName-count-one\": \"Russian ruble\",\n \"displayName-count-other\": \"Russian rubles\",\n symbol: \"RUB\",\n \"symbol-alt-narrow\": \"₽\"\n },\n RUR: {\n displayName: \"Russian Ruble (1991–1998)\",\n \"displayName-count-one\": \"Russian ruble (1991–1998)\",\n \"displayName-count-other\": \"Russian rubles (1991–1998)\",\n symbol: \"RUR\",\n \"symbol-alt-narrow\": \"р.\"\n },\n RWF: {\n displayName: \"Rwandan Franc\",\n \"displayName-count-one\": \"Rwandan franc\",\n \"displayName-count-other\": \"Rwandan francs\",\n symbol: \"RWF\",\n \"symbol-alt-narrow\": \"RF\"\n },\n SAR: {\n displayName: \"Saudi Riyal\",\n \"displayName-count-one\": \"Saudi riyal\",\n \"displayName-count-other\": \"Saudi riyals\",\n symbol: \"SAR\"\n },\n SBD: {\n displayName: \"Solomon Islands Dollar\",\n \"displayName-count-one\": \"Solomon Islands dollar\",\n \"displayName-count-other\": \"Solomon Islands dollars\",\n symbol: \"SBD\",\n \"symbol-alt-narrow\": \"$\"\n },\n SCR: {\n displayName: \"Seychellois Rupee\",\n \"displayName-count-one\": \"Seychellois rupee\",\n \"displayName-count-other\": \"Seychellois rupees\",\n symbol: \"SCR\"\n },\n SDD: {\n displayName: \"Sudanese Dinar (1992–2007)\",\n \"displayName-count-one\": \"Sudanese dinar (1992–2007)\",\n \"displayName-count-other\": \"Sudanese dinars (1992–2007)\",\n symbol: \"SDD\"\n },\n SDG: {\n displayName: \"Sudanese Pound\",\n \"displayName-count-one\": \"Sudanese pound\",\n \"displayName-count-other\": \"Sudanese pounds\",\n symbol: \"SDG\"\n },\n SDP: {\n displayName: \"Sudanese Pound (1957–1998)\",\n \"displayName-count-one\": \"Sudanese pound (1957–1998)\",\n \"displayName-count-other\": \"Sudanese pounds (1957–1998)\",\n symbol: \"SDP\"\n },\n SEK: {\n displayName: \"Swedish Krona\",\n \"displayName-count-one\": \"Swedish krona\",\n \"displayName-count-other\": \"Swedish kronor\",\n symbol: \"SEK\",\n \"symbol-alt-narrow\": \"kr\"\n },\n SGD: {\n displayName: \"Singapore Dollar\",\n \"displayName-count-one\": \"Singapore dollar\",\n \"displayName-count-other\": \"Singapore dollars\",\n symbol: \"SGD\",\n \"symbol-alt-narrow\": \"$\"\n },\n SHP: {\n displayName: \"St. Helena Pound\",\n \"displayName-count-one\": \"St. Helena pound\",\n \"displayName-count-other\": \"St. Helena pounds\",\n symbol: \"SHP\",\n \"symbol-alt-narrow\": \"£\"\n },\n SIT: {\n displayName: \"Slovenian Tolar\",\n \"displayName-count-one\": \"Slovenian tolar\",\n \"displayName-count-other\": \"Slovenian tolars\",\n symbol: \"SIT\"\n },\n SKK: {\n displayName: \"Slovak Koruna\",\n \"displayName-count-one\": \"Slovak koruna\",\n \"displayName-count-other\": \"Slovak korunas\",\n symbol: \"SKK\"\n },\n SLL: {\n displayName: \"Sierra Leonean Leone\",\n \"displayName-count-one\": \"Sierra Leonean leone\",\n \"displayName-count-other\": \"Sierra Leonean leones\",\n symbol: \"SLL\"\n },\n SOS: {\n displayName: \"Somali Shilling\",\n \"displayName-count-one\": \"Somali shilling\",\n \"displayName-count-other\": \"Somali shillings\",\n symbol: \"SOS\"\n },\n SRD: {\n displayName: \"Surinamese Dollar\",\n \"displayName-count-one\": \"Surinamese dollar\",\n \"displayName-count-other\": \"Surinamese dollars\",\n symbol: \"SRD\",\n \"symbol-alt-narrow\": \"$\"\n },\n SRG: {\n displayName: \"Surinamese Guilder\",\n \"displayName-count-one\": \"Surinamese guilder\",\n \"displayName-count-other\": \"Surinamese guilders\",\n symbol: \"SRG\"\n },\n SSP: {\n displayName: \"South Sudanese Pound\",\n \"displayName-count-one\": \"South Sudanese pound\",\n \"displayName-count-other\": \"South Sudanese pounds\",\n symbol: \"SSP\",\n \"symbol-alt-narrow\": \"£\"\n },\n STD: {\n displayName: \"São Tomé & Príncipe Dobra (1977–2017)\",\n \"displayName-count-one\": \"São Tomé & Príncipe dobra (1977–2017)\",\n \"displayName-count-other\": \"São Tomé & Príncipe dobras (1977–2017)\",\n symbol: \"STD\"\n },\n STN: {\n displayName: \"São Tomé & Príncipe Dobra\",\n \"displayName-count-one\": \"São Tomé & Príncipe dobra\",\n \"displayName-count-other\": \"São Tomé & Príncipe dobras\",\n symbol: \"STN\",\n \"symbol-alt-narrow\": \"Db\"\n },\n SUR: {\n displayName: \"Soviet Rouble\",\n \"displayName-count-one\": \"Soviet rouble\",\n \"displayName-count-other\": \"Soviet roubles\",\n symbol: \"SUR\"\n },\n SVC: {\n displayName: \"Salvadoran Colón\",\n \"displayName-count-one\": \"Salvadoran colón\",\n \"displayName-count-other\": \"Salvadoran colones\",\n symbol: \"SVC\"\n },\n SYP: {\n displayName: \"Syrian Pound\",\n \"displayName-count-one\": \"Syrian pound\",\n \"displayName-count-other\": \"Syrian pounds\",\n symbol: \"SYP\",\n \"symbol-alt-narrow\": \"£\"\n },\n SZL: {\n displayName: \"Swazi Lilangeni\",\n \"displayName-count-one\": \"Swazi lilangeni\",\n \"displayName-count-other\": \"Swazi emalangeni\",\n symbol: \"SZL\"\n },\n THB: {\n displayName: \"Thai Baht\",\n \"displayName-count-one\": \"Thai baht\",\n \"displayName-count-other\": \"Thai baht\",\n symbol: \"THB\",\n \"symbol-alt-narrow\": \"฿\"\n },\n TJR: {\n displayName: \"Tajikistani Ruble\",\n \"displayName-count-one\": \"Tajikistani ruble\",\n \"displayName-count-other\": \"Tajikistani rubles\",\n symbol: \"TJR\"\n },\n TJS: {\n displayName: \"Tajikistani Somoni\",\n \"displayName-count-one\": \"Tajikistani somoni\",\n \"displayName-count-other\": \"Tajikistani somonis\",\n symbol: \"TJS\"\n },\n TMM: {\n displayName: \"Turkmenistani Manat (1993–2009)\",\n \"displayName-count-one\": \"Turkmenistani manat (1993–2009)\",\n \"displayName-count-other\": \"Turkmenistani manat (1993–2009)\",\n symbol: \"TMM\"\n },\n TMT: {\n displayName: \"Turkmenistani Manat\",\n \"displayName-count-one\": \"Turkmenistani manat\",\n \"displayName-count-other\": \"Turkmenistani manat\",\n symbol: \"TMT\"\n },\n TND: {\n displayName: \"Tunisian Dinar\",\n \"displayName-count-one\": \"Tunisian dinar\",\n \"displayName-count-other\": \"Tunisian dinars\",\n symbol: \"TND\"\n },\n TOP: {\n displayName: \"Tongan Paʻanga\",\n \"displayName-count-one\": \"Tongan paʻanga\",\n \"displayName-count-other\": \"Tongan paʻanga\",\n symbol: \"TOP\",\n \"symbol-alt-narrow\": \"T$\"\n },\n TPE: {\n displayName: \"Timorese Escudo\",\n \"displayName-count-one\": \"Timorese escudo\",\n \"displayName-count-other\": \"Timorese escudos\",\n symbol: \"TPE\"\n },\n TRL: {\n displayName: \"Turkish Lira (1922–2005)\",\n \"displayName-count-one\": \"Turkish lira (1922–2005)\",\n \"displayName-count-other\": \"Turkish Lira (1922–2005)\",\n symbol: \"TRL\"\n },\n TRY: {\n displayName: \"Turkish Lira\",\n \"displayName-count-one\": \"Turkish lira\",\n \"displayName-count-other\": \"Turkish Lira\",\n symbol: \"TRY\",\n \"symbol-alt-narrow\": \"₺\",\n \"symbol-alt-variant\": \"TL\"\n },\n TTD: {\n displayName: \"Trinidad & Tobago Dollar\",\n \"displayName-count-one\": \"Trinidad & Tobago dollar\",\n \"displayName-count-other\": \"Trinidad & Tobago dollars\",\n symbol: \"TTD\",\n \"symbol-alt-narrow\": \"$\"\n },\n TWD: {\n displayName: \"New Taiwan Dollar\",\n \"displayName-count-one\": \"New Taiwan dollar\",\n \"displayName-count-other\": \"New Taiwan dollars\",\n symbol: \"NT$\",\n \"symbol-alt-narrow\": \"$\"\n },\n TZS: {\n displayName: \"Tanzanian Shilling\",\n \"displayName-count-one\": \"Tanzanian shilling\",\n \"displayName-count-other\": \"Tanzanian shillings\",\n symbol: \"TZS\"\n },\n UAH: {\n displayName: \"Ukrainian Hryvnia\",\n \"displayName-count-one\": \"Ukrainian hryvnia\",\n \"displayName-count-other\": \"Ukrainian hryvnias\",\n symbol: \"UAH\",\n \"symbol-alt-narrow\": \"₴\"\n },\n UAK: {\n displayName: \"Ukrainian Karbovanets\",\n \"displayName-count-one\": \"Ukrainian karbovanets\",\n \"displayName-count-other\": \"Ukrainian karbovantsiv\",\n symbol: \"UAK\"\n },\n UGS: {\n displayName: \"Ugandan Shilling (1966–1987)\",\n \"displayName-count-one\": \"Ugandan shilling (1966–1987)\",\n \"displayName-count-other\": \"Ugandan shillings (1966–1987)\",\n symbol: \"UGS\"\n },\n UGX: {\n displayName: \"Ugandan Shilling\",\n \"displayName-count-one\": \"Ugandan shilling\",\n \"displayName-count-other\": \"Ugandan shillings\",\n symbol: \"UGX\"\n },\n USD: {\n displayName: \"US Dollar\",\n \"displayName-count-one\": \"US dollar\",\n \"displayName-count-other\": \"US dollars\",\n symbol: \"$\",\n \"symbol-alt-narrow\": \"$\"\n },\n USN: {\n displayName: \"US Dollar (Next day)\",\n \"displayName-count-one\": \"US dollar (next day)\",\n \"displayName-count-other\": \"US dollars (next day)\",\n symbol: \"USN\"\n },\n USS: {\n displayName: \"US Dollar (Same day)\",\n \"displayName-count-one\": \"US dollar (same day)\",\n \"displayName-count-other\": \"US dollars (same day)\",\n symbol: \"USS\"\n },\n UYI: {\n displayName: \"Uruguayan Peso (Indexed Units)\",\n \"displayName-count-one\": \"Uruguayan peso (indexed units)\",\n \"displayName-count-other\": \"Uruguayan pesos (indexed units)\",\n symbol: \"UYI\"\n },\n UYP: {\n displayName: \"Uruguayan Peso (1975–1993)\",\n \"displayName-count-one\": \"Uruguayan peso (1975–1993)\",\n \"displayName-count-other\": \"Uruguayan pesos (1975–1993)\",\n symbol: \"UYP\"\n },\n UYU: {\n displayName: \"Uruguayan Peso\",\n \"displayName-count-one\": \"Uruguayan peso\",\n \"displayName-count-other\": \"Uruguayan pesos\",\n symbol: \"UYU\",\n \"symbol-alt-narrow\": \"$\"\n },\n UYW: {\n displayName: \"Uruguayan Nominal Wage Index Unit\",\n \"displayName-count-one\": \"Uruguayan nominal wage index unit\",\n \"displayName-count-other\": \"Uruguayan nominal wage index units\",\n symbol: \"UYW\"\n },\n UZS: {\n displayName: \"Uzbekistani Som\",\n \"displayName-count-one\": \"Uzbekistani som\",\n \"displayName-count-other\": \"Uzbekistani som\",\n symbol: \"UZS\"\n },\n VEB: {\n displayName: \"Venezuelan Bolívar (1871–2008)\",\n \"displayName-count-one\": \"Venezuelan bolívar (1871–2008)\",\n \"displayName-count-other\": \"Venezuelan bolívars (1871–2008)\",\n symbol: \"VEB\"\n },\n VEF: {\n displayName: \"Venezuelan Bolívar (2008–2018)\",\n \"displayName-count-one\": \"Venezuelan bolívar (2008–2018)\",\n \"displayName-count-other\": \"Venezuelan bolívars (2008–2018)\",\n symbol: \"VEF\",\n \"symbol-alt-narrow\": \"Bs\"\n },\n VES: {\n displayName: \"Venezuelan Bolívar\",\n \"displayName-count-one\": \"Venezuelan bolívar\",\n \"displayName-count-other\": \"Venezuelan bolívars\",\n symbol: \"VES\"\n },\n VND: {\n displayName: \"Vietnamese Dong\",\n \"displayName-count-one\": \"Vietnamese dong\",\n \"displayName-count-other\": \"Vietnamese dong\",\n symbol: \"₫\",\n \"symbol-alt-narrow\": \"₫\"\n },\n VNN: {\n displayName: \"Vietnamese Dong (1978–1985)\",\n \"displayName-count-one\": \"Vietnamese dong (1978–1985)\",\n \"displayName-count-other\": \"Vietnamese dong (1978–1985)\",\n symbol: \"VNN\"\n },\n VUV: {\n displayName: \"Vanuatu Vatu\",\n \"displayName-count-one\": \"Vanuatu vatu\",\n \"displayName-count-other\": \"Vanuatu vatus\",\n symbol: \"VUV\"\n },\n WST: {\n displayName: \"Samoan Tala\",\n \"displayName-count-one\": \"Samoan tala\",\n \"displayName-count-other\": \"Samoan tala\",\n symbol: \"WST\"\n },\n XAF: {\n displayName: \"Central African CFA Franc\",\n \"displayName-count-one\": \"Central African CFA franc\",\n \"displayName-count-other\": \"Central African CFA francs\",\n symbol: \"FCFA\"\n },\n XAG: {\n displayName: \"Silver\",\n \"displayName-count-one\": \"troy ounce of silver\",\n \"displayName-count-other\": \"troy ounces of silver\",\n symbol: \"XAG\"\n },\n XAU: {\n displayName: \"Gold\",\n \"displayName-count-one\": \"troy ounce of gold\",\n \"displayName-count-other\": \"troy ounces of gold\",\n symbol: \"XAU\"\n },\n XBA: {\n displayName: \"European Composite Unit\",\n \"displayName-count-one\": \"European composite unit\",\n \"displayName-count-other\": \"European composite units\",\n symbol: \"XBA\"\n },\n XBB: {\n displayName: \"European Monetary Unit\",\n \"displayName-count-one\": \"European monetary unit\",\n \"displayName-count-other\": \"European monetary units\",\n symbol: \"XBB\"\n },\n XBC: {\n displayName: \"European Unit of Account (XBC)\",\n \"displayName-count-one\": \"European unit of account (XBC)\",\n \"displayName-count-other\": \"European units of account (XBC)\",\n symbol: \"XBC\"\n },\n XBD: {\n displayName: \"European Unit of Account (XBD)\",\n \"displayName-count-one\": \"European unit of account (XBD)\",\n \"displayName-count-other\": \"European units of account (XBD)\",\n symbol: \"XBD\"\n },\n XCD: {\n displayName: \"East Caribbean Dollar\",\n \"displayName-count-one\": \"East Caribbean dollar\",\n \"displayName-count-other\": \"East Caribbean dollars\",\n symbol: \"EC$\",\n \"symbol-alt-narrow\": \"$\"\n },\n XDR: {\n displayName: \"Special Drawing Rights\",\n \"displayName-count-one\": \"special drawing rights\",\n \"displayName-count-other\": \"special drawing rights\",\n symbol: \"XDR\"\n },\n XEU: {\n displayName: \"European Currency Unit\",\n \"displayName-count-one\": \"European currency unit\",\n \"displayName-count-other\": \"European currency units\",\n symbol: \"XEU\"\n },\n XFO: {\n displayName: \"French Gold Franc\",\n \"displayName-count-one\": \"French gold franc\",\n \"displayName-count-other\": \"French gold francs\",\n symbol: \"XFO\"\n },\n XFU: {\n displayName: \"French UIC-Franc\",\n \"displayName-count-one\": \"French UIC-franc\",\n \"displayName-count-other\": \"French UIC-francs\",\n symbol: \"XFU\"\n },\n XOF: {\n displayName: \"West African CFA Franc\",\n \"displayName-count-one\": \"West African CFA franc\",\n \"displayName-count-other\": \"West African CFA francs\",\n symbol: \"CFA\"\n },\n XPD: {\n displayName: \"Palladium\",\n \"displayName-count-one\": \"troy ounce of palladium\",\n \"displayName-count-other\": \"troy ounces of palladium\",\n symbol: \"XPD\"\n },\n XPF: {\n displayName: \"CFP Franc\",\n \"displayName-count-one\": \"CFP franc\",\n \"displayName-count-other\": \"CFP francs\",\n symbol: \"CFPF\"\n },\n XPT: {\n displayName: \"Platinum\",\n \"displayName-count-one\": \"troy ounce of platinum\",\n \"displayName-count-other\": \"troy ounces of platinum\",\n symbol: \"XPT\"\n },\n XRE: {\n displayName: \"RINET Funds\",\n \"displayName-count-one\": \"RINET Funds unit\",\n \"displayName-count-other\": \"RINET Funds units\",\n symbol: \"XRE\"\n },\n XSU: {\n displayName: \"Sucre\",\n \"displayName-count-one\": \"Sucre\",\n \"displayName-count-other\": \"Sucres\",\n symbol: \"XSU\"\n },\n XTS: {\n displayName: \"Testing Currency Code\",\n \"displayName-count-one\": \"Testing Currency unit\",\n \"displayName-count-other\": \"Testing Currency units\",\n symbol: \"XTS\"\n },\n XUA: {\n displayName: \"ADB Unit of Account\",\n \"displayName-count-one\": \"ADB unit of account\",\n \"displayName-count-other\": \"ADB units of account\",\n symbol: \"XUA\"\n },\n XXX: {\n displayName: \"Unknown Currency\",\n \"displayName-count-one\": \"(unknown unit of currency)\",\n \"displayName-count-other\": \"(unknown currency)\",\n symbol: \"¤\"\n },\n YDD: {\n displayName: \"Yemeni Dinar\",\n \"displayName-count-one\": \"Yemeni dinar\",\n \"displayName-count-other\": \"Yemeni dinars\",\n symbol: \"YDD\"\n },\n YER: {\n displayName: \"Yemeni Rial\",\n \"displayName-count-one\": \"Yemeni rial\",\n \"displayName-count-other\": \"Yemeni rials\",\n symbol: \"YER\"\n },\n YUD: {\n displayName: \"Yugoslavian Hard Dinar (1966–1990)\",\n \"displayName-count-one\": \"Yugoslavian hard dinar (1966–1990)\",\n \"displayName-count-other\": \"Yugoslavian hard dinars (1966–1990)\",\n symbol: \"YUD\"\n },\n YUM: {\n displayName: \"Yugoslavian New Dinar (1994–2002)\",\n \"displayName-count-one\": \"Yugoslavian new dinar (1994–2002)\",\n \"displayName-count-other\": \"Yugoslavian new dinars (1994–2002)\",\n symbol: \"YUM\"\n },\n YUN: {\n displayName: \"Yugoslavian Convertible Dinar (1990–1992)\",\n \"displayName-count-one\": \"Yugoslavian convertible dinar (1990–1992)\",\n \"displayName-count-other\": \"Yugoslavian convertible dinars (1990–1992)\",\n symbol: \"YUN\"\n },\n YUR: {\n displayName: \"Yugoslavian Reformed Dinar (1992–1993)\",\n \"displayName-count-one\": \"Yugoslavian reformed dinar (1992–1993)\",\n \"displayName-count-other\": \"Yugoslavian reformed dinars (1992–1993)\",\n symbol: \"YUR\"\n },\n ZAL: {\n displayName: \"South African Rand (financial)\",\n \"displayName-count-one\": \"South African rand (financial)\",\n \"displayName-count-other\": \"South African rands (financial)\",\n symbol: \"ZAL\"\n },\n ZAR: {\n displayName: \"South African Rand\",\n \"displayName-count-one\": \"South African rand\",\n \"displayName-count-other\": \"South African rand\",\n symbol: \"ZAR\",\n \"symbol-alt-narrow\": \"R\"\n },\n ZMK: {\n displayName: \"Zambian Kwacha (1968–2012)\",\n \"displayName-count-one\": \"Zambian kwacha (1968–2012)\",\n \"displayName-count-other\": \"Zambian kwachas (1968–2012)\",\n symbol: \"ZMK\"\n },\n ZMW: {\n displayName: \"Zambian Kwacha\",\n \"displayName-count-one\": \"Zambian kwacha\",\n \"displayName-count-other\": \"Zambian kwachas\",\n symbol: \"ZMW\",\n \"symbol-alt-narrow\": \"ZK\"\n },\n ZRN: {\n displayName: \"Zairean New Zaire (1993–1998)\",\n \"displayName-count-one\": \"Zairean new zaire (1993–1998)\",\n \"displayName-count-other\": \"Zairean new zaires (1993–1998)\",\n symbol: \"ZRN\"\n },\n ZRZ: {\n displayName: \"Zairean Zaire (1971–1993)\",\n \"displayName-count-one\": \"Zairean zaire (1971–1993)\",\n \"displayName-count-other\": \"Zairean zaires (1971–1993)\",\n symbol: \"ZRZ\"\n },\n ZWD: {\n displayName: \"Zimbabwean Dollar (1980–2008)\",\n \"displayName-count-one\": \"Zimbabwean dollar (1980–2008)\",\n \"displayName-count-other\": \"Zimbabwean dollars (1980–2008)\",\n symbol: \"ZWD\"\n },\n ZWL: {\n displayName: \"Zimbabwean Dollar (2009)\",\n \"displayName-count-one\": \"Zimbabwean dollar (2009)\",\n \"displayName-count-other\": \"Zimbabwean dollars (2009)\",\n symbol: \"ZWL\"\n },\n ZWR: {\n displayName: \"Zimbabwean Dollar (2008)\",\n \"displayName-count-one\": \"Zimbabwean dollar (2008)\",\n \"displayName-count-other\": \"Zimbabwean dollars (2008)\",\n symbol: \"ZWR\"\n }\n },\n localeCurrency: \"USD\",\n accounting: {\n patterns: [\n \"$n\",\n \"($n)\"\n ],\n groupSize: [\n 3\n ]\n }\n },\n calendar: {\n gmtFormat: \"GMT{0}\",\n gmtZeroFormat: \"GMT\",\n patterns: {\n d: \"M/d/y\",\n D: \"EEEE, MMMM d, y\",\n m: \"MMM d\",\n M: \"MMMM d\",\n y: \"MMM y\",\n Y: \"MMMM y\",\n F: \"EEEE, MMMM d, y h:mm:ss a\",\n g: \"M/d/y h:mm a\",\n G: \"M/d/y h:mm:ss a\",\n t: \"h:mm a\",\n T: \"h:mm:ss a\",\n s: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\n u: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\"\n },\n dateTimeFormats: {\n full: \"{1} 'at' {0}\",\n long: \"{1} 'at' {0}\",\n medium: \"{1}, {0}\",\n short: \"{1}, {0}\",\n availableFormats: {\n Bh: \"h B\",\n Bhm: \"h:mm B\",\n Bhms: \"h:mm:ss B\",\n d: \"d\",\n E: \"ccc\",\n EBhm: \"E h:mm B\",\n EBhms: \"E h:mm:ss B\",\n Ed: \"d E\",\n Ehm: \"E h:mm a\",\n EHm: \"E HH:mm\",\n Ehms: \"E h:mm:ss a\",\n EHms: \"E HH:mm:ss\",\n Gy: \"y G\",\n GyMMM: \"MMM y G\",\n GyMMMd: \"MMM d, y G\",\n GyMMMEd: \"E, MMM d, y G\",\n h: \"h a\",\n H: \"HH\",\n hm: \"h:mm a\",\n Hm: \"HH:mm\",\n hms: \"h:mm:ss a\",\n Hms: \"HH:mm:ss\",\n hmsv: \"h:mm:ss a v\",\n Hmsv: \"HH:mm:ss v\",\n hmv: \"h:mm a v\",\n Hmv: \"HH:mm v\",\n M: \"L\",\n Md: \"M/d\",\n MEd: \"E, M/d\",\n MMM: \"LLL\",\n MMMd: \"MMM d\",\n MMMEd: \"E, MMM d\",\n MMMMd: \"MMMM d\",\n \"MMMMW-count-one\": \"'week' W 'of' MMMM\",\n \"MMMMW-count-other\": \"'week' W 'of' MMMM\",\n ms: \"mm:ss\",\n y: \"y\",\n yM: \"M/y\",\n yMd: \"M/d/y\",\n yMEd: \"E, M/d/y\",\n yMMM: \"MMM y\",\n yMMMd: \"MMM d, y\",\n yMMMEd: \"E, MMM d, y\",\n yMMMM: \"MMMM y\",\n yQQQ: \"QQQ y\",\n yQQQQ: \"QQQQ y\",\n \"yw-count-one\": \"'week' w 'of' Y\",\n \"yw-count-other\": \"'week' w 'of' Y\"\n }\n },\n timeFormats: {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\"\n },\n dateFormats: {\n full: \"EEEE, MMMM d, y\",\n long: \"MMMM d, y\",\n medium: \"MMM d, y\",\n short: \"M/d/yy\"\n },\n days: {\n format: {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n }\n },\n months: {\n format: {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\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 },\n \"stand-alone\": {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\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 }\n },\n quarters: {\n format: {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n }\n },\n dayPeriods: {\n format: {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n narrow: {\n midnight: \"mi\",\n am: \"a\",\n \"am-alt-variant\": \"am\",\n noon: \"n\",\n pm: \"p\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n }\n },\n \"stand-alone\": {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n narrow: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n }\n }\n },\n eras: {\n format: {\n wide: {\n \"0\": \"Before Christ\",\n \"1\": \"Anno Domini\",\n \"0-alt-variant\": \"Before Common Era\",\n \"1-alt-variant\": \"Common Era\"\n },\n abbreviated: {\n \"0\": \"BC\",\n \"1\": \"AD\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n },\n narrow: {\n \"0\": \"B\",\n \"1\": \"A\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n }\n }\n },\n dateFields: {\n era: {\n wide: \"era\",\n short: \"era\",\n narrow: \"era\"\n },\n year: {\n wide: \"year\",\n short: \"yr.\",\n narrow: \"yr.\"\n },\n quarter: {\n wide: \"quarter\",\n short: \"qtr.\",\n narrow: \"qtr.\"\n },\n month: {\n wide: \"month\",\n short: \"mo.\",\n narrow: \"mo.\"\n },\n week: {\n wide: \"week\",\n short: \"wk.\",\n narrow: \"wk.\"\n },\n weekOfMonth: {\n wide: \"week of month\",\n short: \"wk. of mo.\",\n narrow: \"wk. of mo.\"\n },\n day: {\n wide: \"day\",\n short: \"day\",\n narrow: \"day\"\n },\n dayOfYear: {\n wide: \"day of year\",\n short: \"day of yr.\",\n narrow: \"day of yr.\"\n },\n weekday: {\n wide: \"day of the week\",\n short: \"day of wk.\",\n narrow: \"day of wk.\"\n },\n weekdayOfMonth: {\n wide: \"weekday of the month\",\n short: \"wkday. of mo.\",\n narrow: \"wkday. of mo.\"\n },\n dayperiod: {\n short: \"AM/PM\",\n wide: \"AM/PM\",\n narrow: \"AM/PM\"\n },\n hour: {\n wide: \"hour\",\n short: \"hr.\",\n narrow: \"hr.\"\n },\n minute: {\n wide: \"minute\",\n short: \"min.\",\n narrow: \"min.\"\n },\n second: {\n wide: \"second\",\n short: \"sec.\",\n narrow: \"sec.\"\n },\n zone: {\n wide: \"time zone\",\n short: \"zone\",\n narrow: \"zone\"\n }\n }\n },\n firstDay: 0,\n weekendRange: {\n start: 6,\n end: 0\n },\n likelySubtags: {\n en: \"en-Latn-US\"\n }\n});\n\n","var setData = require('@progress/kendo-angular-intl').setData;\nsetData({\n name: \"it\",\n identity: {\n language: \"it\"\n },\n territory: \"IT\",\n numbers: {\n symbols: {\n decimal: \",\",\n group: \".\",\n list: \";\",\n percentSign: \"%\",\n plusSign: \"+\",\n minusSign: \"-\",\n exponential: \"E\",\n superscriptingExponent: \"×\",\n perMille: \"‰\",\n infinity: \"∞\",\n nan: \"NaN\",\n timeSeparator: \":\"\n },\n decimal: {\n patterns: [\n \"n\"\n ],\n groupSize: [\n 3\n ]\n },\n scientific: {\n patterns: [\n \"nEn\"\n ],\n groupSize: []\n },\n percent: {\n patterns: [\n \"n%\"\n ],\n groupSize: [\n 3\n ]\n },\n currency: {\n patterns: [\n \"n $\"\n ],\n groupSize: [\n 3\n ],\n \"unitPattern-count-one\": \"n $\",\n \"unitPattern-count-other\": \"n $\"\n },\n accounting: {\n patterns: [\n \"n $\"\n ],\n groupSize: [\n 3\n ]\n },\n currencies: {\n ADP: {\n displayName: \"peseta andorrana\",\n symbol: \"ADP\"\n },\n AED: {\n displayName: \"dirham degli Emirati Arabi Uniti\",\n \"displayName-count-one\": \"dirham degli EAU\",\n \"displayName-count-other\": \"dirham degli EAU\",\n symbol: \"AED\"\n },\n AFA: {\n displayName: \"afgani (1927–2002)\",\n symbol: \"AFA\"\n },\n AFN: {\n displayName: \"afghani\",\n \"displayName-count-one\": \"afghani\",\n \"displayName-count-other\": \"afghani\",\n symbol: \"AFN\"\n },\n ALK: {\n displayName: \"ALK\",\n symbol: \"ALK\"\n },\n ALL: {\n displayName: \"lek albanese\",\n \"displayName-count-one\": \"lek albanese\",\n \"displayName-count-other\": \"lekë albanesi\",\n symbol: \"ALL\"\n },\n AMD: {\n displayName: \"dram armeno\",\n \"displayName-count-one\": \"dram armeno\",\n \"displayName-count-other\": \"dram armeni\",\n symbol: \"AMD\"\n },\n ANG: {\n displayName: \"fiorino delle Antille olandesi\",\n \"displayName-count-one\": \"fiorino delle Antille olandesi\",\n \"displayName-count-other\": \"fiorino delle Antille olandesi\",\n symbol: \"ANG\"\n },\n AOA: {\n displayName: \"kwanza angolano\",\n \"displayName-count-one\": \"kwanza angolano\",\n \"displayName-count-other\": \"kwanzas angolani\",\n symbol: \"AOA\",\n \"symbol-alt-narrow\": \"Kz\"\n },\n AOK: {\n displayName: \"kwanza angolano (1977–1990)\",\n symbol: \"AOK\"\n },\n AON: {\n displayName: \"nuovo kwanza angolano (1990–2000)\",\n symbol: \"AON\"\n },\n AOR: {\n displayName: \"kwanza reajustado angolano (1995–1999)\",\n symbol: \"AOR\"\n },\n ARA: {\n displayName: \"austral argentino\",\n symbol: \"ARA\"\n },\n ARL: {\n displayName: \"ARL\",\n symbol: \"ARL\"\n },\n ARM: {\n displayName: \"ARM\",\n symbol: \"ARM\"\n },\n ARP: {\n displayName: \"peso argentino (vecchio Cod.)\",\n symbol: \"ARP\"\n },\n ARS: {\n displayName: \"peso argentino\",\n \"displayName-count-one\": \"peso argentino\",\n \"displayName-count-other\": \"pesos argentini\",\n symbol: \"ARS\",\n \"symbol-alt-narrow\": \"$\"\n },\n ATS: {\n displayName: \"scellino austriaco\",\n symbol: \"ATS\"\n },\n AUD: {\n displayName: \"dollaro australiano\",\n \"displayName-count-one\": \"dollaro australiano\",\n \"displayName-count-other\": \"dollari australiani\",\n symbol: \"A$\",\n \"symbol-alt-narrow\": \"$\"\n },\n AWG: {\n displayName: \"fiorino di Aruba\",\n \"displayName-count-one\": \"fiorino di Aruba\",\n \"displayName-count-other\": \"fiorini di Aruba\",\n symbol: \"AWG\"\n },\n AZM: {\n displayName: \"manat azero (1993–2006)\",\n symbol: \"AZM\"\n },\n AZN: {\n displayName: \"manat azero\",\n \"displayName-count-one\": \"manat azero\",\n \"displayName-count-other\": \"manat azeri\",\n symbol: \"AZN\"\n },\n BAD: {\n displayName: \"dinar Bosnia-Herzegovina\",\n symbol: \"BAD\"\n },\n BAM: {\n displayName: \"marco convertibile della Bosnia-Herzegovina\",\n \"displayName-count-one\": \"marco convertibile della Bosnia-Herzegovina\",\n \"displayName-count-other\": \"marchi convertibili della Bosnia-Herzegovina\",\n symbol: \"BAM\",\n \"symbol-alt-narrow\": \"KM\"\n },\n BAN: {\n displayName: \"BAN\",\n symbol: \"BAN\"\n },\n BBD: {\n displayName: \"dollaro di Barbados\",\n \"displayName-count-one\": \"dollaro di Barbados\",\n \"displayName-count-other\": \"dollari di Barbados\",\n symbol: \"BBD\",\n \"symbol-alt-narrow\": \"$\"\n },\n BDT: {\n displayName: \"taka bangladese\",\n \"displayName-count-one\": \"taka bengalese\",\n \"displayName-count-other\": \"taka bengalesi\",\n symbol: \"BDT\",\n \"symbol-alt-narrow\": \"৳\"\n },\n BEC: {\n displayName: \"franco belga (convertibile)\",\n symbol: \"BEC\"\n },\n BEF: {\n displayName: \"franco belga\",\n symbol: \"BEF\"\n },\n BEL: {\n displayName: \"franco belga (finanziario)\",\n symbol: \"BEL\"\n },\n BGL: {\n displayName: \"lev bulgaro (1962–1999)\",\n \"displayName-count-one\": \"lev bulgaro (1962–1999)\",\n \"displayName-count-other\": \"leva bulgari (1962–1999)\",\n symbol: \"BGL\"\n },\n BGM: {\n displayName: \"BGM\",\n symbol: \"BGM\"\n },\n BGN: {\n displayName: \"lev bulgaro\",\n \"displayName-count-one\": \"lev bulgaro\",\n \"displayName-count-other\": \"leva bulgari\",\n symbol: \"BGN\"\n },\n BGO: {\n displayName: \"BGO\",\n symbol: \"BGO\"\n },\n BHD: {\n displayName: \"dinaro del Bahrein\",\n \"displayName-count-one\": \"dinaro del Bahrein\",\n \"displayName-count-other\": \"dinari del Bahrein\",\n symbol: \"BHD\"\n },\n BIF: {\n displayName: \"franco del Burundi\",\n \"displayName-count-one\": \"franco del Burundi\",\n \"displayName-count-other\": \"franchi del Burundi\",\n symbol: \"BIF\"\n },\n BMD: {\n displayName: \"dollaro delle Bermuda\",\n \"displayName-count-one\": \"dollaro delle Bermuda\",\n \"displayName-count-other\": \"dollari delle Bermuda\",\n symbol: \"BMD\",\n \"symbol-alt-narrow\": \"$\"\n },\n BND: {\n displayName: \"dollaro del Brunei\",\n \"displayName-count-one\": \"dollaro del Brunei\",\n \"displayName-count-other\": \"dollari del Brunei\",\n symbol: \"BND\",\n \"symbol-alt-narrow\": \"$\"\n },\n BOB: {\n displayName: \"boliviano\",\n \"displayName-count-one\": \"boliviano\",\n \"displayName-count-other\": \"boliviani\",\n symbol: \"BOB\",\n \"symbol-alt-narrow\": \"Bs\"\n },\n BOL: {\n displayName: \"BOL\",\n symbol: \"BOL\"\n },\n BOP: {\n displayName: \"peso boliviano\",\n symbol: \"BOP\"\n },\n BOV: {\n displayName: \"mvdol boliviano\",\n symbol: \"BOV\"\n },\n BRB: {\n displayName: \"cruzeiro novo brasiliano (1967–1986)\",\n symbol: \"BRB\"\n },\n BRC: {\n displayName: \"cruzado brasiliano\",\n symbol: \"BRC\"\n },\n BRE: {\n displayName: \"cruzeiro brasiliano (1990–1993)\",\n symbol: \"BRE\"\n },\n BRL: {\n displayName: \"real brasiliano\",\n \"displayName-count-one\": \"real brasiliano\",\n \"displayName-count-other\": \"real brasiliani\",\n symbol: \"BRL\",\n \"symbol-alt-narrow\": \"R$\"\n },\n BRN: {\n displayName: \"cruzado novo brasiliano\",\n symbol: \"BRN\"\n },\n BRR: {\n displayName: \"cruzeiro brasiliano\",\n symbol: \"BRR\"\n },\n BRZ: {\n displayName: \"BRZ\",\n symbol: \"BRZ\"\n },\n BSD: {\n displayName: \"dollaro delle Bahamas\",\n \"displayName-count-one\": \"dollaro delle Bahamas\",\n \"displayName-count-other\": \"dollari delle Bahamas\",\n symbol: \"BSD\",\n \"symbol-alt-narrow\": \"$\"\n },\n BTN: {\n displayName: \"ngultrum bhutanese\",\n \"displayName-count-one\": \"ngultrum bhutanese\",\n \"displayName-count-other\": \"ngultrum bhutanesi\",\n symbol: \"BTN\"\n },\n BUK: {\n displayName: \"kyat birmano\",\n symbol: \"BUK\"\n },\n BWP: {\n displayName: \"pula del Botswana\",\n \"displayName-count-one\": \"pula del Botswana\",\n \"displayName-count-other\": \"pula del Botswana\",\n symbol: \"BWP\",\n \"symbol-alt-narrow\": \"P\"\n },\n BYB: {\n displayName: \"nuovo rublo bielorusso (1994–1999)\",\n symbol: \"BYB\"\n },\n BYN: {\n displayName: \"rublo bielorusso\",\n \"displayName-count-one\": \"rublo bielorusso\",\n \"displayName-count-other\": \"rubli bielorussi\",\n symbol: \"BYN\",\n \"symbol-alt-narrow\": \"Br\"\n },\n BYR: {\n displayName: \"rublo bielorusso (2000–2016)\",\n \"displayName-count-one\": \"rublo bielorusso (2000–2016)\",\n \"displayName-count-other\": \"rubli bielorussi (2000–2016)\",\n symbol: \"BYR\"\n },\n BZD: {\n displayName: \"dollaro del Belize\",\n \"displayName-count-one\": \"dollaro del Belize\",\n \"displayName-count-other\": \"dollari del Belize\",\n symbol: \"BZD\",\n \"symbol-alt-narrow\": \"$\"\n },\n CAD: {\n displayName: \"dollaro canadese\",\n \"displayName-count-one\": \"dollaro canadese\",\n \"displayName-count-other\": \"dollari canadesi\",\n symbol: \"CA$\",\n \"symbol-alt-narrow\": \"$\"\n },\n CDF: {\n displayName: \"franco congolese\",\n \"displayName-count-one\": \"franco congolese\",\n \"displayName-count-other\": \"franchi congolesi\",\n symbol: \"CDF\"\n },\n CHE: {\n displayName: \"CHE\",\n symbol: \"CHE\"\n },\n CHF: {\n displayName: \"franco svizzero\",\n \"displayName-count-one\": \"franco svizzero\",\n \"displayName-count-other\": \"franchi svizzeri\",\n symbol: \"CHF\"\n },\n CHW: {\n displayName: \"CHW\",\n symbol: \"CHW\"\n },\n CLE: {\n displayName: \"CLE\",\n symbol: \"CLE\"\n },\n CLF: {\n displayName: \"unidades de fomento chilene\",\n symbol: \"CLF\"\n },\n CLP: {\n displayName: \"peso cileno\",\n \"displayName-count-one\": \"peso cileno\",\n \"displayName-count-other\": \"pesos cileni\",\n symbol: \"CLP\",\n \"symbol-alt-narrow\": \"$\"\n },\n CNH: {\n displayName: \"CNH\",\n \"displayName-count-one\": \"CNH\",\n \"displayName-count-other\": \"CNH\",\n symbol: \"CNH\"\n },\n CNX: {\n displayName: \"CNX\",\n symbol: \"CNX\"\n },\n CNY: {\n displayName: \"renminbi cinese\",\n \"displayName-count-one\": \"renmimbi cinese\",\n \"displayName-count-other\": \"renmimbi cinesi\",\n symbol: \"CN¥\",\n \"symbol-alt-narrow\": \"¥\"\n },\n COP: {\n displayName: \"peso colombiano\",\n \"displayName-count-one\": \"peso colombiano\",\n \"displayName-count-other\": \"pesos colombiani\",\n symbol: \"COP\",\n \"symbol-alt-narrow\": \"$\"\n },\n COU: {\n displayName: \"COU\",\n symbol: \"COU\"\n },\n CRC: {\n displayName: \"colón costaricano\",\n \"displayName-count-one\": \"colón costaricano\",\n \"displayName-count-other\": \"colón costaricani\",\n symbol: \"CRC\",\n \"symbol-alt-narrow\": \"₡\"\n },\n CSD: {\n displayName: \"antico dinaro serbo\",\n symbol: \"CSD\"\n },\n CSK: {\n displayName: \"corona forte cecoslovacca\",\n symbol: \"CSK\"\n },\n CUC: {\n displayName: \"peso cubano convertibile\",\n \"displayName-count-one\": \"peso cubano convertibile\",\n \"displayName-count-other\": \"pesos cubani convertibili\",\n symbol: \"CUC\",\n \"symbol-alt-narrow\": \"$\"\n },\n CUP: {\n displayName: \"peso cubano\",\n \"displayName-count-one\": \"peso cubano\",\n \"displayName-count-other\": \"pesos cubani\",\n symbol: \"CUP\",\n \"symbol-alt-narrow\": \"$\"\n },\n CVE: {\n displayName: \"escudo capoverdiano\",\n \"displayName-count-one\": \"escudo capoverdiano\",\n \"displayName-count-other\": \"escudos capoverdiani\",\n symbol: \"CVE\"\n },\n CYP: {\n displayName: \"sterlina cipriota\",\n symbol: \"CYP\"\n },\n CZK: {\n displayName: \"corona ceca\",\n \"displayName-count-one\": \"corona ceca\",\n \"displayName-count-other\": \"corone ceche\",\n symbol: \"CZK\",\n \"symbol-alt-narrow\": \"Kč\"\n },\n DDM: {\n displayName: \"ostmark della Germania Orientale\",\n symbol: \"DDM\"\n },\n DEM: {\n displayName: \"marco tedesco\",\n symbol: \"DEM\"\n },\n DJF: {\n displayName: \"franco di Gibuti\",\n \"displayName-count-one\": \"franco di Gibuti\",\n \"displayName-count-other\": \"franchi di Gibuti\",\n symbol: \"DJF\"\n },\n DKK: {\n displayName: \"corona danese\",\n \"displayName-count-one\": \"corona danese\",\n \"displayName-count-other\": \"corone danesi\",\n symbol: \"DKK\",\n \"symbol-alt-narrow\": \"kr\"\n },\n DOP: {\n displayName: \"peso dominicano\",\n \"displayName-count-one\": \"peso dominicano\",\n \"displayName-count-other\": \"pesos dominicani\",\n symbol: \"DOP\",\n \"symbol-alt-narrow\": \"$\"\n },\n DZD: {\n displayName: \"dinaro algerino\",\n \"displayName-count-one\": \"dinaro algerino\",\n \"displayName-count-other\": \"dinari algerini\",\n symbol: \"DZD\"\n },\n ECS: {\n displayName: \"sucre dell’Ecuador\",\n symbol: \"ECS\"\n },\n ECV: {\n displayName: \"unidad de valor constante (UVC) dell’Ecuador\",\n symbol: \"ECV\"\n },\n EEK: {\n displayName: \"corona dell’Estonia\",\n symbol: \"EEK\"\n },\n EGP: {\n displayName: \"sterlina egiziana\",\n \"displayName-count-one\": \"sterlina egiziana\",\n \"displayName-count-other\": \"sterline egiziane\",\n symbol: \"EGP\",\n \"symbol-alt-narrow\": \"£E\"\n },\n ERN: {\n displayName: \"nakfa eritreo\",\n \"displayName-count-one\": \"nakfa eritreo\",\n \"displayName-count-other\": \"nakfa eritrei\",\n symbol: \"ERN\"\n },\n ESA: {\n displayName: \"peseta spagnola account\",\n symbol: \"ESA\"\n },\n ESB: {\n displayName: \"peseta spagnola account convertibile\",\n symbol: \"ESB\"\n },\n ESP: {\n displayName: \"peseta spagnola\",\n symbol: \"ESP\",\n \"symbol-alt-narrow\": \"₧\"\n },\n ETB: {\n displayName: \"birr etiope\",\n \"displayName-count-one\": \"birr etiope\",\n \"displayName-count-other\": \"birr etiopi\",\n symbol: \"ETB\"\n },\n EUR: {\n displayName: \"euro\",\n \"displayName-count-one\": \"euro\",\n \"displayName-count-other\": \"euro\",\n symbol: \"€\",\n \"symbol-alt-narrow\": \"€\"\n },\n FIM: {\n displayName: \"markka finlandese\",\n symbol: \"FIM\"\n },\n FJD: {\n displayName: \"dollaro delle Figi\",\n \"displayName-count-one\": \"dollaro delle Figi\",\n \"displayName-count-other\": \"dollari delle Figi\",\n symbol: \"FJD\",\n \"symbol-alt-narrow\": \"$\"\n },\n FKP: {\n displayName: \"sterlina delle Falkland\",\n \"displayName-count-one\": \"sterlina delle Falkland\",\n \"displayName-count-other\": \"sterline delle Falkland\",\n symbol: \"FKP\",\n \"symbol-alt-narrow\": \"£\"\n },\n FRF: {\n displayName: \"franco francese\",\n symbol: \"FRF\"\n },\n GBP: {\n displayName: \"sterlina britannica\",\n \"displayName-count-one\": \"sterlina britannica\",\n \"displayName-count-other\": \"sterline britanniche\",\n symbol: \"£\",\n \"symbol-alt-narrow\": \"£\"\n },\n GEK: {\n displayName: \"kupon larit georgiano\",\n symbol: \"GEK\"\n },\n GEL: {\n displayName: \"lari georgiano\",\n \"displayName-count-one\": \"lari georgiano\",\n \"displayName-count-other\": \"lari georgiani\",\n symbol: \"GEL\",\n \"symbol-alt-narrow\": \"₾\",\n \"symbol-alt-variant\": \"ლ\"\n },\n GHC: {\n displayName: \"cedi del Ghana\",\n symbol: \"GHC\"\n },\n GHS: {\n displayName: \"cedi ghanese\",\n \"displayName-count-one\": \"cedi ghanese\",\n \"displayName-count-other\": \"cedi ghanesi\",\n symbol: \"GHS\"\n },\n GIP: {\n displayName: \"sterlina di Gibilterra\",\n \"displayName-count-one\": \"sterlina di Gibilterra\",\n \"displayName-count-other\": \"sterline di Gibilterra\",\n symbol: \"GIP\",\n \"symbol-alt-narrow\": \"£\"\n },\n GMD: {\n displayName: \"dalasi gambiano\",\n \"displayName-count-one\": \"dalasi gambiano\",\n \"displayName-count-other\": \"dalasi gambiani\",\n symbol: \"GMD\"\n },\n GNF: {\n displayName: \"franco della Guinea\",\n \"displayName-count-one\": \"franco della Guinea\",\n \"displayName-count-other\": \"franchi della Guinea\",\n symbol: \"GNF\",\n \"symbol-alt-narrow\": \"FG\"\n },\n GNS: {\n displayName: \"syli della Guinea\",\n symbol: \"GNS\"\n },\n GQE: {\n displayName: \"ekwele della Guinea Equatoriale\",\n symbol: \"GQE\"\n },\n GRD: {\n displayName: \"dracma greca\",\n symbol: \"GRD\"\n },\n GTQ: {\n displayName: \"quetzal guatemalteco\",\n \"displayName-count-one\": \"quetzal guatemalteco\",\n \"displayName-count-other\": \"quetzal guatemaltechi\",\n symbol: \"GTQ\",\n \"symbol-alt-narrow\": \"Q\"\n },\n GWE: {\n displayName: \"escudo della Guinea portoghese\",\n symbol: \"GWE\"\n },\n GWP: {\n displayName: \"peso della Guinea-Bissau\",\n symbol: \"GWP\"\n },\n GYD: {\n displayName: \"dollaro della Guyana\",\n \"displayName-count-one\": \"dollaro della Guyana\",\n \"displayName-count-other\": \"dollari della Guyana\",\n symbol: \"GYD\",\n \"symbol-alt-narrow\": \"$\"\n },\n HKD: {\n displayName: \"dollaro di Hong Kong\",\n \"displayName-count-one\": \"dollaro di Hong Kong\",\n \"displayName-count-other\": \"dollari di Hong Kong\",\n symbol: \"HKD\",\n \"symbol-alt-narrow\": \"$\"\n },\n HNL: {\n displayName: \"lempira honduregna\",\n \"displayName-count-one\": \"lempira honduregna\",\n \"displayName-count-other\": \"lempire honduregne\",\n symbol: \"HNL\",\n \"symbol-alt-narrow\": \"L\"\n },\n HRD: {\n displayName: \"dinaro croato\",\n symbol: \"HRD\"\n },\n HRK: {\n displayName: \"kuna croata\",\n \"displayName-count-one\": \"kuna croata\",\n \"displayName-count-other\": \"kune croate\",\n symbol: \"HRK\",\n \"symbol-alt-narrow\": \"kn\"\n },\n HTG: {\n displayName: \"gourde haitiano\",\n \"displayName-count-one\": \"gourde haitiano\",\n \"displayName-count-other\": \"gourde haitiani\",\n symbol: \"HTG\"\n },\n HUF: {\n displayName: \"fiorino ungherese\",\n \"displayName-count-one\": \"fiorino ungherese\",\n \"displayName-count-other\": \"fiorini ungheresi\",\n symbol: \"HUF\",\n \"symbol-alt-narrow\": \"Ft\"\n },\n IDR: {\n displayName: \"rupia indonesiana\",\n \"displayName-count-one\": \"rupia indonesiana\",\n \"displayName-count-other\": \"rupie indonesiane\",\n symbol: \"IDR\",\n \"symbol-alt-narrow\": \"Rp\"\n },\n IEP: {\n displayName: \"sterlina irlandese\",\n symbol: \"IEP\"\n },\n ILP: {\n displayName: \"sterlina israeliana\",\n symbol: \"ILP\"\n },\n ILR: {\n displayName: \"ILR\",\n symbol: \"ILR\"\n },\n ILS: {\n displayName: \"nuovo siclo israeliano\",\n \"displayName-count-one\": \"nuovo siclo israeliano\",\n \"displayName-count-other\": \"nuovi sicli israeliani\",\n symbol: \"₪\",\n \"symbol-alt-narrow\": \"₪\"\n },\n INR: {\n displayName: \"rupia indiana\",\n \"displayName-count-one\": \"rupia indiana\",\n \"displayName-count-other\": \"rupie indiane\",\n symbol: \"₹\",\n \"symbol-alt-narrow\": \"₹\"\n },\n IQD: {\n displayName: \"dinaro iracheno\",\n \"displayName-count-one\": \"dinaro iracheno\",\n \"displayName-count-other\": \"dinari iracheni\",\n symbol: \"IQD\"\n },\n IRR: {\n displayName: \"rial iraniano\",\n \"displayName-count-one\": \"rial iraniano\",\n \"displayName-count-other\": \"rial iraniani\",\n symbol: \"IRR\"\n },\n ISJ: {\n displayName: \"ISJ\",\n symbol: \"ISJ\"\n },\n ISK: {\n displayName: \"corona islandese\",\n \"displayName-count-one\": \"corona islandese\",\n \"displayName-count-other\": \"corone islandesi\",\n symbol: \"ISK\",\n \"symbol-alt-narrow\": \"kr\"\n },\n ITL: {\n pattern: \"¤ #,##0.00\",\n displayName: \"lira italiana\",\n symbol: \"ITL\",\n decimal: \",\",\n group: \".\"\n },\n JMD: {\n displayName: \"dollaro giamaicano\",\n \"displayName-count-one\": \"dollaro giamaicano\",\n \"displayName-count-other\": \"dollari giamaicani\",\n symbol: \"JMD\",\n \"symbol-alt-narrow\": \"$\"\n },\n JOD: {\n displayName: \"dinaro giordano\",\n \"displayName-count-one\": \"dinaro giordano\",\n \"displayName-count-other\": \"dinari giordani\",\n symbol: \"JOD\"\n },\n JPY: {\n displayName: \"yen giapponese\",\n \"displayName-count-one\": \"yen giapponese\",\n \"displayName-count-other\": \"yen giapponesi\",\n symbol: \"JPY\",\n \"symbol-alt-narrow\": \"¥\"\n },\n KES: {\n displayName: \"scellino keniota\",\n \"displayName-count-one\": \"scellino keniota\",\n \"displayName-count-other\": \"scellini keniota\",\n symbol: \"KES\"\n },\n KGS: {\n displayName: \"som kirghiso\",\n \"displayName-count-one\": \"som kirghiso\",\n \"displayName-count-other\": \"som kirghisi\",\n symbol: \"KGS\"\n },\n KHR: {\n displayName: \"riel cambogiano\",\n \"displayName-count-one\": \"riel cambogiano\",\n \"displayName-count-other\": \"riel cambogiani\",\n symbol: \"KHR\",\n \"symbol-alt-narrow\": \"៛\"\n },\n KMF: {\n displayName: \"franco comoriano\",\n \"displayName-count-one\": \"franco comoriano\",\n \"displayName-count-other\": \"franchi comoriani\",\n symbol: \"KMF\",\n \"symbol-alt-narrow\": \"CF\"\n },\n KPW: {\n displayName: \"won nordcoreano\",\n \"displayName-count-one\": \"won nordcoreano\",\n \"displayName-count-other\": \"won nordcoreani\",\n symbol: \"KPW\",\n \"symbol-alt-narrow\": \"₩\"\n },\n KRH: {\n displayName: \"KRH\",\n symbol: \"KRH\"\n },\n KRO: {\n displayName: \"KRO\",\n symbol: \"KRO\"\n },\n KRW: {\n displayName: \"won sudcoreano\",\n \"displayName-count-one\": \"won sudcoreano\",\n \"displayName-count-other\": \"won sudcoreani\",\n symbol: \"KRW\",\n \"symbol-alt-narrow\": \"₩\"\n },\n KWD: {\n displayName: \"dinaro kuwaitiano\",\n \"displayName-count-one\": \"dinaro kuwaitiano\",\n \"displayName-count-other\": \"dinari kuwaitiani\",\n symbol: \"KWD\"\n },\n KYD: {\n displayName: \"dollaro delle Isole Cayman\",\n \"displayName-count-one\": \"dollaro delle Isole Cayman\",\n \"displayName-count-other\": \"dollari delle Isole Cayman\",\n symbol: \"KYD\",\n \"symbol-alt-narrow\": \"$\"\n },\n KZT: {\n displayName: \"tenge kazako\",\n \"displayName-count-one\": \"tenge kazako\",\n \"displayName-count-other\": \"tenge kazaki\",\n symbol: \"KZT\",\n \"symbol-alt-narrow\": \"₸\"\n },\n LAK: {\n displayName: \"kip laotiano\",\n \"displayName-count-one\": \"kip laotiano\",\n \"displayName-count-other\": \"kip laotiani\",\n symbol: \"LAK\",\n \"symbol-alt-narrow\": \"₭\"\n },\n LBP: {\n displayName: \"lira libanese\",\n \"displayName-count-one\": \"lira libanese\",\n \"displayName-count-other\": \"lire libanesi\",\n symbol: \"LBP\",\n \"symbol-alt-narrow\": \"L£\"\n },\n LKR: {\n displayName: \"rupia di Sri Lanka\",\n \"displayName-count-one\": \"rupia di Sri Lanka\",\n \"displayName-count-other\": \"rupie di Sri Lanka\",\n symbol: \"LKR\",\n \"symbol-alt-narrow\": \"Rs\"\n },\n LRD: {\n displayName: \"dollaro liberiano\",\n \"displayName-count-one\": \"dollaro liberiano\",\n \"displayName-count-other\": \"dollari liberiani\",\n symbol: \"LRD\",\n \"symbol-alt-narrow\": \"$\"\n },\n LSL: {\n displayName: \"loti del Lesotho\",\n symbol: \"LSL\"\n },\n LTL: {\n displayName: \"litas lituano\",\n \"displayName-count-one\": \"litas lituano\",\n \"displayName-count-other\": \"litas lituani\",\n symbol: \"LTL\",\n \"symbol-alt-narrow\": \"Lt\"\n },\n LTT: {\n displayName: \"talonas lituani\",\n symbol: \"LTT\"\n },\n LUC: {\n displayName: \"franco convertibile del Lussemburgo\",\n symbol: \"LUC\"\n },\n LUF: {\n displayName: \"franco del Lussemburgo\",\n symbol: \"LUF\"\n },\n LUL: {\n displayName: \"franco finanziario del Lussemburgo\",\n symbol: \"LUL\"\n },\n LVL: {\n displayName: \"lats lettone\",\n \"displayName-count-one\": \"lats lettone\",\n \"displayName-count-other\": \"lati lettoni\",\n symbol: \"LVL\",\n \"symbol-alt-narrow\": \"Ls\"\n },\n LVR: {\n displayName: \"rublo lettone\",\n symbol: \"LVR\"\n },\n LYD: {\n displayName: \"dinaro libico\",\n \"displayName-count-one\": \"dinaro libico\",\n \"displayName-count-other\": \"dinari libici\",\n symbol: \"LYD\"\n },\n MAD: {\n displayName: \"dirham marocchino\",\n \"displayName-count-one\": \"dirham marocchino\",\n \"displayName-count-other\": \"dirham marocchini\",\n symbol: \"MAD\"\n },\n MAF: {\n displayName: \"franco marocchino\",\n symbol: \"MAF\"\n },\n MCF: {\n displayName: \"MCF\",\n symbol: \"MCF\"\n },\n MDC: {\n displayName: \"MDC\",\n symbol: \"MDC\"\n },\n MDL: {\n displayName: \"leu moldavo\",\n \"displayName-count-one\": \"leu moldavo\",\n \"displayName-count-other\": \"lei moldavi\",\n symbol: \"MDL\"\n },\n MGA: {\n displayName: \"ariary malgascio\",\n \"displayName-count-one\": \"ariary malgascio\",\n \"displayName-count-other\": \"ariary malgasci\",\n symbol: \"MGA\",\n \"symbol-alt-narrow\": \"Ar\"\n },\n MGF: {\n displayName: \"franco malgascio\",\n symbol: \"MGF\"\n },\n MKD: {\n displayName: \"denar macedone\",\n \"displayName-count-one\": \"dinaro macedone\",\n \"displayName-count-other\": \"dinari macedoni\",\n symbol: \"MKD\"\n },\n MKN: {\n displayName: \"MKN\",\n symbol: \"MKN\"\n },\n MLF: {\n displayName: \"franco di Mali\",\n symbol: \"MLF\"\n },\n MMK: {\n displayName: \"kyat di Myanmar\",\n \"displayName-count-one\": \"kyat di Myanmar\",\n \"displayName-count-other\": \"kyat di Myanmar\",\n symbol: \"MMK\",\n \"symbol-alt-narrow\": \"K\"\n },\n MNT: {\n displayName: \"tugrik mongolo\",\n \"displayName-count-one\": \"tugrik mongolo\",\n \"displayName-count-other\": \"tugrik mongoli\",\n symbol: \"MNT\",\n \"symbol-alt-narrow\": \"₮\"\n },\n MOP: {\n displayName: \"pataca di Macao\",\n \"displayName-count-one\": \"pataca di Macao\",\n \"displayName-count-other\": \"patacas di Macao\",\n symbol: \"MOP\"\n },\n MRO: {\n displayName: \"ouguiya della Mauritania (1973–2017)\",\n \"displayName-count-one\": \"ouguiya della Mauritania (1973–2017)\",\n \"displayName-count-other\": \"ouguiya della Mauritania (1973–2017)\",\n symbol: \"MRO\"\n },\n MRU: {\n displayName: \"ouguiya della Mauritania\",\n \"displayName-count-one\": \"ouguiya della Mauritania\",\n \"displayName-count-other\": \"ouguiya della Mauritania\",\n symbol: \"MRU\"\n },\n MTL: {\n displayName: \"lira maltese\",\n symbol: \"MTL\"\n },\n MTP: {\n displayName: \"sterlina maltese\",\n symbol: \"MTP\"\n },\n MUR: {\n displayName: \"rupia mauriziana\",\n \"displayName-count-one\": \"rupia mauriziana\",\n \"displayName-count-other\": \"rupie mauriziane\",\n symbol: \"MUR\",\n \"symbol-alt-narrow\": \"Rs\"\n },\n MVP: {\n displayName: \"MVP\",\n symbol: \"MVP\"\n },\n MVR: {\n displayName: \"rufiyaa delle Maldive\",\n \"displayName-count-one\": \"rufiyaa delle Maldive\",\n \"displayName-count-other\": \"rufiyaa delle Maldive\",\n symbol: \"MVR\"\n },\n MWK: {\n displayName: \"kwacha malawiano\",\n \"displayName-count-one\": \"kwacha malawiano\",\n \"displayName-count-other\": \"kwacha malawiani\",\n symbol: \"MWK\"\n },\n MXN: {\n displayName: \"peso messicano\",\n \"displayName-count-one\": \"peso messicano\",\n \"displayName-count-other\": \"pesos messicani\",\n symbol: \"MXN\",\n \"symbol-alt-narrow\": \"$\"\n },\n MXP: {\n displayName: \"peso messicano d’argento (1861–1992)\",\n symbol: \"MXP\"\n },\n MXV: {\n displayName: \"unidad de inversion (UDI) messicana\",\n symbol: \"MXV\"\n },\n MYR: {\n displayName: \"ringgit malese\",\n \"displayName-count-one\": \"ringgit malese\",\n \"displayName-count-other\": \"ringgit malesi\",\n symbol: \"MYR\",\n \"symbol-alt-narrow\": \"RM\"\n },\n MZE: {\n displayName: \"escudo del Mozambico\",\n symbol: \"MZE\"\n },\n MZM: {\n displayName: \"MZM\",\n symbol: \"MZM\"\n },\n MZN: {\n displayName: \"metical mozambicano\",\n \"displayName-count-one\": \"metical mozambicano\",\n \"displayName-count-other\": \"metical mozambicani\",\n symbol: \"MZN\"\n },\n NAD: {\n displayName: \"dollaro namibiano\",\n \"displayName-count-one\": \"dollaro namibiano\",\n \"displayName-count-other\": \"dollari namibiani\",\n symbol: \"NAD\",\n \"symbol-alt-narrow\": \"$\"\n },\n NGN: {\n displayName: \"naira nigeriana\",\n \"displayName-count-one\": \"naira nigeriana\",\n \"displayName-count-other\": \"naire nigeriane\",\n symbol: \"NGN\",\n \"symbol-alt-narrow\": \"₦\"\n },\n NIC: {\n displayName: \"cordoba nicaraguense\",\n \"displayName-count-one\": \"cordoba nicaraguense\",\n \"displayName-count-other\": \"cordoba nicaraguense\",\n symbol: \"NIC\"\n },\n NIO: {\n displayName: \"córdoba nicaraguense\",\n \"displayName-count-one\": \"córdoba nicaraguense\",\n \"displayName-count-other\": \"córdoba nicaraguensi\",\n symbol: \"NIO\",\n \"symbol-alt-narrow\": \"C$\"\n },\n NLG: {\n displayName: \"fiorino olandese\",\n symbol: \"NLG\"\n },\n NOK: {\n displayName: \"corona norvegese\",\n \"displayName-count-one\": \"corona norvegese\",\n \"displayName-count-other\": \"corone norvegesi\",\n symbol: \"NOK\",\n \"symbol-alt-narrow\": \"NKr\"\n },\n NPR: {\n displayName: \"rupia nepalese\",\n \"displayName-count-one\": \"rupia nepalese\",\n \"displayName-count-other\": \"rupie nepalesi\",\n symbol: \"NPR\",\n \"symbol-alt-narrow\": \"Rs\"\n },\n NZD: {\n displayName: \"dollaro neozelandese\",\n \"displayName-count-one\": \"dollaro neozelandese\",\n \"displayName-count-other\": \"dollari neozelandesi\",\n symbol: \"NZ$\",\n \"symbol-alt-narrow\": \"$\"\n },\n OMR: {\n displayName: \"rial omanita\",\n \"displayName-count-one\": \"rial omanita\",\n \"displayName-count-other\": \"rial omaniti\",\n symbol: \"OMR\"\n },\n PAB: {\n displayName: \"balboa panamense\",\n \"displayName-count-one\": \"balboa panamense\",\n \"displayName-count-other\": \"balboa panamensi\",\n symbol: \"PAB\"\n },\n PEI: {\n displayName: \"inti peruviano\",\n symbol: \"PEI\"\n },\n PEN: {\n displayName: \"sol peruviano\",\n \"displayName-count-one\": \"sol peruviano\",\n \"displayName-count-other\": \"sol peruviani\",\n symbol: \"PEN\"\n },\n PES: {\n displayName: \"sol peruviano (1863–1965)\",\n symbol: \"PES\"\n },\n PGK: {\n displayName: \"kina papuana\",\n \"displayName-count-one\": \"kina papuana\",\n \"displayName-count-other\": \"kina papuane\",\n symbol: \"PGK\"\n },\n PHP: {\n displayName: \"peso filippino\",\n \"displayName-count-one\": \"peso filippino\",\n \"displayName-count-other\": \"pesos filippini\",\n symbol: \"PHP\",\n \"symbol-alt-narrow\": \"₱\"\n },\n PKR: {\n displayName: \"rupia pakistana\",\n \"displayName-count-one\": \"rupia pakistana\",\n \"displayName-count-other\": \"rupie pakistane\",\n symbol: \"PKR\",\n \"symbol-alt-narrow\": \"Rs\"\n },\n PLN: {\n displayName: \"złoty polacco\",\n \"displayName-count-one\": \"złoty polacco\",\n \"displayName-count-other\": \"złoty polacchi\",\n symbol: \"PLN\",\n \"symbol-alt-narrow\": \"zł\"\n },\n PLZ: {\n displayName: \"złoty Polacco (1950–1995)\",\n \"displayName-count-one\": \"złoty polacco (1950–1995)\",\n \"displayName-count-other\": \"złoty polacchi (1950–1995)\",\n symbol: \"PLZ\"\n },\n PTE: {\n displayName: \"escudo portoghese\",\n symbol: \"PTE\"\n },\n PYG: {\n displayName: \"guaraní paraguayano\",\n \"displayName-count-one\": \"guaraní paraguayano\",\n \"displayName-count-other\": \"guaraní paraguayani\",\n symbol: \"PYG\",\n \"symbol-alt-narrow\": \"₲\"\n },\n QAR: {\n displayName: \"rial qatariano\",\n \"displayName-count-one\": \"rial qatariano\",\n \"displayName-count-other\": \"rial qatariani\",\n symbol: \"QAR\"\n },\n RHD: {\n displayName: \"dollaro della Rhodesia\",\n symbol: \"RHD\"\n },\n ROL: {\n displayName: \"leu della Romania\",\n symbol: \"ROL\"\n },\n RON: {\n displayName: \"leu rumeno\",\n \"displayName-count-one\": \"leu rumeno\",\n \"displayName-count-other\": \"lei rumeni\",\n symbol: \"RON\",\n \"symbol-alt-narrow\": \"lei\"\n },\n RSD: {\n displayName: \"dinaro serbo\",\n \"displayName-count-one\": \"dinaro serbo\",\n \"displayName-count-other\": \"dinara serbi\",\n symbol: \"RSD\"\n },\n RUB: {\n displayName: \"rublo russo\",\n \"displayName-count-one\": \"rublo russo\",\n \"displayName-count-other\": \"rubli russi\",\n symbol: \"RUB\",\n \"symbol-alt-narrow\": \"₽\"\n },\n RUR: {\n displayName: \"rublo della CSI\",\n symbol: \"RUR\",\n \"symbol-alt-narrow\": \"р.\"\n },\n RWF: {\n displayName: \"franco ruandese\",\n \"displayName-count-one\": \"franco ruandese\",\n \"displayName-count-other\": \"franchi ruandesi\",\n symbol: \"RWF\",\n \"symbol-alt-narrow\": \"RF\"\n },\n SAR: {\n displayName: \"riyal saudita\",\n \"displayName-count-one\": \"riyal saudita\",\n \"displayName-count-other\": \"riyal sauditi\",\n symbol: \"SAR\"\n },\n SBD: {\n displayName: \"dollaro delle Isole Salomone\",\n \"displayName-count-one\": \"dollaro delle Isole Salomone\",\n \"displayName-count-other\": \"dollari delle Isole Salomone\",\n symbol: \"SBD\",\n \"symbol-alt-narrow\": \"$\"\n },\n SCR: {\n displayName: \"rupia delle Seychelles\",\n \"displayName-count-one\": \"rupia delle Seychelles\",\n \"displayName-count-other\": \"rupie delle Seychelles\",\n symbol: \"SCR\"\n },\n SDD: {\n displayName: \"dinaro sudanese\",\n symbol: \"SDD\"\n },\n SDG: {\n displayName: \"sterlina sudanese\",\n \"displayName-count-one\": \"sterlina sudanese\",\n \"displayName-count-other\": \"sterline sudanesi\",\n symbol: \"SDG\"\n },\n SDP: {\n displayName: \"SDP\",\n symbol: \"SDP\"\n },\n SEK: {\n displayName: \"corona svedese\",\n \"displayName-count-one\": \"corona svedese\",\n \"displayName-count-other\": \"corone svedesi\",\n symbol: \"SEK\",\n \"symbol-alt-narrow\": \"kr\"\n },\n SGD: {\n displayName: \"dollaro di Singapore\",\n \"displayName-count-one\": \"dollaro di Singapore\",\n \"displayName-count-other\": \"dollari di Singapore\",\n symbol: \"SGD\",\n \"symbol-alt-narrow\": \"$\"\n },\n SHP: {\n displayName: \"sterlina di Sant’Elena\",\n \"displayName-count-one\": \"sterlina di Sant’Elena\",\n \"displayName-count-other\": \"sterline di Sant’Elena\",\n symbol: \"SHP\",\n \"symbol-alt-narrow\": \"£\"\n },\n SIT: {\n displayName: \"tallero sloveno\",\n symbol: \"SIT\"\n },\n SKK: {\n displayName: \"corona slovacca\",\n symbol: \"SKK\"\n },\n SLL: {\n displayName: \"leone della Sierra Leone\",\n \"displayName-count-one\": \"leone della Sierra Leone\",\n \"displayName-count-other\": \"leoni della Sierra Leone\",\n symbol: \"SLL\"\n },\n SOS: {\n displayName: \"scellino somalo\",\n \"displayName-count-one\": \"scellino somalo\",\n \"displayName-count-other\": \"scellini somali\",\n symbol: \"SOS\"\n },\n SRD: {\n displayName: \"dollaro del Suriname\",\n \"displayName-count-one\": \"dollaro del Suriname\",\n \"displayName-count-other\": \"dollari del Suriname\",\n symbol: \"SRD\",\n \"symbol-alt-narrow\": \"$\"\n },\n SRG: {\n displayName: \"fiorino del Suriname\",\n symbol: \"SRG\"\n },\n SSP: {\n displayName: \"sterlina sud-sudanese\",\n \"displayName-count-one\": \"sterlina sud-sudanese\",\n \"displayName-count-other\": \"sterline sud-sudanesi\",\n symbol: \"SSP\",\n \"symbol-alt-narrow\": \"£\"\n },\n STD: {\n displayName: \"dobra di Sao Tomé e Principe (1977–2017)\",\n \"displayName-count-one\": \"dobra di Sao Tomé e Principe (1977–2017)\",\n \"displayName-count-other\": \"dobra di Sao Tomé e Principe (1977–2017)\",\n symbol: \"STD\"\n },\n STN: {\n displayName: \"dobra di Sao Tomé e Príncipe\",\n \"displayName-count-one\": \"dobra di Sao Tomé e Príncipe\",\n \"displayName-count-other\": \"dobra di Sao Tomé e Príncipe\",\n symbol: \"STN\",\n \"symbol-alt-narrow\": \"Db\"\n },\n SUR: {\n displayName: \"rublo sovietico\",\n symbol: \"SUR\"\n },\n SVC: {\n displayName: \"colón salvadoregno\",\n symbol: \"SVC\"\n },\n SYP: {\n displayName: \"lira siriana\",\n \"displayName-count-one\": \"lira siriana\",\n \"displayName-count-other\": \"lire siriane\",\n symbol: \"SYP\",\n \"symbol-alt-narrow\": \"£\"\n },\n SZL: {\n displayName: \"lilangeni dello Swaziland\",\n \"displayName-count-one\": \"lilangeni dello Swaziland\",\n \"displayName-count-other\": \"lilangeni dello Swaziland\",\n symbol: \"SZL\"\n },\n THB: {\n displayName: \"baht thailandese\",\n \"displayName-count-one\": \"baht thailandese\",\n \"displayName-count-other\": \"baht thailandesi\",\n symbol: \"฿\",\n \"symbol-alt-narrow\": \"฿\"\n },\n TJR: {\n displayName: \"rublo del Tajikistan\",\n symbol: \"TJR\"\n },\n TJS: {\n displayName: \"somoni tagiko\",\n \"displayName-count-one\": \"somoni tagiko\",\n \"displayName-count-other\": \"somoni tagiki\",\n symbol: \"TJS\"\n },\n TMM: {\n displayName: \"manat turkmeno (1993–2009)\",\n symbol: \"TMM\"\n },\n TMT: {\n displayName: \"manat turkmeno\",\n \"displayName-count-one\": \"manat turkmeno\",\n \"displayName-count-other\": \"manat turkmeni\",\n symbol: \"TMT\"\n },\n TND: {\n displayName: \"dinaro tunisino\",\n \"displayName-count-one\": \"dinaro tunisino\",\n \"displayName-count-other\": \"dinari tunisini\",\n symbol: \"TND\"\n },\n TOP: {\n displayName: \"paʻanga tongano\",\n \"displayName-count-one\": \"paʻanga tongano\",\n \"displayName-count-other\": \"paʻanga tongani\",\n symbol: \"TOP\",\n \"symbol-alt-narrow\": \"T$\"\n },\n TPE: {\n displayName: \"escudo di Timor\",\n symbol: \"TPE\"\n },\n TRL: {\n displayName: \"lira turca (1922–2005)\",\n \"displayName-count-one\": \"lira turca (1922–2005)\",\n \"displayName-count-other\": \"lire turche (1922–2005)\",\n symbol: \"TRL\"\n },\n TRY: {\n displayName: \"lira turca\",\n \"displayName-count-one\": \"lira turca\",\n \"displayName-count-other\": \"lire turche\",\n symbol: \"TRY\",\n \"symbol-alt-narrow\": \"₺\",\n \"symbol-alt-variant\": \"TL\"\n },\n TTD: {\n displayName: \"dollaro di Trinidad e Tobago\",\n \"displayName-count-one\": \"dollaro di Trinidad e Tobago\",\n \"displayName-count-other\": \"dollari di Trinidad e Tobago\",\n symbol: \"TTD\",\n \"symbol-alt-narrow\": \"$\"\n },\n TWD: {\n displayName: \"nuovo dollaro taiwanese\",\n \"displayName-count-one\": \"nuovo dollaro taiwanese\",\n \"displayName-count-other\": \"nuovi dollari taiwanesi\",\n symbol: \"TWD\",\n \"symbol-alt-narrow\": \"NT$\"\n },\n TZS: {\n displayName: \"scellino della Tanzania\",\n \"displayName-count-one\": \"scellino della Tanzania\",\n \"displayName-count-other\": \"scellini della Tanzania\",\n symbol: \"TZS\"\n },\n UAH: {\n displayName: \"grivnia ucraina\",\n \"displayName-count-one\": \"grivnia ucraina\",\n \"displayName-count-other\": \"grivnie ucraine\",\n symbol: \"UAH\",\n \"symbol-alt-narrow\": \"₴\"\n },\n UAK: {\n displayName: \"karbovanetz ucraino\",\n symbol: \"UAK\"\n },\n UGS: {\n displayName: \"scellino ugandese (1966–1987)\",\n symbol: \"UGS\"\n },\n UGX: {\n displayName: \"scellino ugandese\",\n \"displayName-count-one\": \"scellino ugandese\",\n \"displayName-count-other\": \"scellini ugandesi\",\n symbol: \"UGX\"\n },\n USD: {\n displayName: \"dollaro statunitense\",\n \"displayName-count-one\": \"dollaro statunitense\",\n \"displayName-count-other\": \"dollari statunitensi\",\n symbol: \"USD\",\n \"symbol-alt-narrow\": \"$\"\n },\n USN: {\n displayName: \"dollaro statunitense (next day)\",\n symbol: \"USN\"\n },\n USS: {\n displayName: \"dollaro statunitense (same day)\",\n symbol: \"USS\"\n },\n UYI: {\n displayName: \"peso uruguaiano in unità indicizzate\",\n symbol: \"UYI\"\n },\n UYP: {\n displayName: \"peso uruguaiano (1975–1993)\",\n symbol: \"UYP\"\n },\n UYU: {\n displayName: \"peso uruguayano\",\n \"displayName-count-one\": \"peso uruguayano\",\n \"displayName-count-other\": \"pesos uruguayani\",\n symbol: \"UYU\",\n \"symbol-alt-narrow\": \"$\"\n },\n UYW: {\n displayName: \"UYW\",\n symbol: \"UYW\"\n },\n UZS: {\n displayName: \"sum uzbeco\",\n \"displayName-count-one\": \"sum uzbeco\",\n \"displayName-count-other\": \"sum uzbechi\",\n symbol: \"UZS\"\n },\n VEB: {\n displayName: \"bolivar venezuelano (1871–2008)\",\n \"displayName-count-one\": \"bolivar venezuelano (1871–2008)\",\n \"displayName-count-other\": \"bolivares venezuelani (1871–2008)\",\n symbol: \"VEB\"\n },\n VEF: {\n displayName: \"bolívar venezuelano (2008–2018)\",\n \"displayName-count-one\": \"bolívar venezuelano (2008–2018)\",\n \"displayName-count-other\": \"bolívares venezuelani (2008–2018)\",\n symbol: \"VEF\",\n \"symbol-alt-narrow\": \"Bs\"\n },\n VES: {\n displayName: \"bolívar venezuelano\",\n \"displayName-count-one\": \"bolívar venezuelano\",\n \"displayName-count-other\": \"bolívares venezuelani\",\n symbol: \"VES\"\n },\n VND: {\n displayName: \"dong vietnamita\",\n \"displayName-count-one\": \"dong vietnamita\",\n \"displayName-count-other\": \"dong vietnamiti\",\n symbol: \"₫\",\n \"symbol-alt-narrow\": \"₫\"\n },\n VNN: {\n displayName: \"VNN\",\n symbol: \"VNN\"\n },\n VUV: {\n displayName: \"vatu di Vanuatu\",\n \"displayName-count-one\": \"vatu di Vanuatu\",\n \"displayName-count-other\": \"vatu di Vanuatu\",\n symbol: \"VUV\"\n },\n WST: {\n displayName: \"tala samoano\",\n \"displayName-count-one\": \"tala samoano\",\n \"displayName-count-other\": \"tala samoani\",\n symbol: \"WST\"\n },\n XAF: {\n displayName: \"franco CFA BEAC\",\n \"displayName-count-one\": \"franco CFA BEAC\",\n \"displayName-count-other\": \"franchi CFA BEAC\",\n symbol: \"FCFA\"\n },\n XAG: {\n displayName: \"argento\",\n symbol: \"XAG\"\n },\n XAU: {\n displayName: \"oro\",\n symbol: \"XAU\"\n },\n XBA: {\n displayName: \"unità composita europea\",\n symbol: \"XBA\"\n },\n XBB: {\n displayName: \"unità monetaria europea\",\n symbol: \"XBB\"\n },\n XBC: {\n displayName: \"unità di acconto europea (XBC)\",\n symbol: \"XBC\"\n },\n XBD: {\n displayName: \"unità di acconto europea (XBD)\",\n symbol: \"XBD\"\n },\n XCD: {\n displayName: \"dollaro dei Caraibi orientali\",\n \"displayName-count-one\": \"dollaro dei Caraibi orientali\",\n \"displayName-count-other\": \"dollari dei Caraibi orientali\",\n symbol: \"EC$\",\n \"symbol-alt-narrow\": \"$\"\n },\n XDR: {\n displayName: \"diritti speciali di incasso\",\n symbol: \"XDR\"\n },\n XEU: {\n displayName: \"XEU\",\n symbol: \"XEU\"\n },\n XFO: {\n displayName: \"franco oro francese\",\n symbol: \"XFO\"\n },\n XFU: {\n displayName: \"franco UIC francese\",\n symbol: \"XFU\"\n },\n XOF: {\n displayName: \"franco CFA BCEAO\",\n \"displayName-count-one\": \"franco CFA BCEAO\",\n \"displayName-count-other\": \"franchi CFA BCEAO\",\n symbol: \"CFA\"\n },\n XPD: {\n displayName: \"palladio\",\n symbol: \"XPD\"\n },\n XPF: {\n displayName: \"franco CFP\",\n \"displayName-count-one\": \"franco CFP\",\n \"displayName-count-other\": \"franchi CFP\",\n symbol: \"CFPF\"\n },\n XPT: {\n displayName: \"platino\",\n symbol: \"XPT\"\n },\n XRE: {\n displayName: \"fondi RINET\",\n symbol: \"XRE\"\n },\n XSU: {\n displayName: \"XSU\",\n symbol: \"XSU\"\n },\n XTS: {\n displayName: \"codice di verifica della valuta\",\n symbol: \"XTS\"\n },\n XUA: {\n displayName: \"XUA\",\n symbol: \"XUA\"\n },\n XXX: {\n displayName: \"valuta sconosciuta\",\n \"displayName-count-one\": \"(valuta sconosciuta)\",\n \"displayName-count-other\": \"(valute sconosciute)\",\n symbol: \"¤\"\n },\n YDD: {\n displayName: \"dinaro dello Yemen\",\n symbol: \"YDD\"\n },\n YER: {\n displayName: \"riyal yemenita\",\n \"displayName-count-one\": \"rial yemenita\",\n \"displayName-count-other\": \"rial yemeniti\",\n symbol: \"YER\"\n },\n YUD: {\n displayName: \"dinaro forte yugoslavo\",\n symbol: \"YUD\"\n },\n YUM: {\n displayName: \"dinaro noviy yugoslavo\",\n symbol: \"YUM\"\n },\n YUN: {\n displayName: \"dinaro convertibile yugoslavo\",\n symbol: \"YUN\"\n },\n YUR: {\n displayName: \"YUR\",\n symbol: \"YUR\"\n },\n ZAL: {\n displayName: \"rand sudafricano (finanziario)\",\n symbol: \"ZAL\"\n },\n ZAR: {\n displayName: \"rand sudafricano\",\n \"displayName-count-one\": \"rand sudafricano\",\n \"displayName-count-other\": \"rand sudafricani\",\n symbol: \"ZAR\",\n \"symbol-alt-narrow\": \"R\"\n },\n ZMK: {\n displayName: \"kwacha dello Zambia (1968–2012)\",\n \"displayName-count-one\": \"kwacha zambiano (1968–2012)\",\n \"displayName-count-other\": \"kwacha zambiani (1968–2012)\",\n symbol: \"ZMK\"\n },\n ZMW: {\n displayName: \"kwacha dello Zambia\",\n \"displayName-count-one\": \"kwacha zambiano\",\n \"displayName-count-other\": \"kwacha zambiani\",\n symbol: \"ZMW\",\n \"symbol-alt-narrow\": \"ZK\"\n },\n ZRN: {\n displayName: \"nuovo zaire dello Zaire\",\n symbol: \"ZRN\"\n },\n ZRZ: {\n displayName: \"zaire dello Zaire\",\n symbol: \"ZRZ\"\n },\n ZWD: {\n displayName: \"dollaro dello Zimbabwe\",\n symbol: \"ZWD\"\n },\n ZWL: {\n displayName: \"dollaro zimbabwiano (2009)\",\n symbol: \"ZWL\"\n },\n ZWR: {\n displayName: \"ZWR\",\n symbol: \"ZWR\"\n }\n },\n localeCurrency: \"EUR\"\n },\n calendar: {\n patterns: {\n d: \"dd/MM/y\",\n D: \"EEEE d MMMM y\",\n m: \"d MMM\",\n M: \"d MMMM\",\n y: \"MMM y\",\n Y: \"MMMM y\",\n F: \"EEEE d MMMM y HH:mm:ss\",\n g: \"d/M/y HH:mm\",\n G: \"d/M/y HH:mm:ss\",\n t: \"HH:mm\",\n T: \"HH:mm:ss\",\n s: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\n u: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\"\n },\n dateTimeFormats: {\n full: \"{1} {0}\",\n long: \"{1} {0}\",\n medium: \"{1}, {0}\",\n short: \"{1}, {0}\",\n availableFormats: {\n Bh: \"h B\",\n Bhm: \"h:mm B\",\n Bhms: \"h:mm:ss B\",\n d: \"d\",\n E: \"ccc\",\n EBhm: \"E h:mm B\",\n EBhms: \"E h:mm:ss B\",\n Ed: \"E d\",\n Ehm: \"E h:mm a\",\n EHm: \"E HH:mm\",\n Ehms: \"E h:mm:ss a\",\n EHms: \"E HH:mm:ss\",\n Gy: \"y G\",\n GyMMM: \"MMM y G\",\n GyMMMd: \"d MMM y G\",\n GyMMMEd: \"E d MMM y G\",\n h: \"h a\",\n H: \"HH\",\n hm: \"h:mm a\",\n Hm: \"HH:mm\",\n hms: \"h:mm:ss a\",\n Hms: \"HH:mm:ss\",\n hmsv: \"h:mm:ss a v\",\n Hmsv: \"HH:mm:ss v\",\n hmv: \"h:mm a v\",\n Hmv: \"HH:mm v\",\n M: \"L\",\n Md: \"d/M\",\n MEd: \"E d/M\",\n MMM: \"LLL\",\n MMMd: \"d MMM\",\n MMMEd: \"E d MMM\",\n MMMMd: \"d MMMM\",\n \"MMMMW-count-one\": \"'settimana' W 'di' MMMM\",\n \"MMMMW-count-other\": \"'settimana' W 'di' MMMM\",\n ms: \"mm:ss\",\n y: \"y\",\n yM: \"M/y\",\n yMd: \"d/M/y\",\n yMEd: \"E d/M/y\",\n yMMM: \"MMM y\",\n yMMMd: \"d MMM y\",\n yMMMEd: \"E d MMM y\",\n yMMMM: \"MMMM y\",\n yQQQ: \"QQQ y\",\n yQQQQ: \"QQQQ y\",\n \"yw-count-one\": \"'settimana' w 'del' Y\",\n \"yw-count-other\": \"'settimana' w 'del' Y\"\n }\n },\n timeFormats: {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\"\n },\n dateFormats: {\n full: \"EEEE d MMMM y\",\n long: \"d MMMM y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yy\"\n },\n days: {\n format: {\n abbreviated: [\n \"dom\",\n \"lun\",\n \"mar\",\n \"mer\",\n \"gio\",\n \"ven\",\n \"sab\"\n ],\n narrow: [\n \"D\",\n \"L\",\n \"M\",\n \"M\",\n \"G\",\n \"V\",\n \"S\"\n ],\n short: [\n \"dom\",\n \"lun\",\n \"mar\",\n \"mer\",\n \"gio\",\n \"ven\",\n \"sab\"\n ],\n wide: [\n \"domenica\",\n \"lunedì\",\n \"martedì\",\n \"mercoledì\",\n \"giovedì\",\n \"venerdì\",\n \"sabato\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"dom\",\n \"lun\",\n \"mar\",\n \"mer\",\n \"gio\",\n \"ven\",\n \"sab\"\n ],\n narrow: [\n \"D\",\n \"L\",\n \"M\",\n \"M\",\n \"G\",\n \"V\",\n \"S\"\n ],\n short: [\n \"dom\",\n \"lun\",\n \"mar\",\n \"mer\",\n \"gio\",\n \"ven\",\n \"sab\"\n ],\n wide: [\n \"domenica\",\n \"lunedì\",\n \"martedì\",\n \"mercoledì\",\n \"giovedì\",\n \"venerdì\",\n \"sabato\"\n ]\n }\n },\n months: {\n format: {\n abbreviated: [\n \"gen\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"mag\",\n \"giu\",\n \"lug\",\n \"ago\",\n \"set\",\n \"ott\",\n \"nov\",\n \"dic\"\n ],\n narrow: [\n \"G\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"G\",\n \"L\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\n \"gennaio\",\n \"febbraio\",\n \"marzo\",\n \"aprile\",\n \"maggio\",\n \"giugno\",\n \"luglio\",\n \"agosto\",\n \"settembre\",\n \"ottobre\",\n \"novembre\",\n \"dicembre\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"gen\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"mag\",\n \"giu\",\n \"lug\",\n \"ago\",\n \"set\",\n \"ott\",\n \"nov\",\n \"dic\"\n ],\n narrow: [\n \"G\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"G\",\n \"L\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\n \"gennaio\",\n \"febbraio\",\n \"marzo\",\n \"aprile\",\n \"maggio\",\n \"giugno\",\n \"luglio\",\n \"agosto\",\n \"settembre\",\n \"ottobre\",\n \"novembre\",\n \"dicembre\"\n ]\n }\n },\n quarters: {\n format: {\n abbreviated: [\n \"T1\",\n \"T2\",\n \"T3\",\n \"T4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1º trimestre\",\n \"2º trimestre\",\n \"3º trimestre\",\n \"4º trimestre\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"T1\",\n \"T2\",\n \"T3\",\n \"T4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1º trimestre\",\n \"2º trimestre\",\n \"3º trimestre\",\n \"4º trimestre\"\n ]\n }\n },\n dayPeriods: {\n format: {\n abbreviated: {\n midnight: \"mezzanotte\",\n am: \"AM\",\n noon: \"mezzogiorno\",\n pm: \"PM\",\n morning1: \"di mattina\",\n afternoon1: \"di pomeriggio\",\n evening1: \"di sera\",\n night1: \"di notte\"\n },\n narrow: {\n midnight: \"mezzanotte\",\n am: \"m.\",\n noon: \"mezzogiorno\",\n pm: \"p.\",\n morning1: \"di mattina\",\n afternoon1: \"di pomeriggio\",\n evening1: \"di sera\",\n night1: \"di notte\"\n },\n wide: {\n midnight: \"mezzanotte\",\n am: \"AM\",\n noon: \"mezzogiorno\",\n pm: \"PM\",\n morning1: \"di mattina\",\n afternoon1: \"del pomeriggio\",\n evening1: \"di sera\",\n night1: \"di notte\"\n }\n },\n \"stand-alone\": {\n abbreviated: {\n midnight: \"mezzanotte\",\n am: \"AM\",\n noon: \"mezzogiorno\",\n pm: \"PM\",\n morning1: \"mattina\",\n afternoon1: \"pomeriggio\",\n evening1: \"sera\",\n night1: \"notte\"\n },\n narrow: {\n midnight: \"mezzanotte\",\n am: \"m.\",\n noon: \"mezzogiorno\",\n pm: \"p.\",\n morning1: \"mattina\",\n afternoon1: \"pomeriggio\",\n evening1: \"sera\",\n night1: \"notte\"\n },\n wide: {\n midnight: \"mezzanotte\",\n am: \"AM\",\n noon: \"mezzogiorno\",\n pm: \"PM\",\n morning1: \"mattina\",\n afternoon1: \"pomeriggio\",\n evening1: \"sera\",\n night1: \"notte\"\n }\n }\n },\n eras: {\n format: {\n wide: {\n \"0\": \"avanti Cristo\",\n \"1\": \"dopo Cristo\",\n \"0-alt-variant\": \"avanti Era Volgare\",\n \"1-alt-variant\": \"Era Volgare\"\n },\n abbreviated: {\n \"0\": \"a.C.\",\n \"1\": \"d.C.\",\n \"0-alt-variant\": \"a.E.V.\",\n \"1-alt-variant\": \"E.V.\"\n },\n narrow: {\n \"0\": \"aC\",\n \"1\": \"dC\",\n \"0-alt-variant\": \"a.E.V.\",\n \"1-alt-variant\": \"E.V.\"\n }\n }\n },\n gmtFormat: \"GMT{0}\",\n gmtZeroFormat: \"GMT\",\n dateFields: {\n era: {\n wide: \"era\",\n short: \"era\",\n narrow: \"era\"\n },\n year: {\n wide: \"anno\",\n short: \"anno\",\n narrow: \"anno\"\n },\n quarter: {\n wide: \"trimestre\",\n short: \"trim.\",\n narrow: \"trim.\"\n },\n month: {\n wide: \"mese\",\n short: \"mese\",\n narrow: \"mese\"\n },\n week: {\n wide: \"settimana\",\n short: \"sett.\",\n narrow: \"sett.\"\n },\n weekOfMonth: {\n wide: \"settimana del mese\",\n short: \"sett. mese\",\n narrow: \"sett. mese\"\n },\n day: {\n wide: \"giorno\",\n short: \"g\",\n narrow: \"g\"\n },\n dayOfYear: {\n wide: \"giorno dell’anno\",\n short: \"giorno anno\",\n narrow: \"giorno anno\"\n },\n weekday: {\n wide: \"giorno della settimana\",\n short: \"giorno settimana\",\n narrow: \"giorno sett.\"\n },\n weekdayOfMonth: {\n wide: \"giorno del mese\",\n short: \"giorno mese\",\n narrow: \"giorno mese\"\n },\n dayperiod: {\n short: \"AM/PM\",\n wide: \"AM/PM\",\n narrow: \"AM/PM\"\n },\n hour: {\n wide: \"ora\",\n short: \"h.\",\n narrow: \"h\"\n },\n minute: {\n wide: \"minuto\",\n short: \"min\",\n narrow: \"min\"\n },\n second: {\n wide: \"secondo\",\n short: \"s\",\n narrow: \"s\"\n },\n zone: {\n wide: \"fuso orario\",\n short: \"fuso\",\n narrow: \"fuso\"\n }\n }\n },\n firstDay: 1,\n weekendRange: {\n start: 6,\n end: 0\n },\n likelySubtags: {\n it: \"it-Latn-IT\"\n }\n});\n\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2019 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { map, skip, tap } from 'rxjs/operators';\n\n/* tslint:disable:max-line-length */\n/**\n * A base class for a service that returns localized messages.\n *\n * For more information, refer to the section on [using the message service]({% slug messages_l10n %}#toc-using-the-message-service).\n */\nclass MessageService {\n constructor() {\n /**\n * @hidden\n */\n this.changes = new Subject();\n }\n /**\n * Notifies the components that the messages were changed.\n *\n * @param rtl - (Optional) A new value for the [text direction token]({% slug api_l10n_rtl %}).\n */\n notify(rtl) {\n this.changes.next({ rtl });\n }\n /**\n * Returns a localized message for the supplied key.\n *\n * @param key - The message key. For example, `\"kendo.grid.noRecords\"`.\n * @return - The localized message for this key or `undefined` if not found.\n */\n get(key) {\n return undefined;\n }\n}\nMessageService.decorators = [\n { type: Injectable },\n];\n\n/**\n * Base class that acts as a component messages container.\n *\n * For internal use.\n * @hidden\n */\nclass ComponentMessages {\n get override() {\n return false;\n }\n ngOnChanges(changes) {\n this.register(changes);\n if (Object.keys(changes).some(field => !changes[field].isFirstChange())) {\n this.service.notifyChanges();\n }\n }\n ngOnInit() {\n this.subscription = this.service.changes.pipe(skip(1)).subscribe(() => this.register(this));\n }\n register(changes) {\n const keys = Object.keys(changes);\n keys.forEach(key => this.service.register(key, this[key], this.override));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n\n/**\n * A token that specifies the text direction of Kendo UI for Angular components.\n *\n * @example\n * {% embed_file rtl/app.module.ts preview %}\n * {% embed_file rtl/app.component.ts %}\n * {% embed_file shared/main.ts hidden %}\n *\n */\nconst RTL = new InjectionToken(\"Kendo UI Right-to-Left token\");\n\n/**\n * Localization prefix for the component messages.\n *\n * For internal use.\n * @hidden\n */\nconst L10N_PREFIX = new InjectionToken('Localization key prefix');\n/**\n * Component localization service.\n *\n * For internal use.\n * @hidden\n */\nclass LocalizationService {\n constructor(prefix, messageService, _rtl) {\n this.prefix = prefix;\n this.messageService = messageService;\n this._rtl = _rtl;\n this.changes = new BehaviorSubject({ rtl: this._rtl });\n this.dictionary = {};\n if (messageService) {\n this.subscription = messageService.changes\n .pipe(map(({ rtl }) => rtl !== undefined ? rtl : this._rtl), tap(rtl => this._rtl = rtl))\n .subscribe(rtl => {\n this.dictionary = {};\n this.changes.next({ rtl });\n });\n }\n }\n get rtl() {\n return this._rtl;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n get(shortKey) {\n const key = this.key(shortKey);\n return this.dictionary[key];\n }\n register(shortKey, value, override = false) {\n const key = this.key(shortKey);\n let message = value;\n if (!override) {\n if (this.dictionary.hasOwnProperty(key)) {\n return;\n }\n message = this.defaultValue(key, value);\n }\n this.dictionary[key] = message;\n }\n notifyChanges() {\n this.changes.next({ rtl: this.rtl });\n }\n key(shortKey) {\n return this.prefix + '.' + shortKey;\n }\n defaultValue(key, value) {\n if (!this.messageService) {\n return value;\n }\n const alt = this.messageService.get(key);\n return (alt === undefined) ? value : alt;\n }\n}\nLocalizationService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nLocalizationService.ctorParameters = () => [\n { type: String, decorators: [{ type: Inject, args: [L10N_PREFIX,] }] },\n { type: MessageService, decorators: [{ type: Optional }] },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [RTL,] }] }\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MessageService, ComponentMessages, L10N_PREFIX, LocalizationService, RTL };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { Injectable, Directive, TemplateRef, Optional, isDevMode, Component, SkipSelf, Host, ElementRef, Input, ViewChild, HostBinding, ViewChildren, ContentChildren, EventEmitter, Output, ContentChild, HostListener, Renderer2, ChangeDetectorRef, NgZone, Inject, QueryList, NgModule, ViewEncapsulation } from '@angular/core';\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { Keys, hasObservers, DraggableDirective, DraggableModule } from '@progress/kendo-angular-common';\nimport { trigger, state, style, transition, animate, AUTO_STYLE, AnimationBuilder } from '@angular/animations';\nimport { Subject, BehaviorSubject, Subscription, of } from 'rxjs';\nimport { take, tap, filter, switchMap, delay, takeUntil, map } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\n\n/**\n * Represents the expand modes of the PanelBar.\n * By default, the expand mode is set to `multiple`.\n */\nvar PanelBarExpandMode;\n(function (PanelBarExpandMode) {\n /**\n * Allows you to expand only one item at a time.\n * When you expand an item, the item that was previously expanded is coll.\n */\n PanelBarExpandMode[PanelBarExpandMode[\"Single\"] = 0] = \"Single\";\n /**\n * Allows you to expand only one item at a time and requires you to set the `height` property.\n * The expanded area occupies the entire height of the PanelBar.\n */\n PanelBarExpandMode[PanelBarExpandMode[\"Full\"] = 1] = \"Full\";\n /**\n * The default mode of the PanelBar.\n * Allows you to expand more than one item at a time. Items can also be toggled.\n */\n PanelBarExpandMode[PanelBarExpandMode[\"Multiple\"] = 2] = \"Multiple\";\n /**\n * By default, the expand mode is set to `multiple`.\n */\n PanelBarExpandMode[PanelBarExpandMode[\"Default\"] = 2] = \"Default\";\n})(PanelBarExpandMode || (PanelBarExpandMode = {}));\n\n/**\n * @hidden\n */\nlet nextPanelbarId = 0;\n/**\n * @hidden\n */\nclass PanelBarService {\n constructor() {\n this.parentSource = new Subject();\n this.keepContentSource = new BehaviorSubject(false);\n this.childSource = new Subject();\n this.parent$ = this.parentSource.asObservable();\n this.children$ = this.childSource.asObservable();\n this.keepContent$ = this.keepContentSource.asObservable();\n this.pbId = nextPanelbarId++;\n }\n onKeepContent(keepContent) {\n this.keepContentSource.next(keepContent);\n }\n onSelect(event) {\n this.childSource.next(event);\n }\n onFocus() {\n this.parentSource.next(true);\n }\n onBlur() {\n this.parentSource.next(false);\n }\n}\nPanelBarService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nPanelBarService.ctorParameters = () => [];\n\n/**\n * Represents the content template of the declaratively initialized PanelBar items.\n * The content can be expanded or collapsed through the item.\n */\nclass PanelBarContentDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nPanelBarContentDirective.decorators = [\n { type: Directive, args: [{\n selector: \"[kendoPanelBarContent]\"\n },] },\n];\n/** @nocollapse */\nPanelBarContentDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Represents the template directive of the PanelBar which helps to customize the item title\n * ([more information and example]({% slug templates_panelbar %}#toc-customizing-the-appearance-of-the-title)).\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * Additional Content\n * \n * \n * \n * `\n * })\n *\n * class AppComponent {}\n *\n * ```\n */\nclass PanelBarItemTitleDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nPanelBarItemTitleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoPanelBarItemTitle]'\n },] },\n];\n/** @nocollapse */\nPanelBarItemTitleDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * @hidden\n */\nconst ITEM_INDEX = 'data-kendo-drawer-index';\n\n/**\n * @hidden\n */\nconst isPresent = (value) => value !== null && value !== undefined;\n\nconst focusableRegex = /^(?:a|input|select|option|textarea|button|object)$/i;\n/**\n * @hidden\n */\nconst isFocusable = (element) => {\n if (element.tagName) {\n const tagName = element.tagName.toLowerCase();\n const tabIndex = element.getAttribute('tabIndex');\n const skipTab = tabIndex === '-1';\n let focusable = tabIndex !== null && !skipTab;\n if (focusableRegex.test(tagName)) {\n focusable = !element.disabled && !skipTab;\n }\n return focusable;\n }\n return false;\n};\n/**\n * @hidden\n */\nconst closestInScope = (target, predicate, scope) => {\n while (target && target !== scope && !predicate(target)) {\n target = target.parentNode;\n }\n if (target !== scope) {\n return target;\n }\n};\n/**\n * @hidden\n */\nconst itemIndex = (item) => +item.getAttribute(ITEM_INDEX);\n/**\n *\n * @hidden\n */\nconst hasItemIndex = (item) => isPresent(item.getAttribute(ITEM_INDEX));\n/**\n * @hidden\n */\nconst closestItem = (target, scope) => closestInScope(target, hasItemIndex, scope);\n\n/**\n * @hidden\n */\nlet nextId = 0;\n/**\n * Represents the items of the PanelBar.\n */\nclass PanelBarItemComponent {\n constructor(parent, eventService, element) {\n this.parent = parent;\n this.eventService = eventService;\n this.element = element;\n /**\n * Sets the title of the PanelBar item ([see example]({% slug items_panelbar %}#toc-titles)).\n */\n this.title = 'Untitled';\n /**\n * Allows the component to set the `\"id\"` property to each item.\n * Used to set the `id` attributes of the nested elements and to enable the WAI-ARIA support.\n */\n this.id = `default-${nextId++}`;\n /**\n * Defines the icon that will be rendered next to the title ([see example]({% slug items_panelbar %}#toc-title-icons)).\n */\n this.icon = '';\n /**\n * Defines the icon that will be rendered next to the title by using a custom CSS class\n * ([see example]({% slug items_panelbar %}#toc-title-icons)).\n */\n this.iconClass = '';\n /**\n * Defines the location of the image that will be displayed next to the title\n * ([see example]({% slug items_panelbar %}#toc-title-images)).\n */\n this.imageUrl = '';\n /**\n * When set to `true`, disables a PanelBar item ([see example]({% slug items_panelbar %}#toc-disabled-state)).\n */\n this.disabled = false;\n /**\n * Sets the selected state of a PanelBar item ([see example]({% slug items_panelbar %}#toc-selected-state)).\n */\n this.selected = false;\n this.keepContent = false;\n this.hasChildItems = false;\n this.hasItems = false;\n this.hasContent = false;\n this.state = \"inactive\";\n this.role = \"treeitem\";\n this.titleAttribute = null; // tslint:disable-line\n this.focused = false;\n this.wrapperFocused = false;\n this.subscriptions = new Subscription(() => { });\n this._expanded = false;\n this.subscriptions.add(eventService.parent$.subscribe(focused => this.onWrapperFocusChange(focused)));\n this.subscriptions.add(eventService.keepContent$.subscribe(keepContent => this.keepContent = keepContent));\n this.wrapperFocused = parent ? parent.focused : false;\n }\n /**\n * When set to `true`, expands the PanelBar item ([see example]({% slug items_panelbar %}#toc-expanded-state)).\n */\n set expanded(value) {\n const activeState = this.animate ? \"active\" : \"activeWithoutAnimation\";\n this.state = value ? activeState : \"inactive\";\n if (!this.keepContent) {\n this.toggleExpandedChildAnimations(value);\n }\n this._expanded = value;\n }\n get expanded() {\n return this._expanded;\n }\n get animate() {\n return this.eventService.animate;\n }\n get kItemClass() {\n return true;\n }\n get kStateDefaultClass() {\n return !this.disabled;\n }\n get kStateDisabledClass() {\n return this.disabled;\n }\n get kStateExpandedClass() {\n return !this.disabled && this.expanded && (this.hasChildItems || this.hasContent);\n }\n get itemId() {\n return 'k-panelbar-' + this.eventService.pbId + '-item-' + this.id;\n }\n get ariaExpanded() {\n return (this.hasChildItems || this.hasContent) ? !this.disabled && this.expanded : null;\n }\n get ariaSelected() {\n return !this.disabled && this.selected;\n }\n get ariaDisabled() {\n return this.disabled ? true : null;\n }\n /**\n * @hidden\n */\n get titleTemplate() {\n return this.titleTemplates.length > 0 ? this.titleTemplates.toArray()[0].templateRef : undefined;\n }\n /**\n * @hidden\n */\n headerHeight() {\n return this.element.nativeElement.offsetHeight - (this.contentWrapper ? this.contentWrapper.nativeElement.offsetHeight : 0);\n }\n /**\n * @hidden\n */\n ngAfterContentChecked() {\n this.hasItems = this.items && this.items.filter(item => !item.hidden).length > 0;\n this.hasChildItems = this.contentItems.filter(item => item !== this).length > 0 || this.hasItems;\n this.hasContent = (this.contentTemplate !== undefined && this.contentTemplate.length > 0) ||\n this.content !== undefined;\n this.validateConfiguration();\n }\n /**\n * @hidden\n */\n ngAfterViewChecked() {\n if (this.items) {\n this.childrenItems = this.viewChildItems.toArray();\n }\n else {\n this.childrenItems = this.contentItems.filter(item => item !== this);\n }\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n /**\n * @hidden\n */\n onItemAction() {\n if (!this.disabled) {\n this.eventService.onSelect(this);\n }\n }\n /**\n * @hidden\n */\n onItemClick(e) {\n if (!isFocusable(e.target)) {\n this.onItemAction();\n }\n }\n /**\n * @hidden\n */\n get iconClasses() {\n let icon = this.icon ? 'k-i-' + this.icon : null;\n return {\n [icon || this.iconClass]: true\n };\n }\n /**\n * @hidden\n */\n serialize() {\n return {\n content: this.content,\n disabled: this.disabled,\n expanded: this.expanded,\n focused: this.focused,\n icon: this.icon,\n iconClass: this.iconClass,\n id: this.id,\n imageUrl: this.imageUrl,\n selected: this.selected,\n title: this.title\n };\n }\n /**\n * @hidden\n */\n subTreeViewItems() {\n let subTree = [];\n this.viewChildItems.forEach(item => {\n subTree = subTree.concat(item.subTreeViewItems());\n subTree.push(item);\n });\n return subTree;\n }\n /**\n * @hidden\n */\n validateConfiguration() {\n if (isDevMode()) {\n if (this.content && (this.contentTemplate !== undefined && this.contentTemplate.length > 0)) {\n throw new Error(\"Invalid configuration: mixed template components and component property.\");\n }\n }\n }\n /**\n * @hidden\n */\n toggleAnimationState(value) {\n if (!this.animate) {\n return;\n }\n this.state = value && this.eventService.expandMode !== PanelBarExpandMode.Single ? 'active' : 'activeWithoutAnimation';\n }\n /**\n * @hidden\n */\n toggleExpandedChildAnimations(value) {\n if (this.childrenItems) {\n this.childrenItems.forEach(child => {\n if (child.expanded) {\n child.toggleAnimationState(value);\n child.toggleExpandedChildAnimations(value);\n }\n });\n }\n }\n onWrapperFocusChange(focused) {\n this.wrapperFocused = focused;\n }\n}\nPanelBarItemComponent.decorators = [\n { type: Component, args: [{\n animations: [\n trigger('toggle', [\n state('inactive', style({ display: 'none' })),\n transition('* => active', [\n style({ overflow: 'hidden', display: 'block', height: 0 }),\n animate(200, style({ height: AUTO_STYLE }))\n ]),\n transition('active => *', [\n style({ overflow: 'hidden', height: AUTO_STYLE }),\n animate(200, style({ height: 0, display: 'none' }))\n ])\n ])\n ],\n exportAs: 'kendoPanelbarItem',\n selector: \"kendo-panelbar-item\",\n template: `\n \n \n \n {{title}}\n \n \n \n \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n \n \n
    \n \n \n
    \n {{content}}\n \n `\n },] },\n];\n/** @nocollapse */\nPanelBarItemComponent.ctorParameters = () => [\n { type: PanelBarItemComponent, decorators: [{ type: SkipSelf }, { type: Host }, { type: Optional }] },\n { type: PanelBarService },\n { type: ElementRef }\n];\nPanelBarItemComponent.propDecorators = {\n title: [{ type: Input }],\n id: [{ type: Input }],\n icon: [{ type: Input }],\n iconClass: [{ type: Input }],\n imageUrl: [{ type: Input }],\n disabled: [{ type: Input }],\n expanded: [{ type: Input }],\n selected: [{ type: Input }],\n content: [{ type: Input }],\n items: [{ type: Input }],\n template: [{ type: Input }],\n header: [{ type: ViewChild, args: ['header', {},] }],\n contentWrapper: [{ type: ViewChild, args: ['contentWrapper', {},] }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n titleAttribute: [{ type: HostBinding, args: ['attr.title',] }],\n kItemClass: [{ type: HostBinding, args: ['class.k-item',] }],\n kStateDefaultClass: [{ type: HostBinding, args: ['class.k-state-default',] }],\n kStateDisabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }],\n kStateExpandedClass: [{ type: HostBinding, args: ['class.k-state-expanded',] }],\n itemId: [{ type: HostBinding, args: ['id',] }],\n ariaExpanded: [{ type: HostBinding, args: ['attr.aria-expanded',] }],\n ariaSelected: [{ type: HostBinding, args: ['attr.aria-selected',] }],\n ariaDisabled: [{ type: HostBinding, args: ['attr.aria-disabled',] }],\n viewChildItems: [{ type: ViewChildren, args: [PanelBarItemComponent,] }],\n contentItems: [{ type: ContentChildren, args: [PanelBarItemComponent,] }],\n contentTemplate: [{ type: ContentChildren, args: [PanelBarContentDirective, { descendants: false },] }],\n titleTemplates: [{ type: ContentChildren, args: [PanelBarItemTitleDirective, { descendants: false },] }]\n};\n\n/**\n * Represents the template directive of the PanelBar which helps to customize the item content.\n */\nclass PanelBarItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nPanelBarItemTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoPanelBarItemTemplate]'\n },] },\n];\n/** @nocollapse */\nPanelBarItemTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\nlet nextId$1 = 0;\nconst parsePanelBarItems = (data) => {\n return data.map((item) => {\n if (!item.id) {\n item.id = `default-${nextId$1++}`;\n }\n if (item.children) {\n item.children = parsePanelBarItems(item.children);\n }\n return item;\n });\n};\nvar util = {\n parsePanelBarItems\n};\n\n/**\n * Represents the [Kendo UI PanelBar component for Angular]({% slug overview_panelbar %}).\n */\n// TODO: add styles as input prop\nclass PanelBarComponent {\n constructor(elementRef, eventService, localization) {\n this.localization = localization;\n /**\n * Sets the expand mode of the PanelBar through the `PanelBarExpandMode` enum ([see example]({% slug expandmodes_panelbar %})).\n *\n * The available modes are:\n * - `\"single\"`—Expands only one item at a time. Expanding an item collapses the item that was previously expanded.\n * - `\"multiple\"`—The default mode of the PanelBar.\n * Expands more than one item at a time. Items can also be toggled.\n * - `\"full\"`—Expands only one item at a time.\n * The expanded area occupies the entire height of the PanelBar. Requires you to set the `height` property.\n */\n this.expandMode = PanelBarExpandMode.Default;\n /**\n * Allows the PanelBar to modify the selected state of the items.\n */\n this.selectable = true;\n /**\n * Sets the animate state of the PanelBar ([see example]({% slug animations_panelbar %})).\n */\n this.animate = true;\n /**\n * Sets the height of the component when the `\"full\"` expand mode is used.\n * This option is ignored in the `\"multiple\"` and `\"single\"` expand modes.\n */\n this.height = \"400px\";\n /**\n * Fires each time the user interacts with a PanelBar item\n * ([see example]({% slug routing_panelbar %}#toc-getting-the-selected-item)).\n * The event data contains all items that are modified.\n */\n this.stateChange = new EventEmitter();\n this.tabIndex = 0;\n this.role = \"tree\";\n this.activeDescendant = \"\";\n this.isViewInit = true;\n this.focused = false;\n this._keepItemContent = false;\n this.updateChildrenHeight = () => {\n let childrenHeight = 0;\n const panelbarHeight = this.elementRef.nativeElement.offsetHeight;\n const contentOverflow = this.expandMode === PanelBarExpandMode.Full ? 'auto' : 'visible';\n this.childrenItems.forEach(item => {\n childrenHeight += item.headerHeight();\n });\n this.childrenItems.forEach(item => {\n item.contentHeight = PanelBarExpandMode.Full === this.expandMode ? (panelbarHeight - childrenHeight) + \"px\" : 'auto';\n item.contentOverflow = contentOverflow;\n });\n };\n this.keyBindings = this.computedKeys;\n this.elementRef = elementRef;\n this.eventService = eventService;\n this.eventService.children$.subscribe(event => this.onItemAction(event));\n }\n /**\n * When set to `true`, the PanelBar renders the content of all items and they are persisted in the DOM\n * ([see example]({% slug templates_panelbar %}#toc-collections)).\n * By default, this option is set to `false`.\n */\n get keepItemContent() {\n return this._keepItemContent;\n }\n set keepItemContent(keepItemContent) {\n this._keepItemContent = keepItemContent;\n this.eventService.onKeepContent(keepItemContent);\n }\n /**\n * Sets the items of the PanelBar as an array of `PanelBarItemModel` instances\n * ([see example]({% slug items_panelbar %})).\n */\n set items(data) {\n if (data) {\n this._items = util.parsePanelBarItems(data);\n }\n }\n get items() {\n return this._items;\n }\n get hostHeight() {\n return this.expandMode === PanelBarExpandMode.Full ? this.height : 'auto';\n }\n get overflow() {\n return this.expandMode === PanelBarExpandMode.Full ? \"hidden\" : \"visible\";\n }\n get dir() {\n return this.localization.rtl ? 'rtl' : 'ltr';\n }\n /**\n * @hidden\n */\n invertKeys(original, inverted) {\n return this.localization.rtl ? inverted : original;\n }\n get computedKeys() {\n return {\n [Keys.Space]: () => this.selectFocusedItem(),\n [Keys.Enter]: () => this.selectFocusedItem(),\n [Keys.ArrowUp]: () => this.focusPreviousItem(),\n [this.invertKeys(Keys.ArrowLeft, Keys.ArrowRight)]: () => this.collapseItem(),\n [Keys.ArrowDown]: () => this.focusNextItem(),\n [this.invertKeys(Keys.ArrowRight, Keys.ArrowLeft)]: () => this.expandItem(),\n [Keys.End]: () => this.focusLastItem(),\n [Keys.Home]: () => this.focusFirstItem()\n };\n }\n ngOnDestroy() {\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n }\n ngOnInit() {\n this.localizationChangeSubscription = this.localization\n .changes.subscribe(() => this.keyBindings = this.computedKeys);\n this.eventService.animate = this.animate;\n this.eventService.expandMode = this.expandMode;\n }\n ngAfterViewChecked() {\n if (this.items) {\n this.childrenItems = this.viewChildItems.toArray();\n this.allItems = this.viewItems;\n }\n else {\n this.childrenItems = this.contentChildItems.toArray();\n this.allItems = this.contentItems.toArray();\n }\n if (this.isViewInit && this.childrenItems.length) {\n this.isViewInit = false;\n setTimeout(() => this.updateChildrenHeight());\n }\n this.validateConfiguration();\n }\n ngOnChanges(changes) {\n if (changes['height'] || changes['expandMode'] || changes[\"items\"]) { // tslint:disable-line\n if (this.childrenItems) {\n setTimeout(this.updateChildrenHeight);\n }\n }\n if (changes.animate) {\n this.eventService.animate = this.animate;\n }\n if (changes.expandMode) {\n this.eventService.expandMode = this.expandMode;\n }\n }\n get templateRef() {\n return this.template ? this.template.templateRef : undefined;\n }\n /**\n * @hidden\n */\n onComponentClick(event) {\n const itemClicked = this.visibleItems().some((item) => {\n return item.header.nativeElement.contains(event.target);\n });\n if (!this.focused && itemClicked) {\n this.elementRef.nativeElement.focus();\n }\n }\n /**\n * @hidden\n */\n onComponentFocus() {\n this.eventService.onFocus();\n this.focused = true;\n if (this.allItems.length > 0) {\n const visibleItems = this.visibleItems();\n const focusedItems = visibleItems.filter(item => item.focused);\n if (!focusedItems.length && visibleItems.length > 0) {\n visibleItems[0].focused = true;\n this.activeDescendant = visibleItems[0].itemId;\n }\n }\n }\n /**\n * @hidden\n */\n onComponentBlur() {\n this.eventService.onBlur();\n this.focused = false;\n this.activeDescendant = \"\";\n }\n /**\n * @hidden\n */\n onComponentKeyDown(event) {\n if (event.target === this.elementRef.nativeElement) {\n if (event.keyCode === Keys.Space || event.keyCode === Keys.ArrowUp || event.keyCode === Keys.ArrowDown ||\n event.keyCode === Keys.ArrowLeft || event.keyCode === Keys.ArrowRight || event.keyCode === Keys.Home ||\n event.keyCode === Keys.End || event.keyCode === Keys.PageUp || event.keyCode === Keys.PageDown) {\n event.preventDefault();\n }\n const handler = this.keyBindings[event.keyCode];\n //TODO: check if next item is disabled and skip operation?\n if (handler) {\n handler();\n }\n }\n }\n get viewItems() {\n let treeItems = [];\n this.viewChildItems.toArray().forEach(item => {\n treeItems.push(item);\n treeItems = treeItems.concat(item.subTreeViewItems());\n });\n return treeItems;\n }\n validateConfiguration() {\n if (isDevMode()) {\n if (this.items && (this.contentItems && this.contentItems.length > 0)) {\n throw new Error(\"Invalid configuration: mixed template components and items property.\");\n }\n }\n }\n onItemAction(item) {\n if (!item) {\n return;\n }\n let modifiedItems = new Array();\n this.allItems\n .forEach((currentItem) => {\n let selectedState = currentItem === item;\n let focusedState = selectedState;\n selectedState = this.selectable ? selectedState : currentItem.selected;\n if (currentItem.selected !== selectedState || currentItem.focused !== focusedState) {\n currentItem.selected = selectedState;\n currentItem.focused = focusedState;\n this.activeDescendant = focusedState ? currentItem.itemId : \"\";\n modifiedItems.push(currentItem);\n }\n });\n if (this.expandMode === PanelBarExpandMode.Multiple) {\n if (item.hasChildItems || item.hasContent) {\n item.expanded = !item.expanded;\n }\n if (modifiedItems.indexOf(item) < 0) {\n modifiedItems.push(item);\n }\n }\n else {\n let siblings = item.parent ? item.parent.childrenItems : this.childrenItems;\n if (item.hasChildItems || item.hasContent) {\n siblings\n .forEach((currentItem) => {\n let expandedState = currentItem === item;\n if (currentItem.expanded !== expandedState) {\n currentItem.expanded = expandedState;\n if (modifiedItems.indexOf(currentItem) < 0) {\n modifiedItems.push(currentItem);\n }\n }\n });\n }\n }\n if (modifiedItems.length > 0) {\n this.stateChange.emit(modifiedItems.map(currentItem => currentItem.serialize()));\n }\n }\n get hostClasses() {\n return true;\n }\n isVisible(item) {\n const visibleItems = this.visibleItems();\n return visibleItems.some(i => i === item);\n }\n getVisibleParent(item) {\n const visibleItems = this.visibleItems();\n if (!item.parent) {\n return item;\n }\n return visibleItems.some(i => i === item.parent) ? item.parent : this.getVisibleParent(item.parent);\n }\n focusItem(action) {\n const visibleItems = this.visibleItems();\n let currentIndex = visibleItems.findIndex(item => item.focused);\n let currentItem = visibleItems[currentIndex];\n let nextItem;\n if (currentIndex === -1) {\n let focusedItem = this.allItems.find(item => item.focused);\n focusedItem.focused = false;\n currentItem = this.getVisibleParent(focusedItem);\n currentIndex = visibleItems.findIndex(item => item === currentItem);\n }\n switch (action) {\n case \"lastItem\":\n nextItem = visibleItems[visibleItems.length - 1];\n break;\n case \"firstItem\":\n nextItem = visibleItems[0];\n break;\n case \"nextItem\":\n nextItem = visibleItems[currentIndex < visibleItems.length - 1 ? currentIndex + 1 : 0];\n break;\n case \"previousItem\":\n nextItem = visibleItems[currentIndex > 0 ? currentIndex - 1 : visibleItems.length - 1];\n break;\n default:\n }\n if (currentItem && nextItem && currentItem !== nextItem) {\n this.moveFocus(currentItem, nextItem);\n }\n }\n moveFocus(from, to) {\n from.focused = false;\n to.focused = true;\n this.activeDescendant = to.itemId;\n const modifiedItems = new Array(from.serialize(), to.serialize());\n this.stateChange.emit(modifiedItems);\n }\n focusLastItem() {\n this.focusItem(\"lastItem\");\n }\n focusFirstItem() {\n this.focusItem(\"firstItem\");\n }\n focusNextItem() {\n this.focusItem(\"nextItem\");\n }\n focusPreviousItem() {\n this.focusItem(\"previousItem\");\n }\n expandItem() {\n let currentItem = this.allItems.filter(item => item.focused)[0];\n if (!this.isVisible(currentItem)) {\n currentItem.focused = false;\n currentItem = this.getVisibleParent(currentItem);\n }\n if (currentItem.hasChildItems || currentItem.hasContent) {\n if (!currentItem.expanded) {\n this.onItemAction(currentItem);\n }\n else if (currentItem.hasChildItems) {\n const firstChildIndex = currentItem.childrenItems.findIndex(item => !item.disabled);\n if (firstChildIndex > -1) {\n this.moveFocus(currentItem, currentItem.childrenItems[firstChildIndex]);\n }\n }\n }\n }\n collapseItem() {\n const currentItem = this.allItems.filter(item => item.focused)[0];\n if (currentItem.expanded) {\n this.onItemAction(currentItem);\n }\n else if (currentItem.parent) {\n this.moveFocus(currentItem, currentItem.parent);\n }\n }\n selectFocusedItem() {\n let focusedItem = this.allItems.filter(item => item.focused)[0];\n if (!this.isVisible(focusedItem)) {\n focusedItem.focused = false;\n focusedItem = this.getVisibleParent(focusedItem);\n }\n if (focusedItem) {\n focusedItem.onItemAction();\n }\n }\n visibleItems() {\n return this.flatVisibleItems(this.childrenItems);\n }\n flatVisibleItems(listOfItems = new Array(), flattedItems = new Array()) {\n listOfItems.forEach(item => {\n if (!item.disabled) {\n flattedItems.push(item);\n if (item.expanded && item.hasChildItems) {\n this.flatVisibleItems(item.childrenItems, flattedItems);\n }\n }\n });\n return flattedItems;\n }\n}\nPanelBarComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoPanelbar',\n providers: [\n PanelBarService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.panelbar'\n }\n ],\n selector: 'kendo-panelbar',\n template: `\n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nPanelBarComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: PanelBarService },\n { type: LocalizationService }\n];\nPanelBarComponent.propDecorators = {\n expandMode: [{ type: Input }],\n selectable: [{ type: Input }],\n animate: [{ type: Input }],\n height: [{ type: Input }],\n keepItemContent: [{ type: Input }],\n items: [{ type: Input }],\n stateChange: [{ type: Output }],\n tabIndex: [{ type: HostBinding, args: ['attr.tabIndex',] }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n activeDescendant: [{ type: HostBinding, args: ['attr.aria-activedescendant',] }],\n hostHeight: [{ type: HostBinding, args: ['style.height',] }],\n overflow: [{ type: HostBinding, args: ['style.overflow',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n template: [{ type: ContentChild, args: [PanelBarItemTemplateDirective,] }],\n contentItems: [{ type: ContentChildren, args: [PanelBarItemComponent, { descendants: true },] }],\n contentChildItems: [{ type: ContentChildren, args: [PanelBarItemComponent,] }],\n viewChildItems: [{ type: ViewChildren, args: [PanelBarItemComponent,] }],\n onComponentClick: [{ type: HostListener, args: ['click', ['$event'],] }],\n onComponentFocus: [{ type: HostListener, args: ['focus',] }],\n onComponentBlur: [{ type: HostListener, args: ['blur',] }],\n onComponentKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-panelbar',] }]\n};\n\n/**\n * Represents the pane component of the Splitter.\n */\nclass SplitterPaneComponent {\n constructor(element, renderer, cdr) {\n this.element = element;\n this.renderer = renderer;\n this.cdr = cdr;\n /**\n * Specifies if the user is allowed to resize the pane and provide space for other panes.\n */\n this.resizable = true;\n /**\n * Specifies if the user is allowed to hide the pane and provide space for other panes.\n */\n this.collapsible = false;\n /**\n * Specifies if overflowing content is scrollable or hidden.\n */\n this.scrollable = true;\n /**\n * Specifies if the pane is initially collapsed.\n */\n this.collapsed = false;\n /**\n * @hidden\n */\n this.orientation = 'horizontal';\n /**\n * @hidden\n */\n this.containsSplitter = false;\n /**\n * @hidden\n */\n this.overlayContent = false;\n /**\n * Fires each time the user resizes the Splitter pane.\n * The event data contains the new pane size.\n * Allows a two-way binding of the pane `size` property.\n */\n this.sizeChange = new EventEmitter();\n /**\n * Fires each time the `collapsed` property changes.\n * The event data contains the new property state.\n * Allows a two-way binding of the `collapsed` pane property.\n */\n this.collapsedChange = new EventEmitter();\n this.hostClass = true;\n /**\n * @hidden\n */\n this.forceExpand = false;\n }\n /**\n * @hidden\n */\n set order(paneOrder) {\n this._order = paneOrder;\n this.setOrderStyles();\n }\n get order() {\n return this._order;\n }\n /**\n * Sets the initial size of the pane.\n * Has to be between the `min` and `max` properties.\n */\n set size(newSize) {\n this._size = newSize;\n const element = this.element.nativeElement;\n this.renderer.setStyle(element, '-ms-flex-preferred-size', newSize);\n this.renderer.setStyle(element, 'flex-basis', newSize);\n if (this.staticPaneClass) {\n this.renderer.addClass(element, 'k-pane-static');\n }\n else {\n this.renderer.removeClass(element, 'k-pane-static');\n }\n }\n get size() {\n return this._size;\n }\n get isHidden() {\n return this.collapsed;\n }\n get styleDisplayFlex() {\n return this.containsSplitter;\n }\n get staticPaneClass() {\n if (this.forceExpand) {\n return false;\n }\n return !this.resizable && !this.collapsible || this.fixedSize;\n }\n get scrollablePaneClass() {\n return this.scrollable;\n }\n get fixedSize() {\n return this.size && this.size.length > 0;\n }\n ngAfterViewChecked() {\n const element = this.element.nativeElement;\n if (this.isHidden) {\n this.renderer.addClass(element, 'k-state-hidden');\n this.renderer.addClass(element, 'hidden');\n }\n else {\n this.renderer.removeClass(element, 'k-state-hidden');\n this.renderer.removeClass(element, 'hidden');\n }\n }\n /**\n * @hidden\n */\n get computedSize() {\n if (this.orientation === 'vertical') {\n return this.element.nativeElement.offsetHeight;\n }\n else {\n return this.element.nativeElement.offsetWidth;\n }\n }\n /**\n * @hidden\n */\n toggleOverlay(show) {\n this.overlayContent = show;\n this.cdr.detectChanges();\n }\n /**\n * @hidden\n */\n detectChanges() {\n this.cdr.detectChanges();\n }\n /**\n * @hidden\n */\n setOrderStyles() {\n const element = this.element.nativeElement;\n this.renderer.setStyle(element, '-ms-flex-order', this.order);\n this.renderer.setStyle(element, 'order', this.order);\n }\n}\nSplitterPaneComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoSplitterPane',\n selector: 'kendo-splitter-pane',\n template: `\n \n
    \n `\n },] },\n];\n/** @nocollapse */\nSplitterPaneComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: ChangeDetectorRef }\n];\nSplitterPaneComponent.propDecorators = {\n order: [{ type: Input }],\n size: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n resizable: [{ type: Input }],\n collapsible: [{ type: Input }],\n scrollable: [{ type: Input }],\n collapsed: [{ type: Input }],\n orientation: [{ type: Input }],\n containsSplitter: [{ type: Input }],\n overlayContent: [{ type: Input }],\n sizeChange: [{ type: Output }],\n collapsedChange: [{ type: Output }],\n styleDisplayFlex: [{ type: HostBinding, args: ['class.k-pane-flex',] }],\n hostClass: [{ type: HostBinding, args: ['class.k-pane',] }],\n staticPaneClass: [{ type: HostBinding, args: ['class.k-pane-static',] }],\n scrollablePaneClass: [{ type: HostBinding, args: ['class.k-scrollable',] }]\n};\n\nconst SIZING_DOC_LINK = 'https://www.telerik.com/kendo-angular-ui/components/layout/splitter/panes/#toc-size';\n/**\n * @hidden\n */\nclass SplitterService {\n constructor(zone) {\n this.zone = zone;\n this.layoutChange = new EventEmitter();\n this.containerSize = () => { };\n }\n tryToggle(paneIndex) {\n const pane = this.pane(paneIndex);\n if (pane.collapsible) {\n pane.collapsed = !pane.collapsed;\n pane.collapsedChange.emit(pane.collapsed);\n this.emit(this.layoutChange, {});\n if (pane.collapsed) {\n pane.detectChanges();\n }\n }\n const notCollapsed = this.panes.filter(p => !p.collapsed);\n const allHaveFixedSize = notCollapsed.every(p => p.fixedSize);\n notCollapsed[notCollapsed.length - 1].forceExpand = allHaveFixedSize ? true : false;\n return pane.collapsible;\n }\n toggleContentOverlay(index, show) {\n this.pane(index).toggleOverlay(show);\n this.pane(index + 1).toggleOverlay(show);\n }\n dragState(splitbarIndex) {\n let prev = this.pane(splitbarIndex);\n let next = this.pane(splitbarIndex + 1);\n const total = prev.computedSize + next.computedSize;\n const px = s => this.toPixels(s);\n return {\n prev: {\n index: splitbarIndex,\n initialSize: prev.computedSize,\n min: px(prev.min) || total - px(next.max) || 0,\n max: px(prev.max) || total - px(next.min) || total\n },\n next: {\n index: splitbarIndex + 1,\n initialSize: next.computedSize,\n min: px(next.min) || total - px(prev.max) || 0,\n max: px(next.max) || total - px(prev.min) || total\n }\n };\n }\n setSize(state$$1, delta) {\n const clamp = (min, max, v) => Math.min(max, Math.max(min, v));\n const resize = (paneState, change) => {\n const pane = this.pane(paneState.index);\n const splitterSize = this.containerSize();\n const newSize = clamp(paneState.min, paneState.max, paneState.initialSize + change);\n let size = \"\";\n if (this.isPercent(pane.size)) {\n size = (100 * newSize / splitterSize) + \"%\";\n }\n else {\n size = newSize + \"px\";\n }\n pane.size = size;\n this.emit(pane.sizeChange, size);\n };\n const prev = this.pane(state$$1.prev.index);\n const next = this.pane(state$$1.next.index);\n // determine which pane to resize\n if (prev.fixedSize && next.fixedSize) {\n // resizing both panes\n resize(state$$1.prev, delta);\n resize(state$$1.next, -delta);\n }\n else if (next.collapsible || next.fixedSize) {\n // resizing next\n resize(state$$1.next, -delta);\n }\n else {\n // resizing prev\n resize(state$$1.prev, delta);\n }\n this.emit(this.layoutChange, {});\n }\n isDraggable(splitBarIndex) {\n const prev = this.pane(splitBarIndex);\n const next = this.pane(splitBarIndex + 1);\n const betweenResizablePanes = prev.resizable && next.resizable;\n const nearCollapsedPane = prev.collapsed || next.collapsed;\n return betweenResizablePanes && !nearCollapsedPane;\n }\n isStatic(splitBarIndex) {\n const prev = this.pane(splitBarIndex);\n const next = this.pane(splitBarIndex + 1);\n const betweenResizablePanes = prev.resizable && next.resizable;\n const nearCollapsiblePane = prev.collapsible || next.collapsible;\n return !betweenResizablePanes && !nearCollapsiblePane;\n }\n pane(index) {\n if (!this.panes) {\n throw new Error(\"Panes not initialized\");\n }\n if (index < 0 || index >= this.panes.length) {\n throw new Error(\"Index out of range\");\n }\n return this.panes[index];\n }\n configure({ panes, orientation, containerSize }) {\n this.panes = panes;\n this.panes.forEach((pane, index) => {\n pane.order = index * 2;\n pane.orientation = orientation;\n });\n if (isDevMode()) {\n const allFixed = panes.length && !panes.some(pane => !pane.fixedSize);\n if (allFixed) {\n throw new Error(`\n The Splitter should have at least one pane without a set size.\n See ${SIZING_DOC_LINK} for more information.\n `);\n }\n }\n this.containerSize = containerSize;\n }\n isPercent(size) {\n return /%$/.test(size);\n }\n toPixels(size) {\n let result = parseFloat(size);\n if (this.isPercent(size)) {\n result = (this.containerSize() * result / 100);\n }\n return result;\n }\n emit(emitter, args) {\n if (emitter.observers.length) {\n this.zone.run(() => emitter.emit(args));\n }\n }\n}\nSplitterService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nSplitterService.ctorParameters = () => [\n { type: NgZone }\n];\n\n/**\n * Represents the [Kendo UI Splitter component for Angular]({% slug overview_splitter %}).\n *\n * ```ts-preview\n *\n * @Component({\n * selector: 'my-app',\n * template: `\n * \n *\n * \n *

    Inner splitter / left pane

    \n *

    Resizable and collapsible.

    \n *
    \n *\n * \n *

    Inner splitter / center pane

    \n *

    Resizable only.

    \n *
    \n *\n * \n *

    Inner splitter / right pane

    \n *

    Resizable and collapsible.

    \n *
    \n *\n *
    \n * `,\n * styles: [ `\n * h3 { font-size: 1.2em; }\n * h3, p { margin: 10px; padding: 0; }\n * ` ]\n * })\n * class AppComponent {}\n * ```\n */\nclass SplitterComponent {\n constructor(element, splitterService, localization, enclosingPane) {\n this.element = element;\n this.splitterService = splitterService;\n this.localization = localization;\n /**\n * Specifies the orientation of the panes within the Splitter.\n * Panes in a horizontal Splitter are placed horizontally.\n * Panes in a vertical Splitter are placed vertically.\n */\n this.orientation = 'horizontal';\n this.ariaRole = 'splitter';\n if (enclosingPane) {\n enclosingPane.containsSplitter = true;\n }\n // the handler only runs in NgZone if there are bound handlers\n // this line merges both streams\n this.layoutChange = this.splitterService.layoutChange;\n this.configure = this.configure.bind(this);\n }\n get hostClasses() {\n return true;\n }\n get horizontalHostClasses() {\n return this.orientation === 'horizontal';\n }\n get verticalHostClasses() {\n return this.orientation === 'vertical';\n }\n get dir() {\n return this.direction;\n }\n ngAfterContentInit() {\n this.reconfigure();\n }\n ngOnChanges(changes) {\n if (changes.orientation && !changes.orientation.isFirstChange()) {\n this.reconfigure();\n }\n }\n ngOnDestroy() {\n this.unsubscribeChanges();\n }\n reconfigure() {\n this.unsubscribeChanges();\n this.configure();\n this.paneChangesSubscription = this.panes.changes.subscribe(this.configure);\n }\n unsubscribeChanges() {\n if (this.paneChangesSubscription) {\n this.paneChangesSubscription.unsubscribe();\n this.paneChangesSubscription = null;\n }\n }\n configure() {\n this.splitterService.configure({\n panes: this.panes.toArray(),\n orientation: this.orientation,\n containerSize: () => {\n if (this.orientation === 'vertical') {\n return this.element.nativeElement.clientHeight;\n }\n else {\n return this.element.nativeElement.clientWidth;\n }\n }\n });\n }\n get direction() {\n return this.localization.rtl ? 'rtl' : 'ltr';\n }\n}\nSplitterComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoSplitter',\n selector: 'kendo-splitter',\n providers: [\n SplitterService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.spliter'\n }\n ],\n template: `\n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nSplitterComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: SplitterService },\n { type: LocalizationService },\n { type: SplitterPaneComponent, decorators: [{ type: Optional }, { type: Host }, { type: Inject, args: [SplitterPaneComponent,] }] }\n];\nSplitterComponent.propDecorators = {\n orientation: [{ type: Input }],\n layoutChange: [{ type: Output }],\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-splitter',] }, { type: HostBinding, args: ['class.k-splitter-flex',] }],\n horizontalHostClasses: [{ type: HostBinding, args: ['class.k-splitter-horizontal',] }],\n verticalHostClasses: [{ type: HostBinding, args: ['class.k-splitter-vertical',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n ariaRole: [{ type: HostBinding, args: ['attr.role',] }],\n panes: [{ type: ContentChildren, args: [SplitterPaneComponent,] }]\n};\n\n/**\n * Represents the content template of the Kendo UI TabStrip.\n * To define the template, nest a `` tag with the `kendoTabContent` inside the component tag.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n *

    Content 1

    \n *
    \n *
    \n *\n * \n * \n *

    Content 2

    \n *
    \n *
    \n *
    \n * `\n * })\n *\n * class AppComponent {}\n *\n * ```\n */\nclass TabContentDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nTabContentDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoTabContent]'\n },] },\n];\n/** @nocollapse */\nTabContentDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Represents the title template of the Kendo UI TabStrip.\n * To define the template, nest a `` tag with the `kendoTabTitle` directive inside the component tag.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * Title\n * \n * \n *

    Content 1

    \n *
    \n *
    \n *\n * \n * \n *

    Content 2

    \n *
    \n *
    \n *
    \n * `\n * })\n *\n * class AppComponent {}\n *\n * ```\n */\nclass TabTitleDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nTabTitleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoTabTitle]'\n },] },\n];\n/** @nocollapse */\nTabTitleDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Represents the tab component of the TabStrip.\n */\nclass TabStripTabComponent {\n constructor() {\n this.active = false;\n this._tabContent = new QueryList();\n }\n get tabContent() {\n return this._tabContent.first;\n }\n ngAfterContentInit() {\n this.active = this.selected;\n }\n ngOnChanges(changes) {\n if (changes['selected'] && !changes['selected'].isFirstChange()) { // tslint:disable-line\n this.active = this.selected;\n }\n }\n}\nTabStripTabComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoTabStripTab',\n selector: 'kendo-tabstrip-tab',\n template: ``\n },] },\n];\nTabStripTabComponent.propDecorators = {\n title: [{ type: Input }],\n disabled: [{ type: Input }],\n cssClass: [{ type: Input }],\n selected: [{ type: Input }],\n _tabContent: [{ type: ContentChildren, args: [TabContentDirective,] }],\n tabTitle: [{ type: ContentChild, args: [TabTitleDirective,] }]\n};\n\n/**\n * @hidden\n */\nclass PreventableEvent {\n /**\n * @hidden\n */\n constructor(args) {\n this.prevented = false;\n Object.assign(this, args);\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses\n * the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * Returns `true` if the event was prevented\n * by any of its subscribers.\n *\n * @returns `true` if the default action was prevented.\n * Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * Arguments for the `select` event of the TabStrip.\n * The `select` event fires when a tab is selected (clicked).\n */\nclass SelectEvent extends PreventableEvent {\n /**\n * Constructs the event arguments for the `select` event.\n * @param index - The index of the selected tab.\n * @param title - The title of the selected tab.\n */\n constructor(index, title) {\n super();\n this.index = index;\n this.title = title;\n }\n}\n\n/**\n * Represents the [Kendo UI TabStrip component for Angular]({% slug overview_tabstrip %}).\n */\nclass TabStripComponent {\n constructor(localization, renderer, wrapper) {\n this.localization = localization;\n this.renderer = renderer;\n this.wrapper = wrapper;\n /**\n * Enables the tab animation.\n */\n this.animate = true;\n /**\n * Sets the position of the tabs. Defaults to `top`.\n */\n this.tabPosition = 'top';\n /**\n * When set to `true`, the component renders all tabs and they are persisted in the DOM.\n * By default, `keepTabContent` is `false`.\n */\n this.keepTabContent = false;\n /**\n * Fires each time the user selects a tab ([see example]({% slug overview_tabstrip %}#toc-basic-usage)).\n * The event data contains the index of the selected tab and its title.\n */\n this.tabSelect = new EventEmitter();\n this.hostClasses = true;\n /**\n * @hidden\n */\n this._animate = false;\n this.keyBindings = this.computedKeys;\n }\n /**\n * Sets the height of the TabStrip.\n */\n set height(value) {\n this._height = value;\n this.renderer.setStyle(this.wrapper.nativeElement, 'height', value);\n }\n get height() {\n return this._height;\n }\n get tabsAtTop() {\n return this.tabPosition === 'top';\n }\n get tabsAtRight() {\n return this.tabPosition === 'right';\n }\n get tabsAtBottom() {\n return this.tabPosition === 'bottom';\n }\n get tabsAtLeft() {\n return this.tabPosition === 'left';\n }\n get dir() {\n return this.localization.rtl ? 'rtl' : 'ltr';\n }\n /**\n * @hidden\n */\n contentClass(active) {\n const visible = !this.keepTabContent || active;\n return visible ? 'k-content k-state-active' : 'k-content';\n }\n get computedKeys() {\n return {\n [this.invertKeys(Keys.ArrowLeft, Keys.ArrowRight)]: (selectedIndex) => this.prevNavigatableIndex(selectedIndex),\n [this.invertKeys(Keys.ArrowRight, Keys.ArrowLeft)]: (selectedIndex) => this.nextNavigatableIndex(selectedIndex),\n [this.invertKeys(Keys.ArrowDown, Keys.ArrowUp)]: (selectedIndex) => this.nextNavigatableIndex(selectedIndex),\n [this.invertKeys(Keys.ArrowUp, Keys.ArrowDown)]: (selectedIndex) => this.prevNavigatableIndex(selectedIndex),\n [Keys.Home]: () => this.firstNavigatableIndex(),\n [Keys.End]: () => this.lastNavigatableIndex()\n };\n }\n /**\n * @hidden\n */\n get tabsAlignment() {\n return {\n start: 'flex-start',\n end: 'flex-end',\n center: 'center',\n justify: 'space-between'\n }[this.tabAlignment];\n }\n /**\n * @hidden\n */\n invertKeys(original, inverted) {\n return this.localization.rtl ? inverted : original;\n }\n /**\n * @hidden\n */\n onKeyDown(event) {\n if (event.currentTarget !== this.tablist.nativeElement) {\n return;\n }\n const isHorizontal = this.tabPosition === 'top' || this.tabPosition === 'bottom';\n const isArrowUp = event.keyCode === Keys.ArrowUp;\n const isArrowDown = event.keyCode === Keys.ArrowDown;\n const isArrowLeft = event.keyCode === Keys.ArrowLeft;\n const isArrowRight = event.keyCode === Keys.ArrowRight;\n if (isHorizontal && (isArrowUp || isArrowDown)) {\n return;\n }\n if (!isHorizontal && (isArrowLeft || isArrowRight)) {\n return;\n }\n if (event.keyCode === Keys.Space || isArrowUp || isArrowDown || isArrowLeft || isArrowRight || event.keyCode === Keys.Home ||\n event.keyCode === Keys.End || event.keyCode === Keys.PageUp || event.keyCode === Keys.PageDown) {\n event.preventDefault();\n }\n const selectedIndex = this.tabs.toArray().findIndex(tab => tab.active && !tab.disabled);\n if (selectedIndex === -1) {\n this.selectTab(this.firstNavigatableIndex());\n }\n else {\n const getTabIndex = this.keyBindings[event.keyCode];\n if (getTabIndex) {\n const nextIndex = getTabIndex(selectedIndex);\n if (selectedIndex !== nextIndex) {\n this.selectTab(getTabIndex(selectedIndex));\n }\n }\n }\n }\n /**\n * @hidden\n */\n tabPanelId(id) {\n return 'k-tabstrip-tabpanel-' + id;\n }\n /**\n * @hidden\n */\n tabId(id) {\n return 'k-tabstrip-tab-' + id;\n }\n /**\n * Allows the user to select a tab programmatically.\n * @param {number} index - The index of the tab that will be selected.\n */\n selectTab(index) {\n const tab = this.tabs.toArray()[index];\n if (!tab || Boolean(tab.disabled)) {\n return;\n }\n this.tabHeadingContainers.toArray()[index].nativeElement.focus();\n this.emitEvent(tab, index);\n }\n /**\n * @hidden\n */\n onTabClick(originalEvent, tabIndex) {\n if (isFocusable(originalEvent.target)) {\n return;\n }\n this.selectTab(tabIndex);\n }\n ngOnInit() {\n this.localizationChangeSubscription = this.localization\n .changes.subscribe(() => this.keyBindings = this.computedKeys);\n }\n ngOnDestroy() {\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n }\n firstNavigatableIndex() {\n const tabs = this.tabs.toArray();\n for (let i = 0; i < tabs.length; i++) {\n if (!tabs[i].disabled) {\n return i;\n }\n }\n }\n lastNavigatableIndex() {\n const tabs = this.tabs.toArray();\n for (let i = tabs.length - 1; i > 0; i--) {\n if (!tabs[i].disabled) {\n return i;\n }\n }\n }\n prevNavigatableIndex(selectedIndex) {\n if (selectedIndex - 1 < 0) {\n return this.lastNavigatableIndex();\n }\n const tabs = this.tabs.toArray();\n for (let i = selectedIndex - 1; i > -1; i--) {\n if (!tabs[i].disabled) {\n return i;\n }\n if (i === 0) {\n return this.lastNavigatableIndex();\n }\n }\n return selectedIndex;\n }\n nextNavigatableIndex(selectedIndex) {\n if (selectedIndex + 1 >= this.tabs.length) {\n return this.firstNavigatableIndex();\n }\n const tabs = this.tabs.toArray();\n for (let i = selectedIndex + 1; i < tabs.length; i++) {\n if (!tabs[i].disabled) {\n return i;\n }\n if (i + 1 === tabs.length) {\n return this.firstNavigatableIndex();\n }\n }\n }\n emitEvent(tab, selectedIndex) {\n const selectArgs = new SelectEvent(selectedIndex, tab.title);\n this.tabSelect.emit(selectArgs);\n if (!selectArgs.isDefaultPrevented() && !tab.active) {\n this._animate = this.animate;\n this.deactivateAll();\n tab.active = true;\n }\n }\n deactivateAll() {\n this.tabs.forEach((tab) => {\n tab.active = false;\n });\n }\n}\nTabStripComponent.decorators = [\n { type: Component, args: [{\n animations: [\n trigger('state', [\n state('active', style({ opacity: 1 })),\n transition('* => active', [\n style({ opacity: 0 }),\n animate('400ms ease-in')\n ])\n ])\n ],\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.tabstrip'\n }\n ],\n exportAs: 'kendoTabStrip',\n selector: 'kendo-tabstrip',\n template: `\n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n
  • {{ tab.title }}
  • \n \n
    \n \n \n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nTabStripComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: Renderer2 },\n { type: ElementRef }\n];\nTabStripComponent.propDecorators = {\n height: [{ type: Input }],\n animate: [{ type: Input }],\n tabAlignment: [{ type: Input }],\n tabPosition: [{ type: Input }],\n keepTabContent: [{ type: Input }],\n tablist: [{ type: ViewChild, args: ['tablist',] }],\n tabSelect: [{ type: Output }],\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-tabstrip',] }, { type: HostBinding, args: ['class.k-floatwrap',] }, { type: HostBinding, args: ['class.k-header',] }],\n tabsAtTop: [{ type: HostBinding, args: ['class.k-tabstrip-top',] }],\n tabsAtRight: [{ type: HostBinding, args: ['class.k-tabstrip-right',] }],\n tabsAtBottom: [{ type: HostBinding, args: ['class.k-tabstrip-bottom',] }],\n tabsAtLeft: [{ type: HostBinding, args: ['class.k-tabstrip-left',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n tabs: [{ type: ContentChildren, args: [TabStripTabComponent,] }],\n tabHeadingContainers: [{ type: ViewChildren, args: ['tabHeadingContainer',] }]\n};\n\n/**\n * Represents a template that defines the content of the Drawer.\n * To define the template, nest an `` tag\n * with the `kendoDrawerTemplate` directive inside the `` tag.\n * Using this template directive will override all other templates,\n * for example, `kendoDrawerHeaderTemplate` and `kendoDrawerItemTemplate`.\n */\nclass DrawerTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nDrawerTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDrawerTemplate]'\n },] },\n];\n/** @nocollapse */\nDrawerTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents a template that defines the item content of the Drawer.\n * To define the template, nest an `` tag\n * with the `kendoDrawerItemTemplate` directive inside the `` tag.\n */\nclass DrawerItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nDrawerItemTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDrawerItemTemplate]'\n },] },\n];\n/** @nocollapse */\nDrawerItemTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents a template that defines the header content of the Drawer.\n * To define the template, nest an `` tag\n * with the `kendoDrawerHeaderTemplate` directive inside the `` tag.\n */\nclass DrawerHeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nDrawerHeaderTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDrawerHeaderTemplate]'\n },] },\n];\n/** @nocollapse */\nDrawerHeaderTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * Represents a template that defines the footer content of the Drawer.\n * To define the template, nest an `` tag\n * with the `kendoDrawerFooterTemplate` directive inside the `` tag.\n */\nclass DrawerFooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nDrawerFooterTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDrawerFooterTemplate]'\n },] },\n];\n/** @nocollapse */\nDrawerFooterTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\n/**\n * @hidden\n */\nfunction miniExpandPush(duration, width, miniWidth) {\n return [\n style({ overflow: 'hidden', flexBasis: `${miniWidth}px` }),\n animate(`${duration}ms ease-in`, style({ flexBasis: `${width}px` }))\n ];\n}\n/**\n * @hidden\n */\nfunction miniCollapsePush(duration, width, miniWidth) {\n return [\n style({ overflow: 'hidden', flexBasis: `${width}px` }),\n animate(`${duration}ms ease-in`, style({ flexBasis: `${miniWidth}px` }))\n ];\n}\n/**\n * @hidden\n *\n */\nfunction miniExpandOverlay(duration, width, miniWidth) {\n return [\n style({ width: `${miniWidth}px` }),\n animate(`${duration}ms ease-in`, style({ overflow: 'hidden', width: `${width}px` }))\n ];\n}\n/**\n * @hidden\n */\nfunction expandPush(duration, width) {\n return [\n style({ overflow: 'hidden', flexBasis: '0px' }),\n animate(`${duration}ms ease-in`, style({ flexBasis: `${width}px` }))\n ];\n}\n/**\n * @hidden\n */\nfunction collapsePush(duration, width) {\n return [\n style({ flexBasis: `${width}px` }),\n animate(`${duration}ms ease-in`, style({ overflow: 'hidden', flexBasis: `0px` }))\n ];\n}\n/**\n * @hidden\n */\nfunction expandRTLOverlay(duration) {\n return [\n style({ transform: `translateX(100%)` }),\n animate(`${duration}ms ease-in`, style({ overflow: 'hidden', transform: `translateX(0)` }))\n ];\n}\n/**\n * @hidden\n */\nfunction expandOverlay(duration, position) {\n const translateDir = position !== 'end' ? `-100%` : `100%`;\n return [\n style({ transform: `translateX(${translateDir})` }),\n animate(`${duration}ms ease-in`, style({ overflow: 'hidden', transform: `translateX(0)` }))\n ];\n}\n/**\n * @hidden\n */\nfunction miniCollapseOverlay(duration, width, miniWidth) {\n return [\n style({ width: `${width}px` }),\n animate(`${duration}ms ease-in`, style({ overflow: 'hidden', width: `${miniWidth}px` }))\n ];\n}\n/**\n * @hidden\n */\nfunction collapseOverlay(duration, position) {\n const translateDir = position !== 'end' ? '-100%' : '100%';\n return [\n style({ transform: `translateX(0)` }),\n animate(`${duration}ms ease-in`, style({ overflow: 'hidden', transform: `translateX(${translateDir})` }))\n ];\n}\n/**\n * @hidden\n */\nfunction collapseRTLOverlay(duration) {\n return [\n style({ transform: `translateX(0)` }),\n animate(`${duration}ms ease-in`, style({ overflow: 'hidden', transform: `translateX(100%)` }))\n ];\n}\n/**\n * @hidden\n */\nfunction expandAnimation(settings) {\n const duration = settings.animation.duration;\n const width = settings.width;\n const miniWidth = settings.miniWidth;\n const mode = settings.mode;\n const mini = settings.mini;\n const rtl = settings.rtl;\n const position = settings.position;\n if (mini && mode === 'push') {\n return miniExpandPush(duration, width, miniWidth);\n }\n if (!mini && mode === 'push') {\n return expandPush(duration, width);\n }\n if (!mini && mode === 'overlay') {\n return rtl ? expandRTLOverlay(duration) : expandOverlay(duration, position);\n }\n if (mini && mode === 'overlay') {\n return miniExpandOverlay(duration, width, miniWidth);\n }\n}\n/**\n * @hidden\n */\nfunction collapseAnimation(settings) {\n const duration = settings.animation.duration;\n const width = settings.width;\n const miniWidth = settings.miniWidth;\n const mode = settings.mode;\n const mini = settings.mini;\n const rtl = settings.rtl;\n const position = settings.position;\n if (mini && mode === 'push') {\n return miniCollapsePush(duration, width, miniWidth);\n }\n if (!mini && mode === 'push') {\n return collapsePush(duration, width);\n }\n if (!mini && mode === 'overlay') {\n return rtl ? collapseRTLOverlay(duration) : collapseOverlay(duration, position);\n }\n if (mini && mode === 'overlay') {\n return miniCollapseOverlay(duration, width, miniWidth);\n }\n}\n\n/**\n * Arguments for the `select` event of the Drawer.\n */\nclass DrawerSelectEvent extends PreventableEvent {\n}\n\n/**\n * @hidden\n */\nclass DrawerService {\n constructor() {\n this.selectedIndices = [];\n }\n emit(event, args) {\n const drawer = this.owner;\n const eventArgs = new DrawerSelectEvent(Object.assign({}, args, { sender: drawer }));\n if (hasObservers(drawer[event])) {\n drawer[event].emit(eventArgs);\n }\n return eventArgs.isDefaultPrevented();\n }\n onSelect(selectedIdx) {\n this.selectedIndices = [selectedIdx];\n const drawer = this.owner;\n if (drawer.autoCollapse && !drawer.minimized) {\n drawer.toggle(false);\n }\n }\n initSelection() {\n const items = this.owner.items;\n this.selectedIndices = [];\n for (let i = 0; i < items.length; i++) {\n if (items[i].selected) {\n this.selectedIndices.push(i);\n }\n }\n }\n}\nDrawerService.decorators = [\n { type: Injectable },\n];\n\nconst DEFAULT_ANIMATION = { type: 'slide', duration: 200 };\n/**\n * Represents the [Kendo UI Drawer component for Angular]({% slug overview_drawer %}).\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public items: any[] = [{ text: 'Inbox', icon: 'k-i-inbox' }];\n * }\n * ```\n */\nclass DrawerComponent {\n constructor(element, builder, localizationService, drawerService) {\n this.element = element;\n this.builder = builder;\n this.localizationService = localizationService;\n this.drawerService = drawerService;\n this.hostClasses = true;\n /**\n * Specifies the mode in which the Drawer will be displayed.\n *\n * The possible values are:\n * * (Default) `overlay`\n * * `push`\n */\n this.mode = 'overlay';\n /**\n * Specifies the position of the Drawer\n * ([see example]({% slug positioning_drawer %})).\n *\n * The possible values are:\n * * (Default) `start`\n * * `end`\n */\n this.position = 'start';\n /**\n * Enables the mini (compact) view of the Drawer which is displayed when the component is collapsed\n * ([see example]({% slug expandmodespositions_drawer %}#toc-mini-view)).\n */\n this.mini = false;\n /**\n * Specifies the state of the Drawer.\n */\n this.expanded = false;\n /**\n * Defines the width of the Drawer when it is expanded.\n * Defaults to `240`.\n */\n this.width = 240;\n /**\n * Defines the width of the Drawer when the mini view is enabled\n * and the component is collapsed. Defaults to `60`.\n */\n this.miniWidth = 50;\n /**\n * Specifies if the Drawer will be automatically collapsed when an item\n * or the overlay is clicked. Defaults to `true`.\n */\n this.autoCollapse = true;\n /**\n * Specifies the animation settings of the Drawer.\n * ([see example]({% slug interaction_drawer %}#toc-toggling-between-states)).\n *\n * The possible values are:\n * * Boolean\n * * (Default) `true`\n * * `false`\n * * `DrawerAnimation`\n * * (Default) `type?: 'slide'`\n * * `duration`—Accepts a number in milliseconds. Defaults to `300ms`.\n */\n this.animation = DEFAULT_ANIMATION;\n /**\n * Fires when the Drawer is expanded and its animation is complete.\n */\n this.expand = new EventEmitter();\n /**\n * Fires when the Drawer is collapsed and its animation is complete.\n */\n this.collapse = new EventEmitter();\n /**\n * Fires when a Drawer item is selected. This event is preventable.\n */\n this.select = new EventEmitter();\n /**\n * Fires when the `expanded` property of the component was updated.\n * Used to provide a two-way binding for the `expanded` property.\n */\n this.expandedChange = new EventEmitter();\n this.animationEnd = new EventEmitter();\n this.rtl = false;\n this._items = [];\n this.dynamicRTLSubscription = this.localizationService.changes.subscribe(({ rtl }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n });\n this.drawerService.owner = this;\n }\n get startPositionClass() {\n return this.position === 'start';\n }\n get endPositionClass() {\n return this.position === 'end';\n }\n get overlayTransofrmStyles() {\n if (this.mode === 'push') {\n return;\n }\n if (this.expanded || this.minimized) {\n return `translateX(0px)`;\n }\n return `translateX(-100%)`;\n }\n get flexStyles() {\n if (this.mode === 'overlay') {\n return;\n }\n if (!this.expanded && !this.minimized) {\n return 0;\n }\n return this.drawerWidth;\n }\n /**\n * The collection of items that will be rendered in the Drawer.\n */\n set items(items) {\n if (isPresent(items) && items.length > 0) {\n this._items = items;\n this.drawerService.initSelection();\n }\n }\n get items() {\n return this._items;\n }\n ngOnDestroy() {\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n get minimized() {\n return this.mini && !this.expanded;\n }\n /**\n * @hidden\n */\n get drawerWidth() {\n return this.minimized ? this.miniWidth : this.width;\n }\n /**\n * Toggles the visibility of the Drawer.\n *\n * @param expanded? - Boolean. Specifies if the Drawer will be expanded or collapsed.\n */\n toggle(expanded) {\n const previous = this.expanded;\n const current = isPresent(expanded) ? expanded : !previous;\n if (current === previous) {\n return;\n }\n if (current === true) {\n this.setExpanded(true);\n }\n else if (current === false && !this.animation) {\n this.setExpanded(false);\n }\n if (this.animation) {\n this.animationEnd.pipe(take(1))\n .subscribe(() => { this.onAnimationEnd(current); });\n this.animate(current);\n }\n else {\n this[current ? 'expand' : 'collapse'].emit();\n }\n }\n onAnimationEnd(currentExpanded) {\n if (currentExpanded) {\n this.expand.emit();\n }\n else {\n this.setExpanded(false);\n this.collapse.emit();\n }\n }\n setExpanded(value) {\n this.expanded = value;\n this.expandedChange.emit(value);\n }\n animate(expanded) {\n const settings = {\n mode: this.mode,\n mini: this.mini,\n miniWidth: this.miniWidth,\n width: this.width,\n rtl: this.rtl,\n position: this.position,\n animation: (typeof this.animation !== 'boolean') ? this.animation : DEFAULT_ANIMATION\n };\n const animation = expanded ? expandAnimation(settings) : collapseAnimation(settings);\n const player = this.createPlayer(animation, this.element.nativeElement);\n player.play();\n }\n createPlayer(animation, animatedElement) {\n const factory = this.builder.build(animation);\n let player = factory.create(animatedElement);\n player.onDone(() => {\n if (player) {\n this.animationEnd.emit();\n player.destroy();\n player = null;\n }\n });\n return player;\n }\n}\nDrawerComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoDrawer',\n providers: [\n LocalizationService,\n DrawerService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.drawer'\n }\n ],\n selector: 'kendo-drawer',\n template: `\n
    \n \n \n \n\n
      \n
    \n\n \n \n
    \n\n \n \n
    \n `\n },] },\n];\n/** @nocollapse */\nDrawerComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: AnimationBuilder },\n { type: LocalizationService },\n { type: DrawerService }\n];\nDrawerComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-drawer',] }],\n startPositionClass: [{ type: HostBinding, args: ['class.k-drawer-start',] }],\n endPositionClass: [{ type: HostBinding, args: ['class.k-drawer-end',] }],\n overlayTransofrmStyles: [{ type: HostBinding, args: ['style.transform',] }],\n flexStyles: [{ type: HostBinding, args: ['style.flexBasis.px',] }],\n mode: [{ type: Input }],\n position: [{ type: Input }],\n mini: [{ type: Input }],\n expanded: [{ type: Input }],\n width: [{ type: Input }],\n miniWidth: [{ type: Input }],\n autoCollapse: [{ type: Input }],\n items: [{ type: Input }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n animation: [{ type: Input }],\n expand: [{ type: Output }],\n collapse: [{ type: Output }],\n select: [{ type: Output }],\n expandedChange: [{ type: Output }],\n drawerTemplate: [{ type: ContentChild, args: [DrawerTemplateDirective,] }],\n footerTemplate: [{ type: ContentChild, args: [DrawerFooterTemplateDirective,] }],\n headerTemplate: [{ type: ContentChild, args: [DrawerHeaderTemplateDirective,] }],\n itemTemplate: [{ type: ContentChild, args: [DrawerItemTemplateDirective,] }]\n};\n\n/**\n * Displays images, icons or initials representing people or other entities.\n */\nclass AvatarComponent {\n constructor() {\n this.hostClass = true;\n /**\n * Sets the shape for the avatar.\n *\n * Possible values are:\n * * (Default) `square`\n * * `circle`\n * * `rounded`\n *\n */\n this.shape = 'square';\n /**\n * Sets the width of the avatar.\n */\n this.width = '32px';\n /**\n * Sets the height of the avatar.\n */\n this.height = '32px';\n }\n /**\n * @hidden\n */\n get circleClass() {\n return this.shape === 'circle';\n }\n /**\n * @hidden\n */\n get roundedClass() {\n return this.shape === 'rounded';\n }\n /**\n * @hidden\n */\n get squareClass() {\n return this.shape === 'square';\n }\n /**\n * @hidden\n */\n get avatarWidth() {\n return this.width;\n }\n /**\n * @hidden\n */\n get avatarHeight() {\n return this.height;\n }\n /**\n * @hidden\n */\n get initialsAvatar() {\n return Boolean(this.initials);\n }\n /**\n * @hidden\n */\n get imageAvatar() {\n return Boolean(this.imageSrc);\n }\n /**\n * @hidden\n */\n get iconAvatar() {\n return Boolean(this.icon || this.iconClass);\n }\n /**\n * @hidden\n */\n get imageUrl() {\n return `url(${this.imageSrc})`;\n }\n ngOnInit() {\n this.verifyProperties();\n }\n /**\n * @hidden\n */\n iconClasses() {\n if (this.icon) {\n return `k-icon k-i-${this.icon}`;\n }\n if (this.iconClass) {\n return `${this.iconClass}`;\n }\n }\n /**\n * @hidden\n */\n get customAvatar() {\n return !(this.imageSrc || this.initials || this.icon || this.iconClass);\n }\n verifyProperties() {\n if (!isDevMode()) {\n return;\n }\n const inputs = [this.icon || this.iconClass, this.imageSrc, this.initials];\n const inputsLength = inputs.filter((value) => value).length;\n if (inputsLength > 1) {\n throw new Error(`\n Invalid property configuration given.\n The kendo-avatar component can accept only one of:\n icon, imageSrc or initials properties.\n `);\n }\n }\n}\nAvatarComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-avatar',\n template: `\n \n\n \n
    \n
    \n\n \n {{ initials.substring(0, 2) }}\n \n\n \n \n \n `\n },] },\n];\nAvatarComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-avatar',] }],\n shape: [{ type: Input }],\n circleClass: [{ type: HostBinding, args: ['class.k-avatar-circle',] }],\n roundedClass: [{ type: HostBinding, args: ['class.k-avatar-rounded',] }],\n squareClass: [{ type: HostBinding, args: ['class.k-avatar-square',] }],\n iconClass: [{ type: Input }],\n width: [{ type: Input }],\n avatarWidth: [{ type: HostBinding, args: ['style.width',] }],\n height: [{ type: Input }],\n avatarHeight: [{ type: HostBinding, args: ['style.height',] }],\n initialsAvatar: [{ type: HostBinding, args: ['class.k-avatar-initials',] }],\n imageAvatar: [{ type: HostBinding, args: ['class.k-avatar-image',] }],\n iconAvatar: [{ type: HostBinding, args: ['class.k-avatar-icon',] }],\n cssStyle: [{ type: Input }],\n initials: [{ type: Input }],\n icon: [{ type: Input }],\n imageSrc: [{ type: Input }]\n};\n\n/**\n * Represents the [Kendo UI Card component for Angular]({% slug overview_card %})\n */\nclass CardComponent {\n constructor(localizationService) {\n this.localizationService = localizationService;\n this.hostClass = true;\n /**\n * Specifies the layout of the Card content.\n *\n * The possible values are:\n * * (Default) `vertical`\n * * `horizontal`\n *\n */\n this.orientation = 'vertical';\n /**\n * Defines the width of the Card.\n * Defaults to `285px`.\n */\n this.width = '285px';\n this.rtl = false;\n this.dynamicRTLSubscription = this.localizationService.changes.subscribe(({ rtl }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n });\n }\n get widthStyle() {\n return this.width;\n }\n get vertical() {\n return this.orientation === 'vertical';\n }\n get horizontal() {\n return this.orientation === 'horizontal';\n }\n ngOnDestroy() {\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n}\nCardComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-card',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.card.component'\n }\n ],\n template: `\n \n `\n },] },\n];\n/** @nocollapse */\nCardComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nCardComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-card',] }],\n widthStyle: [{ type: HostBinding, args: ['style.width',] }],\n vertical: [{ type: HostBinding, args: ['class.k-card-vertical',] }],\n horizontal: [{ type: HostBinding, args: ['class.k-card-horizontal',] }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n orientation: [{ type: Input }],\n width: [{ type: Input }]\n};\n\n/**\n * Specifies the content in the Card header.\n */\nclass CardHeaderComponent {\n constructor() {\n this.hostClass = true;\n }\n}\nCardHeaderComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-card-header',\n template: `\n \n `\n },] },\n];\nCardHeaderComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-card-header',] }]\n};\n\n/**\n * Specifies the content in the Card body.\n */\nclass CardBodyComponent {\n constructor() {\n this.hostClass = true;\n }\n}\nCardBodyComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-card-body',\n template: `\n \n `\n },] },\n];\nCardBodyComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-card-body',] }]\n};\n\n/**\n * Specifies the content in the Card footer.\n */\nclass CardFooterComponent {\n constructor() {\n this.hostClass = true;\n }\n}\nCardFooterComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-card-footer',\n template: `\n \n `\n },] },\n];\nCardFooterComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-card-footer',] }]\n};\n\n/**\n * Specifies the action buttons of the Card.\n * * ([see example]({% slug actions_card %})).\n */\nclass CardActionsComponent {\n constructor() {\n this.hostClass = true;\n /**\n * Specifies the layout of the Card action buttons.\n *\n * * The possible values are:\n * * (Default) `horizontal`\n * * `vertical`\n *\n */\n this.orientation = 'horizontal';\n /**\n * Specifies the layout of the Card action buttons.\n *\n * The possible values are:\n * * (Default) `start`\n * * `center`\n * * `end`\n * * `stretched`\n *\n */\n this.layout = 'start';\n /**\n * Fires when the user clicks an action button.\n */\n this.action = new EventEmitter();\n }\n get stretchedClass() {\n return this.layout === 'stretched';\n }\n get startClass() {\n return this.layout === 'start';\n }\n get endClass() {\n return this.layout === 'end';\n }\n get centerClass() {\n return this.layout === 'center';\n }\n get verticalClass() {\n return this.orientation === 'vertical';\n }\n get horizontalClass() {\n return this.orientation === 'horizontal';\n }\n /**\n * @hidden\n */\n onClick(action) {\n this.action.emit(action);\n }\n /**\n * @hidden\n */\n actionTemplate() {\n return this.actions instanceof TemplateRef;\n }\n}\nCardActionsComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-card-actions',\n template: `\n \n\n \n \n \n\n \n `\n },] },\n];\nCardActionsComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-card-actions',] }],\n stretchedClass: [{ type: HostBinding, args: ['class.k-card-actions-stretched',] }],\n startClass: [{ type: HostBinding, args: ['class.k-card-actions-start',] }],\n endClass: [{ type: HostBinding, args: ['class.k-card-actions-end',] }],\n centerClass: [{ type: HostBinding, args: ['class.k-card-actions-center',] }],\n verticalClass: [{ type: HostBinding, args: ['class.k-card-actions-vertical',] }],\n horizontalClass: [{ type: HostBinding, args: ['class.k-card-actions-horizontal',] }],\n orientation: [{ type: Input }],\n layout: [{ type: Input }],\n actions: [{ type: Input }],\n action: [{ type: Output }]\n};\n\n/**\n * Specifies a separator in the content of the Card.\n */\nclass CardSeparatorDirective {\n constructor() {\n this.hostClass = true;\n /**\n * Specifies the orientation of the Card separator.\n *\n * The possible values are:\n * (Default) `horizontal`\n * `vertical`\n */\n this.orientation = 'horizontal';\n }\n get verticalClass() {\n return this.orientation === 'vertical';\n }\n get horizontalClass() {\n return this.orientation === 'horizontal';\n }\n}\nCardSeparatorDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCardSeparator]'\n },] },\n];\nCardSeparatorDirective.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-card-separator',] }],\n verticalClass: [{ type: HostBinding, args: ['class.k-separator-vertical',] }],\n horizontalClass: [{ type: HostBinding, args: ['class.k-separator-horizontal',] }],\n color: [{ type: HostBinding, args: ['style.color',] }, { type: Input }],\n orientation: [{ type: Input }]\n};\n\n/**\n * Specifies the text and styles for the title of the Card.\n */\nclass CardTitleDirective {\n constructor() {\n this.hostClass = true;\n }\n}\nCardTitleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCardTitle]'\n },] },\n];\nCardTitleDirective.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-card-title',] }]\n};\n\n/**\n * Specifies the text and styles for the subtitle of the Card.\n */\nclass CardSubtitleDirective {\n constructor() {\n this.hostClass = true;\n }\n}\nCardSubtitleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCardSubtitle]'\n },] },\n];\nCardSubtitleDirective.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-card-subtitle',] }]\n};\n\n/**\n * Specifies any media that will be displayed and aligned in the Card.\n */\nclass CardMediaDirective {\n constructor() {\n this.hostClass = true;\n }\n}\nCardMediaDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoCardMedia]'\n },] },\n];\nCardMediaDirective.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-card-media',] }]\n};\n\n/**\n * The settings of the Card action buttons.\n */\nclass CardAction {\n}\n\nconst exportedModules = [\n PanelBarComponent,\n PanelBarItemComponent,\n PanelBarContentDirective,\n PanelBarItemTemplateDirective,\n PanelBarItemTitleDirective\n];\nconst declarations = [\n ...exportedModules\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the PanelBar component.\n *\n * The module registers:\n * - `PanelBarComponent`—The `PanelBar` component class.\n * - `PanelBarItemComponent`—The `PanelBarItem` component class.\n * - `PanelBarContentComponent`—The `PanelBarContent` component class.\n * - `PanelBarItemTemplateDirective—The `PanelBarItemTemplate` directive.\n * - `PanelBarItemTitleDirective—The `PanelBarItemTitle` directive.\n */\nclass PanelBarModule {\n}\nPanelBarModule.decorators = [\n { type: NgModule, args: [{\n declarations: [declarations],\n exports: [exportedModules],\n imports: [CommonModule]\n },] },\n];\n\nconst stopPropagation = ({ originalEvent: event }) => {\n event.stopPropagation();\n event.preventDefault();\n};\nconst preventOnDblClick = release => mouseDown => of(mouseDown).pipe(delay(150), takeUntil(release));\nconst classFromObject = classes => Object.keys(classes).filter(c => classes[c]).join(' ');\nconst createMoveStream = (draggable) => mouseDown => draggable.kendoDrag\n .pipe(takeUntil(draggable.kendoRelease), map(({ pageX, pageY }) => ({\n originalX: mouseDown.pageX,\n originalY: mouseDown.pageY,\n pageX,\n pageY\n})));\n/**\n * @hidden\n */\nclass SplitterBarComponent {\n constructor(draggable, splitter, localization) {\n this.draggable = draggable;\n this.splitter = splitter;\n this.localization = localization;\n this.orientation = 'horizontal';\n this.index = 0;\n this.ariaRole = 'separator';\n this.focused = false;\n this.subscriptions = new Subscription();\n }\n get direction() {\n return this.localization.rtl ? 'rtl' : 'ltr';\n }\n get tabIndex() {\n return this.splitter.isStatic(this.index) ? -1 : 0;\n }\n get hostClasses() {\n const isHorizontal = this.orientation === 'horizontal';\n const isDraggable = this.splitter.isDraggable(this.index);\n const isStatic = this.splitter.isStatic(this.index);\n return classFromObject({\n 'k-state-focused': this.focused,\n 'k-splitbar': true,\n 'k-splitbar-horizontal': isHorizontal,\n 'k-splitbar-vertical': !isHorizontal,\n 'k-splitbar-draggable-horizontal': isHorizontal && isDraggable,\n 'k-splitbar-draggable-vertical': !isHorizontal && isDraggable,\n 'k-splitbar-static-horizontal': isHorizontal && isStatic,\n 'k-splitbar-static-vertical': !isHorizontal && isStatic\n });\n }\n get touchAction() {\n if (this.splitter.isDraggable(this.index)) {\n return 'none';\n }\n }\n get order() {\n return 2 * this.index + 1;\n }\n collapseAny() {\n this.tryToggleNearest();\n }\n onFocusIn() {\n this.focused = true;\n }\n onFocusOut() {\n this.focused = false;\n }\n onKeyDown(event) {\n const keyCode = event && event.keyCode;\n const isHorizontal = this.orientation === 'horizontal';\n const resize = delta => {\n event.preventDefault();\n const state$$1 = this.splitter.dragState(this.index);\n this.splitter.setSize(state$$1, delta);\n };\n if (keyCode === Keys.Enter) {\n event.preventDefault();\n this.tryToggleNearest();\n }\n else if (isHorizontal && keyCode === Keys.ArrowLeft) {\n resize(-10);\n }\n else if (isHorizontal && keyCode === Keys.ArrowRight) {\n resize(10);\n }\n else if (!isHorizontal && keyCode === Keys.ArrowUp) {\n resize(-10);\n }\n else if (!isHorizontal && keyCode === Keys.ArrowDown) {\n resize(10);\n }\n }\n ngOnInit() {\n let state$$1;\n const listener = this.draggable.kendoPress.pipe(tap(stopPropagation), filter(() => this.splitter.isDraggable(this.index)), tap(() => state$$1 = this.splitter.dragState(this.index)), tap(() => this.splitter.toggleContentOverlay(this.index, true)), switchMap(preventOnDblClick(this.draggable.kendoRelease)), switchMap(createMoveStream(this.draggable))).subscribe(({ pageX, pageY, originalX, originalY }) => {\n let delta;\n if (this.orientation === 'vertical') {\n delta = pageY - originalY;\n }\n else if (this.direction === 'rtl') {\n delta = originalX - pageX;\n }\n else {\n delta = pageX - originalX;\n }\n this.splitter.setSize(state$$1, delta);\n });\n this.subscriptions.add(listener);\n this.subscriptions.add(this.draggable.kendoRelease.subscribe(() => this.splitter.toggleContentOverlay(this.index, false)));\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n togglePrevious() {\n this.splitter.tryToggle(this.index);\n }\n toggleNext() {\n this.splitter.tryToggle(this.index + 1);\n }\n previousArrowClass() {\n const pane = this.splitter.pane(this.index);\n const nextPane = this.splitter.pane(this.index + 1);\n const isCollapsible = pane.collapsible;\n const isCollapsed = pane.collapsed;\n const isHorizontal = this.orientation === 'horizontal';\n return classFromObject({\n 'k-icon': true,\n 'k-hidden': !isCollapsible || nextPane.isHidden,\n 'k-collapse-prev': isCollapsible,\n 'k-i-arrow-60-left': isCollapsible && isHorizontal && !isCollapsed,\n 'k-i-arrow-60-right': isCollapsible && isHorizontal && isCollapsed,\n 'k-i-arrow-60-up': isCollapsible && !isHorizontal && !isCollapsed,\n 'k-i-arrow-60-down': isCollapsible && !isHorizontal && isCollapsed\n });\n }\n nextArrowClass() {\n const pane = this.splitter.pane(this.index + 1);\n const prevPane = this.splitter.pane(this.index);\n const isCollapsible = pane.collapsible;\n const isCollapsed = pane.collapsed;\n const isHorizontal = this.orientation === 'horizontal';\n return classFromObject({\n 'k-icon': true,\n 'k-hidden': !isCollapsible || prevPane.isHidden,\n 'k-collapse-next': isCollapsible,\n 'k-i-arrow-60-right': isCollapsible && isHorizontal && !isCollapsed,\n 'k-i-arrow-60-left': isCollapsible && isHorizontal && isCollapsed,\n 'k-i-arrow-60-down': isCollapsible && !isHorizontal && !isCollapsed,\n 'k-i-arrow-60-up': isCollapsible && !isHorizontal && isCollapsed\n });\n }\n tryToggleNearest() {\n const prev = this.index;\n const next = this.index + 1;\n if (!this.splitter.tryToggle(prev)) {\n this.splitter.tryToggle(next);\n }\n }\n}\nSplitterBarComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-splitter-bar',\n template: `\n
    \n
    \n
    \n `\n },] },\n];\n/** @nocollapse */\nSplitterBarComponent.ctorParameters = () => [\n { type: DraggableDirective, decorators: [{ type: Host }] },\n { type: SplitterService },\n { type: LocalizationService }\n];\nSplitterBarComponent.propDecorators = {\n orientation: [{ type: Input }, { type: HostBinding, args: ['attr.aria-orientation',] }],\n index: [{ type: Input }],\n ariaRole: [{ type: HostBinding, args: ['attr.role',] }],\n focused: [{ type: HostBinding, args: ['class.k-state-focused',] }],\n tabIndex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n hostClasses: [{ type: HostBinding, args: ['class',] }],\n touchAction: [{ type: HostBinding, args: ['style.touch-action',] }],\n order: [{ type: HostBinding, args: ['style.-ms-flex-order',] }, { type: HostBinding, args: ['style.order',] }],\n collapseAny: [{ type: HostListener, args: ['dblclick',] }],\n onFocusIn: [{ type: HostListener, args: ['focusin',] }],\n onFocusOut: [{ type: HostListener, args: ['focusout',] }],\n onKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }]\n};\n\nconst exportedModules$1 = [\n SplitterComponent,\n SplitterPaneComponent\n];\nconst declarations$1 = [\n SplitterBarComponent,\n ...exportedModules$1\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Splitter component.\n *\n * The module registers:\n * - `SplitterComponent`—The `Splitter` component class.\n * - `SplitterPaneComponent`—The `SplitterPane` component class.\n */\nclass SplitterModule {\n}\nSplitterModule.decorators = [\n { type: NgModule, args: [{\n declarations: [declarations$1],\n exports: [exportedModules$1],\n imports: [\n CommonModule,\n DraggableModule\n ]\n },] },\n];\n\nconst exportedModules$2 = [\n TabStripComponent,\n TabStripTabComponent,\n TabContentDirective,\n TabTitleDirective\n];\nconst declarations$2 = [\n ...exportedModules$2\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the TabStrip component.\n *\n * The module registers:\n * - `TabStripComponent`—The `TabStrip` component class.\n * - `TabStripTabComponent`—The `TabStripTab` component class.\n * - `TabContentDirective`—The tab content directive used on the `` tag.\n * - `TabTitleDirective`—The tab title directive used on the `` tag.\n */\nclass TabStripModule {\n}\nTabStripModule.decorators = [\n { type: NgModule, args: [{\n declarations: [declarations$2],\n exports: [exportedModules$2],\n imports: [CommonModule]\n },] },\n];\n\n/**\n * @hidden\n */\nclass DrawerContainerComponent {\n constructor(localizationService) {\n this.localizationService = localizationService;\n this.rtl = false;\n this.dynamicRTLSubscription = this.localizationService.changes.subscribe(({ rtl }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n });\n }\n get hostClass() {\n return true;\n }\n get overlayClass() {\n return this.drawer.mode === 'overlay';\n }\n get miniClass() {\n return this.drawer.mini;\n }\n get pushClass() {\n return this.drawer.mode === 'push';\n }\n get isExpandedClass() {\n return this.drawer.expanded;\n }\n ngOnDestroy() {\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n get overlay() {\n return isPresent(this.drawer) &&\n this.drawer.expanded &&\n this.drawer.mode === 'overlay';\n }\n /**\n * @hidden\n */\n closeDrawer() {\n if (this.overlay && this.drawer.autoCollapse) {\n this.drawer.toggle(false);\n }\n }\n}\nDrawerContainerComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-drawer-container',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.drawer.container'\n }\n ],\n template: `\n
    \n \n `\n },] },\n];\n/** @nocollapse */\nDrawerContainerComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nDrawerContainerComponent.propDecorators = {\n hostClass: [{ type: HostBinding, args: ['class.k-drawer-container',] }],\n overlayClass: [{ type: HostBinding, args: ['class.k-drawer-overlay',] }],\n miniClass: [{ type: HostBinding, args: ['class.k-drawer-mini',] }],\n pushClass: [{ type: HostBinding, args: ['class.k-drawer-push',] }],\n isExpandedClass: [{ type: HostBinding, args: ['class.k-drawer-expanded',] }],\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n drawer: [{ type: ContentChild, args: [DrawerComponent,] }]\n};\n\n/**\n * @hidden\n */\nclass DrawerContentComponent {\n constructor() {\n this.hostClasses = true;\n }\n}\nDrawerContentComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-drawer-content',\n template: `\n \n `,\n encapsulation: ViewEncapsulation.None\n },] },\n];\n/** @nocollapse */\nDrawerContentComponent.ctorParameters = () => [];\nDrawerContentComponent.propDecorators = {\n hostClasses: [{ type: HostBinding, args: ['class.k-drawer-content',] }]\n};\n\n/**\n * @hidden\n */\nclass DrawerItemComponent {\n constructor(drawer) {\n this.drawer = drawer;\n }\n get disabledClass() {\n return this.item.disabled;\n }\n get selectedClass() {\n return this.drawer.selectedIndices.indexOf(this.index) >= 0;\n }\n /**\n * @hidden\n */\n iconClasses(icon) {\n return `k-icon ${icon}`;\n }\n}\nDrawerItemComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoDrawerItem]',\n template: `\n \n \n\n \n \n \n {{ item.text }}\n \n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nDrawerItemComponent.ctorParameters = () => [\n { type: DrawerService }\n];\nDrawerItemComponent.propDecorators = {\n item: [{ type: Input }],\n index: [{ type: Input }],\n itemTemplate: [{ type: Input }],\n mini: [{ type: Input }],\n expanded: [{ type: Input }],\n disabled: [{ type: Input }],\n cssClass: [{ type: Input }],\n cssStyle: [{ type: Input }],\n disabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }],\n selectedClass: [{ type: HostBinding, args: ['class.k-state-selected',] }]\n};\n\n/**\n * @hidden\n */\nclass DrawerListComponent {\n constructor(drawerService, renderer, ngZone, changeDetector, element) {\n this.drawerService = drawerService;\n this.renderer = renderer;\n this.ngZone = ngZone;\n this.changeDetector = changeDetector;\n this.element = element;\n }\n ngOnInit() {\n this.initialSelection();\n this.initDomEvents();\n }\n ngOnDestroy() {\n if (this.clickSubscription) {\n this.clickSubscription();\n }\n }\n initialSelection() {\n /* Differentiates a user selected item */\n if (this.drawerService.selectedIndices.length === 0) {\n this.drawerService.initSelection();\n }\n }\n initDomEvents() {\n if (!this.element) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n const nativeElement = this.element.nativeElement;\n this.clickSubscription = this.renderer.listen(nativeElement, 'click', this.clickHandler.bind(this));\n });\n }\n clickHandler(e) {\n // if (isFocusable(e.target) && !hasClass(e.target, 'k-drawer-item')) {\n // return;\n // }\n const itemIdx = this.getDrawerItemIndex(e.target);\n const item = this.items[itemIdx];\n if (!item) {\n return;\n }\n if (item.disabled) {\n e.preventDefault();\n return;\n }\n const args = {\n index: itemIdx,\n item: item,\n originalEvent: e\n };\n this.ngZone.run(() => {\n if (!this.drawerService.emit('select', args)) {\n this.drawerService.onSelect(itemIdx);\n this.changeDetector.detectChanges();\n }\n });\n }\n getDrawerItemIndex(target) {\n const item = closestItem(target, this.element.nativeElement);\n if (item) {\n return itemIndex(item);\n }\n }\n}\nDrawerListComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendoDrawerList]',\n template: `\n \n
  • \n
  • \n\n
  • \n  \n
  • \n
    \n `\n },] },\n];\n/** @nocollapse */\nDrawerListComponent.ctorParameters = () => [\n { type: DrawerService },\n { type: Renderer2 },\n { type: NgZone },\n { type: ChangeDetectorRef },\n { type: ElementRef }\n];\nDrawerListComponent.propDecorators = {\n items: [{ type: Input }],\n itemTemplate: [{ type: Input }],\n mini: [{ type: Input }],\n expanded: [{ type: Input }]\n};\n\nconst templateDirectives = [\n DrawerTemplateDirective,\n DrawerHeaderTemplateDirective,\n DrawerFooterTemplateDirective,\n DrawerItemTemplateDirective\n];\nconst exportedModules$3 = [\n DrawerComponent,\n DrawerContainerComponent,\n DrawerContentComponent,\n ...templateDirectives\n];\nconst declarations$3 = [\n DrawerItemComponent,\n DrawerListComponent,\n ...exportedModules$3\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Drawer component.\n */\nclass DrawerModule {\n}\nDrawerModule.decorators = [\n { type: NgModule, args: [{\n declarations: [declarations$3],\n exports: [exportedModules$3],\n imports: [CommonModule]\n },] },\n];\n\nconst cardDirectives = [\n CardTitleDirective,\n CardSubtitleDirective,\n CardSeparatorDirective,\n CardMediaDirective\n];\nconst exportedModules$4 = [\n CardComponent,\n CardHeaderComponent,\n CardBodyComponent,\n CardFooterComponent,\n CardActionsComponent,\n ...cardDirectives\n];\nconst declarations$4 = [...exportedModules$4];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Card component.\n */\nclass CardModule {\n}\nCardModule.decorators = [\n { type: NgModule, args: [{\n declarations: [declarations$4],\n exports: [exportedModules$4],\n imports: [CommonModule]\n },] },\n];\n\nconst exportedModules$5 = [\n AvatarComponent\n];\nconst declarations$5 = [\n ...exportedModules$5\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Avatar component.\n */\nclass AvatarModule {\n}\nAvatarModule.decorators = [\n { type: NgModule, args: [{\n declarations: [declarations$5],\n exports: [exportedModules$5],\n imports: [CommonModule]\n },] },\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Layout components.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Layout module\n * import { LayoutModule } from '@progress/kendo-angular-layout';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, LayoutModule], // import Layout module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass LayoutModule {\n}\nLayoutModule.decorators = [\n { type: NgModule, args: [{\n exports: [\n PanelBarModule,\n SplitterModule,\n TabStripModule,\n DrawerModule,\n AvatarModule,\n CardModule\n ]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PreventableEvent, DrawerContainerComponent, DrawerContentComponent, DrawerService, DrawerItemComponent, DrawerListComponent, ITEM_INDEX, PanelBarService, SplitterBarComponent, SplitterService, PanelBarComponent, PanelBarItemComponent, PanelBarContentDirective, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarExpandMode, SplitterComponent, SplitterPaneComponent, TabStripComponent, TabStripTabComponent, TabContentDirective, TabTitleDirective, SelectEvent, DrawerComponent, DrawerSelectEvent, AvatarComponent, CardComponent, CardHeaderComponent, CardBodyComponent, CardFooterComponent, CardActionsComponent, CardSeparatorDirective, CardTitleDirective, CardSubtitleDirective, CardMediaDirective, CardAction, LayoutModule, PanelBarModule, SplitterModule, TabStripModule, DrawerModule, AvatarModule, CardModule, DrawerTemplateDirective, DrawerItemTemplateDirective, DrawerHeaderTemplateDirective, DrawerFooterTemplateDirective };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2021 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { __decorate, __metadata, __param } from 'tslib';\nimport { Injectable, NgZone, EventEmitter, Directive, Optional, TemplateRef, Input, ContentChildren, QueryList, Component, Output, HostBinding, forwardRef, Renderer2, ElementRef, ViewChild, ChangeDetectorRef, isDevMode, NgModule, ViewContainerRef, ContentChild } from '@angular/core';\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { hasObservers, isDocumentAvailable, Keys } from '@progress/kendo-angular-common';\nimport { PopupService, POPUP_CONTAINER, PopupModule } from '@progress/kendo-angular-popup';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-menu',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1635940879,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'\n};\n\nconst PARENT_REGEX = /_?\\d+$/;\nconst SEPARATOR = '_';\nlet id = 0;\nconst itemIndexComparer = (a, b) => a.siblingIndex - b.siblingIndex;\nconst next = (idx, items, dir) => {\n let current = items[idx + dir];\n while (!current) {\n if (idx < 0) {\n idx = items.length - 1;\n }\n else if (idx >= items.length) {\n idx = 0;\n }\n else {\n idx += dir;\n }\n current = items[idx];\n }\n return current;\n};\n/**\n * @hidden\n */\nlet ItemsService = class ItemsService {\n /**\n * @hidden\n */\n constructor() {\n this.items = {};\n this.lists = [];\n this.idPrefix = `k-menu${id++}`;\n }\n get hasItems() {\n return Object.keys(this.items).length > 0;\n }\n childId(index) {\n return `${this.idPrefix}-child${index}`;\n }\n itemIndex(parentIndex, index) {\n return (parentIndex ? parentIndex + SEPARATOR : '') + index;\n }\n get(index) {\n return this.items[index];\n }\n add(item) {\n this.items[item.index] = item;\n }\n remove(item) {\n if (this.items[item.index] === item) {\n delete this.items[item.index];\n }\n }\n addList(list) {\n this.lists.push(list);\n }\n removeList(list) {\n const index = this.lists.indexOf(list);\n if (index >= 0) {\n this.lists.splice(index, 1);\n }\n }\n containsList(element) {\n return Boolean(this.lists.find(list => list.element.nativeElement === element));\n }\n siblings(item) {\n const parentIndex = this.parentIndex(item.index);\n return this.filter((index) => this.parentIndex(index) === parentIndex);\n }\n otherSiblings(item) {\n const parentIndex = this.parentIndex(item.index);\n return this.filter((index) => this.parentIndex(index) === parentIndex && index !== item.index);\n }\n children(item) {\n return this.filter((index) => this.parentIndex(index) === item.index);\n }\n parent(item) {\n return this.items[this.parentIndex(item.index)];\n }\n root(item) {\n return this.items[this.indices(item.index)[0]];\n }\n indices(index) {\n return index.split(SEPARATOR);\n }\n filter(predicate) {\n const result = [];\n const items = this.items;\n for (let index in items) {\n if (predicate(index, items[index])) {\n result.push(items[index]);\n }\n }\n return result.sort(itemIndexComparer);\n }\n previous(item) {\n const siblings = this.siblings(item);\n const itemIndex = siblings.indexOf(item);\n return next(itemIndex, siblings, -1);\n }\n next(item) {\n const siblings = this.siblings(item);\n const itemIndex = siblings.indexOf(item);\n return next(itemIndex, siblings, 1);\n }\n hasParent(item, parent) {\n return item.index.startsWith(parent.index);\n }\n areSiblings(item1, item2) {\n return item1 !== item2 && this.parent(item1) === this.parent(item2);\n }\n forEach(callback) {\n const items = this.items;\n for (let index in items) {\n if (items.hasOwnProperty(index)) {\n callback(items[index]);\n }\n }\n }\n parentIndex(index) {\n return index.replace(PARENT_REGEX, '');\n }\n};\nItemsService = __decorate([\n Injectable()\n], ItemsService);\n\n/**\n * @hidden\n */\nclass PreventableEvent {\n /**\n * @hidden\n */\n constructor(args) {\n this.prevented = false;\n Object.assign(this, args);\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses\n * the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * Returns `true` if the event was prevented\n * by any of its subscribers.\n *\n * @returns `true` if the default action was prevented.\n * Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * Arguments for the `open` and `close` events of the Menu.\n */\nclass MenuEvent extends PreventableEvent {\n}\n\nconst canPerformAction = (item, action) => !((action === 'open' && item.opened) || (action === 'close' && !item.opened));\n/**\n * @hidden\n */\nlet ActionsService = class ActionsService {\n constructor(ngZone, items) {\n this.ngZone = ngZone;\n this.items = items;\n this.actions = [];\n }\n open(item, finished) {\n if (item.disabled) {\n return;\n }\n if (item.hasContent && !item.opened) {\n this.actions.push({\n name: 'open',\n requiresZone: item.hasContentTemplates(),\n item,\n finished\n });\n }\n else if (finished) {\n finished();\n }\n }\n close(item) {\n this.closeChildren(item);\n this.closeItem(item);\n }\n closeItem(item) {\n if (item.opened) {\n this.actions.push({\n name: 'close',\n item\n });\n }\n }\n closeToRoot(item) {\n this.closeChildren(item);\n let current = item;\n do {\n this.closeItem(current);\n current = this.items.parent(current);\n } while (current);\n }\n closeOthers(item) {\n this.closeChildren(item);\n let current = item;\n while (current) {\n const siblings = this.items.otherSiblings(current);\n this.closeItems(siblings);\n current = this.items.parent(current);\n }\n }\n closeAll() {\n this.items.forEach((item) => {\n if (item.opened && item.level === 0) {\n this.close(item);\n }\n });\n }\n select(item, domEvent, prevented, finished) {\n this.actions.push({\n name: 'select',\n item,\n prevented,\n finished,\n domEvent\n });\n }\n emit(name, item, domEvent) {\n const owner = this.owner;\n const eventArgs = new MenuEvent({\n sender: owner,\n item: item.item,\n index: item.index,\n originalEvent: domEvent,\n hasContent: item.hasContent\n });\n owner[name].emit(eventArgs);\n if (owner.contextService) {\n owner.contextService.emit(name, eventArgs);\n }\n return eventArgs.isDefaultPrevented();\n }\n get hasPending() {\n return this.actions.length > 0;\n }\n execute(toExecute) {\n if (!this.hasPending && !toExecute) {\n return;\n }\n const actions = toExecute || this.clear();\n if (!NgZone.isInAngularZone() && this.requiresZone(actions)) {\n this.ngZone.run(() => {\n this.executeActions(actions);\n });\n }\n else {\n this.executeActions(actions);\n }\n }\n clear() {\n const actions = this.actions;\n this.actions = [];\n return actions;\n }\n executeActions(actions) {\n for (let idx = 0; idx < actions.length; idx++) {\n const { item, name, prevented, finished, domEvent } = actions[idx];\n if (!canPerformAction(item, name)) {\n continue;\n }\n if (!this.emit(name, item, domEvent)) {\n if (item[name]) {\n item[name]();\n }\n if (finished) {\n finished();\n }\n }\n else if (prevented) {\n prevented();\n }\n }\n }\n requiresZone(toExecute) {\n const actions = toExecute || this.actions;\n const owner = this.owner;\n const contextService = owner.contextService;\n for (let idx = 0; idx < actions.length; idx++) {\n const action = actions[idx];\n const name = action.name;\n if (action.requiresZone || (name && (hasObservers(owner[name]) || (contextService && contextService.hasObservers(name))))) {\n return true;\n }\n }\n return false;\n }\n closeChildren(item) {\n if (!item.opened) {\n return;\n }\n const children = this.items.children(item);\n this.closeItems(children);\n }\n closeItems(items) {\n for (let idx = 0; idx < items.length; idx++) {\n this.close(items[idx]);\n }\n }\n};\nActionsService = __decorate([\n Injectable(),\n __metadata(\"design:paramtypes\", [NgZone, ItemsService])\n], ActionsService);\n\nconst DEFAULT_ACTIVE = '0';\nconst NO_SPACE_REGEX = /\\S/;\nconst handlers = {};\nhandlers['37'] = 'left';\nhandlers['39'] = 'right';\nhandlers['38'] = 'up';\nhandlers['40'] = 'down';\nhandlers['36'] = 'home';\nhandlers['35'] = 'end';\nhandlers['32'] = 'enter';\nhandlers['13'] = 'enter';\nhandlers['27'] = 'esc';\nhandlers['9'] = 'tab';\nconst handlersRTL = Object.assign({}, handlers, {\n '37': 'right',\n '39': 'left'\n});\nfunction isPrintableCharacter(key) {\n return key.length === 1 && NO_SPACE_REGEX.test(key);\n}\nconst resolvedPromise = Promise.resolve(null);\n/**\n * @hidden\n */\nlet NavigationService = class NavigationService {\n constructor(items, actions, localization, ngZone) {\n this.items = items;\n this.actions = actions;\n this.localization = localization;\n this.ngZone = ngZone;\n this.vertical = false;\n this.activeIndex = DEFAULT_ACTIVE;\n }\n get focusedItem() {\n return this.items.get(this.focusedIdx);\n }\n get activeItem() {\n return this.items.get(this.activeIndex);\n }\n get handlers() {\n return this.localization.rtl ? handlersRTL : handlers;\n }\n focus(item) {\n if (item.index === this.focusedIdx) {\n return;\n }\n if (!this.activeItem || !this.items.hasParent(item, this.activeItem)) {\n this.setActive(item);\n }\n this.setFocus(item);\n }\n setFocus(item) {\n this.focusedIdx = item.index;\n item.focus();\n }\n focusLeave() {\n const focused = this.focusedItem;\n if (focused) {\n this.actions.closeToRoot(focused);\n this.actions.execute();\n }\n this.focusedIdx = null;\n }\n updateActive() {\n if (!this.activeItem && this.items.hasItems) {\n const firstItem = this.items.get(DEFAULT_ACTIVE);\n firstItem.toggleActive(true);\n this.ngZone.runOutsideAngular(() => {\n resolvedPromise.then(() => {\n this.activeIndex = DEFAULT_ACTIVE;\n });\n });\n }\n }\n keydown(e) {\n const current = this.focusedItem || this.activeItem;\n const handler = this.handlers[e.keyCode];\n if (!current) {\n return;\n }\n if (handler) {\n if (handler !== 'tab') {\n e.preventDefault();\n }\n this[handler](current, e);\n }\n else if (isPrintableCharacter(e.key)) {\n this.search(current, e.key);\n }\n this.actions.execute();\n }\n focusIndex(index) {\n if (!index && this.activeItem) {\n this.setFocus(this.activeItem);\n }\n else if (index === 'first') {\n this.focusFirst();\n }\n else if (index === 'last') {\n this.focusLast();\n }\n else {\n const item = this.items.get(index);\n if (item) {\n this.focus(item);\n }\n }\n }\n focusFirst() {\n const items = this.items.siblings(this.items.get('0'));\n this.focus(items[0]);\n }\n focusLast() {\n const items = this.items.siblings(this.items.get('0'));\n this.focus(items[items.length - 1]);\n }\n search(current, key) {\n const siblings = this.items.siblings(current);\n const startIndex = siblings.indexOf(current);\n const items = siblings.slice(startIndex + 1).concat(siblings.slice(0, startIndex));\n for (let idx = 0; idx < items.length; idx++) {\n const sibling = items[idx];\n const text = sibling.item.text || \"\";\n if (text.toLowerCase().startsWith(key.toLowerCase())) {\n this.focus(sibling);\n break;\n }\n }\n }\n down(current) {\n if (current.level === 0 && !this.vertical) {\n if (current.hasContent) {\n this.actions.open(current, this.focusChild(current, 0));\n }\n }\n else {\n this.focus(this.items.next(current));\n }\n }\n up(current) {\n if (current.level === 0 && !this.vertical) {\n if (current.hasContent) {\n this.actions.open(current, this.focusChild(current, current.children.length - 1));\n }\n }\n else {\n this.focus(this.items.previous(current));\n }\n }\n left(current) {\n if (this.vertical && current.level === 0 && current.disabled) {\n return;\n }\n if (current.level > 1 || (this.vertical && current.level > 0)) {\n const parent = this.items.parent(current);\n this.focus(parent);\n this.actions.close(parent);\n }\n else if (this.vertical && current.level === 0 && !current.disabled) {\n if (current.hasContent) {\n this.actions.open(current, this.focusChild(current, current.children.length - 1));\n }\n }\n else {\n this.focus(this.items.previous(this.activeItem));\n }\n }\n right(current) {\n if (this.vertical && current.level === 0 && current.disabled) {\n return;\n }\n if (current.horizontal && !current.disabled) {\n if (current.hasContent) {\n this.actions.open(current, this.focusChild(current, 0));\n }\n else if (!this.vertical || current.level > 0) {\n this.focus(this.items.next(this.activeItem));\n }\n }\n else {\n this.focus(this.items.next(this.activeItem));\n }\n }\n home(current) {\n const siblings = this.items.siblings(current);\n this.focus(siblings[0]);\n }\n end(current) {\n const siblings = this.items.siblings(current);\n this.focus(siblings[siblings.length - 1]);\n }\n enter(current, domEvent) {\n const actions = this.actions;\n if (current.disabled) {\n return;\n }\n if (current.hasContent) {\n actions.select(current, domEvent);\n actions.open(current, this.focusChild(current, 0));\n }\n else {\n actions.select(current, domEvent, null, () => {\n current.navigate();\n });\n this.focus(this.items.root(current));\n actions.closeToRoot(current);\n }\n }\n esc(current) {\n if (current.level > 0) {\n const parent = this.items.parent(current);\n this.actions.close(parent);\n this.focus(parent);\n }\n }\n tab(current) {\n if (current.level > 0) {\n this.activeItem.focus();\n }\n }\n focusChild(item, index) {\n return () => {\n const child = this.items.children(item)[index];\n this.setFocus(child);\n };\n }\n setActive(item) {\n const focused = this.focusedItem;\n const active = this.items.root(item);\n if (this.activeItem) {\n this.activeItem.toggleActive(false);\n }\n this.activeIndex = active.index;\n active.toggleActive(true);\n if (focused) {\n this.actions.closeToRoot(focused);\n if (focused.level > 0) {\n this.actions.open(active);\n }\n }\n }\n};\nNavigationService = __decorate([\n Injectable(),\n __metadata(\"design:paramtypes\", [ItemsService,\n ActionsService,\n LocalizationService,\n NgZone])\n], NavigationService);\n\nconst DISABLE_OPEN_ON_OVER_DELAY = 500;\n/**\n * @hidden\n */\nlet HoverService = class HoverService {\n constructor(actions, items) {\n this.actions = actions;\n this.items = items;\n this.delay = 100;\n this._openOnOver = true;\n this.scheduled = [];\n }\n get openOnOver() {\n return this._openOnOver;\n }\n set openOnOver(value) {\n this.cancelActions();\n this._openOnOver = value;\n }\n get hovered() {\n return this.items.get(this.hoveredIdx);\n }\n set hovered(item) {\n this.hoveredIdx = item ? item.index : null;\n }\n ngOnDestroy() {\n this.cancelActions();\n }\n over(item) {\n this.cancelActions((action) => action.name === 'openOnOver');\n if (!this.hovered || this.hovered !== item) {\n this.actions.closeOthers(item);\n this.hovered = item;\n if ((item.level > 0 || this.openOnOver) && !item.disabled) {\n this.actions.open(item);\n this.cancelActions((action) => (action.name === 'close' && (item === action.item || this.items.hasParent(item, action.item))) ||\n (action.name === 'open' && !this.items.hasParent(item, action.item)));\n }\n this.scheduleActions();\n }\n }\n leave(disableOpenOnOver) {\n const hovered = this.hovered;\n if (hovered) {\n this.actions.closeToRoot(hovered);\n this.cancelActions(action => action.name === 'open');\n this.scheduleActions();\n }\n if (disableOpenOnOver && this._openOnOver) {\n this.scheduleDisableOpenOnOver();\n }\n this.hovered = null;\n }\n closeCurrent() {\n const hovered = this.hovered;\n if (hovered) {\n this.actions.closeToRoot(hovered);\n this.hovered = null;\n }\n }\n scheduleActions() {\n if (this.actions.hasPending) {\n const item = {};\n item.actions = this.actions.clear();\n item.id = setTimeout(() => {\n this.actions.execute(item.actions);\n this.removeScheduled(item);\n }, this.delay);\n this.scheduled.push(item);\n }\n }\n scheduleDisableOpenOnOver() {\n const item = {\n actions: [{ name: 'openOnOver' }]\n };\n item.id = setTimeout(() => {\n this._openOnOver = false;\n this.removeScheduled(item);\n }, Math.max(this.delay, DISABLE_OPEN_ON_OVER_DELAY));\n this.scheduled.push(item);\n }\n removeScheduled(item) {\n const scheduled = this.scheduled;\n for (let idx = 0; idx < scheduled.length; idx++) {\n if (scheduled[idx] === item) {\n scheduled.splice(idx, 1);\n return;\n }\n }\n }\n cancelActions(predicate) {\n const scheduled = this.scheduled;\n for (let idx = scheduled.length - 1; idx >= 0; idx--) {\n const item = scheduled[idx];\n const actions = item.actions;\n if (predicate) {\n for (let actionIdx = actions.length - 1; actionIdx >= 0; actionIdx--) {\n if (predicate(actions[actionIdx])) {\n actions.splice(actionIdx, 1);\n }\n }\n }\n if (!predicate || actions.length === 0) {\n clearTimeout(item.id);\n scheduled.splice(idx, 1);\n }\n }\n }\n};\nHoverService = __decorate([\n Injectable(),\n __metadata(\"design:paramtypes\", [ActionsService, ItemsService])\n], HoverService);\n\n/* tslint:disable:max-line-length */\n/**\n * @hidden\n */\nconst normalize = (settings) => settings && Object.assign({\n toggle: 'select'\n}, settings);\n\n/**\n * @hidden\n */\nconst NODE_INDEX = 'data-kendo-menu-index';\n\nconst DEFAULT_ID = 'kendo-matches-container';\nconst focusableRegex = /^(?:a|input|select|option|textarea|button|object)$/i;\nconst matches = (element, selector) => (element.matches || element.msMatchesSelector).call(element, selector);\n/**\n * @hidden\n */\nconst closest = (node, predicate) => {\n while (node && !predicate(node)) {\n node = node.parentNode;\n }\n return node;\n};\n/**\n * @hidden\n */\nconst closestInScope = (node, predicate, scope) => {\n while (node && node !== scope && !predicate(node)) {\n node = node.parentNode;\n }\n if (node !== scope) {\n return node;\n }\n};\n/**\n * @hidden\n */\nconst isFocusable = (element) => {\n if (element.tagName) {\n const tagName = element.tagName.toLowerCase();\n const tabIndex = element.getAttribute('tabIndex');\n const skipTab = tabIndex === '-1';\n let focusable = tabIndex !== null && !skipTab;\n if (focusableRegex.test(tagName)) {\n focusable = !element.disabled && !skipTab;\n }\n return focusable;\n }\n return false;\n};\nconst toClassList = (classNames) => String(classNames).trim().split(' ');\n/**\n * @hidden\n */\nconst hasClass = (element, name) => {\n return toClassList(element.className).indexOf(name) >= 0;\n};\n/**\n * @hidden\n */\nconst matchesClasses = (classes) => {\n const list = toClassList(classes);\n return (element) => {\n const classList = toClassList(element.className);\n return Boolean(list.find(name => classList.indexOf(name) >= 0));\n };\n};\n/**\n * @hidden\n */\nconst nodeIndex = (node) => node.getAttribute(NODE_INDEX);\n/**\n * @hidden\n */\nconst closestItem = (node, scope) => closestInScope(node, nodeIndex, scope);\n/**\n * @hidden\n */\nconst closestList = (node) => {\n let list = closest(node, matchesClasses('k-menu-popup k-menu k-menu-group'));\n if (list && hasClass(list, 'k-menu-popup')) {\n list = list.querySelector('.k-menu-group');\n }\n return list;\n};\n/**\n * @hidden\n */\nconst inMenu = (node, itemsService) => {\n if (node === itemsService.lists[0].element.nativeElement) {\n return false;\n }\n const list = closestList(node);\n return list && itemsService.containsList(list);\n};\n/**\n * @hidden\n */\nconst findInContainer = (element, selector, container) => {\n const id = container.getAttribute('id');\n if (!id) {\n container.setAttribute('id', DEFAULT_ID);\n }\n const contextSelector = `#${id || DEFAULT_ID} ${selector}`;\n const match = closestInScope(element, node => matches(node, contextSelector), container);\n if (!id) {\n container.removeAttribute('id');\n }\n return match;\n};\n\n/**\n * @hidden\n */\nlet ContextMenuService = class ContextMenuService {\n /**\n * @hidden\n */\n constructor() {\n this.keydown = new EventEmitter();\n }\n emit(name, args) {\n this.owner.emitMenuEvent(name, args);\n }\n hasObservers(name) {\n return this.owner && hasObservers(this.owner[name]);\n }\n leaveMenu(e) {\n return this.items ? !inMenu(e.target, this.items) : true;\n }\n};\nContextMenuService = __decorate([\n Injectable()\n], ContextMenuService);\n\n/**\n * Represents a template for the Menu items ([see example]({% slug templates_menu %})). To define a template\n * for an item, nest an `` tag with the `kendoMenuItemTemplate` directive inside a ``\n * component. To define a template for all Menu items, nest the template inside the `` component.\n *\n * The available fields in the template context are:\n * - `item`—The item data.\n * - `index`—The item index.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n *
    \n * My Template for: {{ item.text }} at index: {{ index }}\n *
    \n *
    \n *
    \n *
    \n * `\n * })\n *\n * class AppComponent {\n * }\n * ```\n */\nlet ItemTemplateDirective = class ItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nItemTemplateDirective = __decorate([\n Directive({\n selector: '[kendoMenuItemTemplate]'\n }),\n __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], ItemTemplateDirective);\n\n/**\n * Represents a template for the links of the Menu items ([see example]({% slug templates_menu %})). To define a template\n * for an item, nest an `` tag with the `kendoMenuItemLinkTemplate` directive inside a ``\n * component. To define a template for all Menu items, nest the template inside the `` component.\n *\n * The available fields in the template context are:\n * - `item`—The item data.\n * - `index`—The item index.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * {{ item.text }}\n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * }\n * ```\n */\nlet ItemLinkTemplateDirective = class ItemLinkTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nItemLinkTemplateDirective = __decorate([\n Directive({\n selector: '[kendoMenuItemLinkTemplate]'\n }),\n __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], ItemLinkTemplateDirective);\n\n/**\n * Represents a template for the content of the Menu items ([see example]({% slug templates_menu %})). To define the template,\n * nest an `` tag with the `kendoMenuItemContentTemplate` directive inside a `` component.\n *\n * The available fields in the template context are:\n * - `item`—The item data.\n * - `index`—The item index.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n *
    \n * My Content Template for: {{ item.text }} at index: {{ index }}\n *
    \n *
    \n *
    \n *
    \n * `\n * })\n *\n * class AppComponent {\n * }\n * ```\n */\nlet ItemContentTemplateDirective = class ItemContentTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nItemContentTemplateDirective = __decorate([\n Directive({\n selector: '[kendoMenuItemContentTemplate]'\n }),\n __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], ItemContentTemplateDirective);\n\nvar MenuItemComponent_1;\n/**\n * A component that can be used to specify the Menu items\n * ([more information and examples]({% slug items_menu %})).\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * \n *
    \n * My Content Template: {{ item.text }}\n *
    \n *
    \n * \n *
    \n * My Template: {{ item.text }}\n *
    \n *
    \n *
    \n * \n * \n * \n * {{ item.text }}\n * \n * \n * \n * \n *
    \n * `\n * })\n *\n * class AppComponent {\n * }\n * ```\n */\nlet MenuItemComponent = MenuItemComponent_1 = class MenuItemComponent {\n /**\n * @hidden\n */\n get template() {\n if (this.itemTemplate && this.itemTemplate.length) {\n return this.itemTemplate.first.templateRef;\n }\n }\n /**\n * @hidden\n */\n get linkTemplate() {\n if (this.itemLinkTemplate && this.itemLinkTemplate.length) {\n return this.itemLinkTemplate.first.templateRef;\n }\n }\n /**\n * @hidden\n */\n get contentTemplate() {\n if (this.itemContentTemplate && this.itemContentTemplate.length) {\n return this.itemContentTemplate.first.templateRef;\n }\n }\n /**\n * @hidden\n */\n get items() {\n if (this.children.length) {\n return this.children.toArray().filter(c => c !== this);\n }\n }\n};\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MenuItemComponent.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MenuItemComponent.prototype, \"url\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MenuItemComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], MenuItemComponent.prototype, \"cssClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], MenuItemComponent.prototype, \"cssStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MenuItemComponent.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], MenuItemComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MenuItemComponent.prototype, \"separator\", void 0);\n__decorate([\n ContentChildren(ItemTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], MenuItemComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n ContentChildren(ItemLinkTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], MenuItemComponent.prototype, \"itemLinkTemplate\", void 0);\n__decorate([\n ContentChildren(ItemContentTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], MenuItemComponent.prototype, \"itemContentTemplate\", void 0);\n__decorate([\n ContentChildren(MenuItemComponent_1),\n __metadata(\"design:type\", QueryList)\n], MenuItemComponent.prototype, \"children\", void 0);\nMenuItemComponent = MenuItemComponent_1 = __decorate([\n Component({\n selector: 'kendo-menu-item',\n template: ``\n })\n], MenuItemComponent);\n\n/**\n * @hidden\n */\nclass MenuBase {\n constructor() {\n /**\n * Specifies if the Menu will be vertical ([see example]({% slug vertical_menu %})).\n */\n this.vertical = false;\n /**\n * Specifies that the root items can be opened only on click\n * ([see example]({% slug openclose_menu %}#toc-opening-on-click)).\n */\n this.openOnClick = false;\n /**\n * Specifies the delay in milliseconds before the Menu items are opened or closed on item hover\n * or leave ([see example]({% slug openclose_menu %}#toc-delay-on-hover)). Used to avoid the accidental\n * opening or closing of the items.\n */\n this.hoverDelay = 100;\n /**\n * Sets the Menu animation.\n */\n this.animate = true;\n }\n /**\n * @hidden\n */\n get rootItems() {\n return this.items || (this.children ? this.children.toArray() : []);\n }\n}\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], MenuBase.prototype, \"items\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MenuBase.prototype, \"vertical\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], MenuBase.prototype, \"openOnClick\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], MenuBase.prototype, \"hoverDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], MenuBase.prototype, \"animate\", void 0);\n__decorate([\n ContentChildren(ItemTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], MenuBase.prototype, \"itemTemplate\", void 0);\n__decorate([\n ContentChildren(ItemLinkTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], MenuBase.prototype, \"itemLinkTemplate\", void 0);\n__decorate([\n ContentChildren(MenuItemComponent),\n __metadata(\"design:type\", QueryList)\n], MenuBase.prototype, \"children\", void 0);\n\nvar MenuComponent_1;\n/**\n * Represents the [Kendo UI Menu component for Angular]({% slug overview_menu %}).\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public items: any[] = [{ text: 'item1', items: [{ text: 'item1.1' }] }, { text: 'item2', disabled: true }];\n * }\n * ```\n */\nlet MenuComponent = MenuComponent_1 = class MenuComponent extends MenuBase {\n constructor(itemsService, hover, actions, navigation, localization, ngZone, renderer, contextService) {\n super();\n this.itemsService = itemsService;\n this.hover = hover;\n this.actions = actions;\n this.navigation = navigation;\n this.localization = localization;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.contextService = contextService;\n /**\n * Fires when a Menu item is selected ([see example]({% slug routing_menu %})).\n */\n this.select = new EventEmitter();\n /**\n * Fires when a Menu item is opened.\n */\n this.open = new EventEmitter();\n /**\n * Fires when a Menu item is closed.\n */\n this.close = new EventEmitter();\n validatePackage(packageMetadata);\n this.actions.owner = this;\n if (contextService) {\n contextService.items = this.itemsService;\n this.contextKeyDownSubscription = contextService.keydown.subscribe(this.contextKeyDown.bind(this));\n }\n }\n /**\n * @hidden\n */\n get ariaOrientation() {\n if (this.vertical) {\n return 'vertical';\n }\n }\n /**\n * @hidden\n */\n get contextMenuClass() {\n return Boolean(this.contextService);\n }\n get direction() {\n return this.rtl;\n }\n get rtl() {\n return this.localization.rtl;\n }\n /**\n * Opens or closes the specified Menu items.\n *\n * @param open - A Boolean value which indicates if the items will be opened or closed.\n * @param indices - One or more values which represent the hierarchical indices of the items that will be opened or closed.\n */\n toggle(open, ...indices) {\n for (let idx = 0; idx < indices.length; idx++) {\n const item = this.itemsService.get(indices[idx]);\n if (item && !item.disabled) {\n if (open) {\n item.open();\n }\n else {\n item.close();\n }\n }\n }\n }\n /**\n * @hidden\n */\n focus(index) {\n this.navigation.focusIndex(index);\n }\n ngOnChanges(changes) {\n this.navigation.vertical = this.vertical;\n this.hover.delay = this.hoverDelay;\n if (changes.openOnClick) {\n const openOnClick = this.openOnClick = normalize(this.openOnClick);\n this.hover.openOnOver = !openOnClick;\n if (openOnClick && openOnClick.toggle === 'click') {\n this.attachCloseClick();\n }\n else {\n this.unsubscribeClick();\n }\n }\n }\n ngAfterViewChecked() {\n this.navigation.updateActive();\n }\n ngOnDestroy() {\n this.unsubscribeClick();\n if (this.contextService) {\n this.contextService.items = null;\n this.contextKeyDownSubscription.unsubscribe();\n }\n }\n attachCloseClick() {\n if (!this.closeClickSubscription && isDocumentAvailable()) {\n this.ngZone.runOutsideAngular(() => {\n this.closeClickSubscription = this.renderer.listen('document', 'click', (e) => {\n if (!inMenu(e.target, this.itemsService)) {\n this.hover.openOnOver = false;\n this.actions.closeAll();\n this.actions.execute();\n }\n });\n });\n }\n }\n unsubscribeClick() {\n if (this.closeClickSubscription) {\n this.closeClickSubscription();\n }\n }\n contextKeyDown(e) {\n if (!this.itemsService.hasItems) {\n return;\n }\n const keyCode = e.keyCode;\n const rtl = this.localization.rtl;\n const first = keyCode === Keys.ArrowDown || keyCode === Keys.ArrowRight;\n const last = keyCode === Keys.ArrowUp || keyCode === Keys.ArrowLeft;\n let index;\n if ((first && !rtl) || (last && rtl)) {\n index = 'first';\n }\n else if ((first && rtl) || (last && !rtl)) {\n index = 'last';\n }\n if (index) {\n e.preventDefault();\n this.focus(index);\n }\n }\n};\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], MenuComponent.prototype, \"menuItemTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], MenuComponent.prototype, \"menuItemLinkTemplate\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MenuComponent.prototype, \"select\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MenuComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MenuComponent.prototype, \"close\", void 0);\n__decorate([\n HostBinding('class.k-rtl'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], MenuComponent.prototype, \"direction\", null);\nMenuComponent = MenuComponent_1 = __decorate([\n Component({\n exportAs: 'kendoMenu',\n providers: [\n ItemsService,\n ActionsService,\n NavigationService,\n HoverService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.menu'\n },\n {\n provide: MenuBase,\n useExisting: forwardRef(() => MenuComponent_1)\n }\n ],\n selector: 'kendo-menu',\n template: `\n
      \n
    \n `\n }),\n __param(7, Optional()),\n __metadata(\"design:paramtypes\", [ItemsService,\n HoverService,\n ActionsService,\n NavigationService,\n LocalizationService,\n NgZone,\n Renderer2,\n ContextMenuService])\n], MenuComponent);\n\n/* tslint:disable:component-selector */\n/**\n * @hidden\n */\nlet ListComponent = class ListComponent {\n constructor(itemsService, hover, actions, navigation, renderer, ngZone, element) {\n this.itemsService = itemsService;\n this.hover = hover;\n this.actions = actions;\n this.navigation = navigation;\n this.renderer = renderer;\n this.ngZone = ngZone;\n this.element = element;\n this.animate = true;\n }\n hierarchyIndex(index) {\n return this.itemsService.itemIndex(this.index, index);\n }\n ngOnInit() {\n this.itemsService.addList(this);\n this.initDomEvents();\n }\n ngOnDestroy() {\n this.itemsService.removeList(this);\n if (this.domSubscriptions) {\n this.domSubscriptions();\n }\n }\n initDomEvents() {\n if (!isDocumentAvailable() || !this.element) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n const element = this.element.nativeElement;\n const container = this.level > 0 ? closest(element, (node) => hasClass(node, 'k-popup')) : element;\n const overSubscription = this.renderer.listen(element, 'mouseover', (e) => {\n if (e.target === element && this.level === 0) {\n this.onLeave();\n }\n else {\n const item = this.nodeItem(e.target) || this.itemsService.get(this.index);\n if (item && !(this.openOnClick && this.openOnClick.toggle === 'click' && item.level === 0 && !item.hasContent)) {\n this.hover.over(item);\n }\n }\n });\n const leaveSubscription = this.renderer.listen(container, 'mouseleave', (e) => {\n if (this.leavesMenu(e)) {\n this.onLeave();\n }\n });\n const keydownSubscription = this.renderer.listen(element, 'keydown', (e) => {\n if (hasClass(e.target, 'k-menu-item')) {\n this.navigation.keydown(e);\n }\n });\n const blurSubscription = this.renderer.listen(element, 'focusout', (e) => {\n if (this.leavesMenu(e)) {\n this.navigation.focusLeave();\n }\n });\n /**\n * Handle focus/blur open/close for iOS devices since it behaves inconsistently with the rest\n * Refer to: https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\n */\n const touchSubscription = this.renderer.listen(document, 'touchstart', (e) => {\n if (inMenu(e.target, this.itemsService)) {\n const item = this.nodeItem(e.target);\n // Needs to be called because the 'click' handler will be called only on secondary tap and the item will remain unfocused\n this.navigation.focus(item);\n // This is needed since the 'mouseover' event is not always dispatched\n if (!item.opened) {\n this.hover.over(item);\n }\n }\n else if (this.navigation.focusedIdx) {\n // If the touch is outside of the menu and the menu is not currently in focus\n const activeItem = this.itemsService.get(this.navigation.activeIndex);\n this.onLeave(); // needs to be called explicitly since mouseleave event is not triggered\n activeItem.blur(); // needs to be called explicitly otherwise the item remains focused => triggers focusout\n }\n });\n const clickSubscription = this.renderer.listen(element, 'click', this.clickHandler.bind(this));\n this.domSubscriptions = () => {\n overSubscription();\n leaveSubscription();\n keydownSubscription();\n blurSubscription();\n clickSubscription();\n touchSubscription();\n };\n });\n }\n leavesMenu(e) {\n if (!e.relatedTarget) {\n return true;\n }\n return !inMenu(e.relatedTarget, this.itemsService);\n }\n onLeave() {\n const openOnClick = this.openOnClick;\n if (!openOnClick || openOnClick.toggle !== 'click') {\n this.hover.leave(openOnClick && openOnClick.toggle === 'leave');\n }\n }\n nodeItem(target) {\n const node = closestItem(target, this.element.nativeElement);\n if (node) {\n const index = nodeIndex(node);\n return this.itemsService.get(index);\n }\n }\n clickHandler(e) {\n if (isFocusable(e.target) && !hasClass(e.target, 'k-menu-item')) {\n return;\n }\n const item = this.nodeItem(e.target);\n if (!item || item.isContent || item.navigating) {\n return;\n }\n if (item.disabled) {\n e.preventDefault();\n return;\n }\n this.actions.select(item, e, () => {\n e.preventDefault();\n });\n this.navigation.focus(item);\n if (item.level > 0 && !item.hasContent) {\n this.actions.closeToRoot(item);\n }\n if (this.openOnClick) {\n const hover = this.hover;\n if (item.opened) {\n if (item.level === 0) {\n hover.openOnOver = false;\n this.actions.close(item);\n }\n }\n else if (item.hasContent) {\n hover.openOnOver = true;\n this.actions.closeOthers(item);\n this.actions.open(item);\n }\n else {\n hover.openOnOver = false;\n if (item.level === 0 && this.openOnClick.toggle === 'click') {\n this.hover.closeCurrent();\n }\n }\n }\n this.actions.execute();\n }\n};\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ListComponent.prototype, \"items\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"level\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ListComponent.prototype, \"index\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListComponent.prototype, \"animate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListComponent.prototype, \"vertical\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListComponent.prototype, \"rtl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListComponent.prototype, \"openOnClick\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ListComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ListComponent.prototype, \"itemLinkTemplate\", void 0);\nListComponent = __decorate([\n Component({\n selector: '[kendoMenuList]',\n template: `\n \n
  • \n
  • \n  \n
  • \n
    \n `\n }),\n __metadata(\"design:paramtypes\", [ItemsService,\n HoverService,\n ActionsService,\n NavigationService,\n Renderer2,\n NgZone,\n ElementRef])\n], ListComponent);\n\nconst POPUP_ALIGN = {\n vertical: 'top',\n horizontal: 'left'\n};\nconst POPUP_ALIGN_RTL = {\n vertical: 'top',\n horizontal: 'right'\n};\nconst VERTICAL_COLLISION = {\n vertical: 'flip',\n horizontal: 'fit'\n};\nconst HORIZONTAL_COLLISION = {\n vertical: 'fit',\n horizontal: 'flip'\n};\n/**\n * @hidden\n */\nconst POPUP_SETTINGS_RTL = {\n vertical: {\n anchor: {\n vertical: 'bottom',\n horizontal: 'right'\n },\n popup: POPUP_ALIGN_RTL,\n collision: VERTICAL_COLLISION,\n animate: 'down'\n },\n horizontal: {\n anchor: {\n vertical: 'top',\n horizontal: 'left'\n },\n popup: POPUP_ALIGN_RTL,\n collision: HORIZONTAL_COLLISION,\n animate: 'left'\n }\n};\n/**\n * @hidden\n */\nconst POPUP_SETTINGS = {\n vertical: {\n anchor: {\n vertical: 'bottom',\n horizontal: 'left'\n },\n popup: POPUP_ALIGN,\n collision: VERTICAL_COLLISION,\n animate: 'down'\n },\n horizontal: {\n anchor: {\n vertical: 'top',\n horizontal: 'right'\n },\n popup: POPUP_ALIGN,\n collision: HORIZONTAL_COLLISION,\n animate: 'right'\n }\n};\n\n/**\n * @hidden\n */\nconst defined = (value) => typeof value !== 'undefined';\n/**\n * @hidden\n */\nconst bodyFactory = () => {\n if (isDocumentAvailable()) {\n return new ElementRef(document.body);\n }\n};\n\nconst ɵ0$3 = bodyFactory;\n/* tslint:disable:component-selector */\n/**\n * @hidden\n */\nlet ItemComponent = class ItemComponent {\n constructor(itemsService, navigation, changeDetector, renderer, popupService, element) {\n this.itemsService = itemsService;\n this.navigation = navigation;\n this.changeDetector = changeDetector;\n this.renderer = renderer;\n this.popupService = popupService;\n this.element = element;\n this.animate = true;\n this.openOnClick = false;\n this.opened = false;\n this.navigating = false;\n this.destroyed = false;\n }\n set index(index) {\n if (this._index && this._index !== index) {\n this.itemsService.remove(this);\n this._index = index;\n this.itemsService.add(this);\n }\n else {\n this._index = index;\n }\n this.childId = this.itemsService.childId(index);\n }\n get index() {\n return this._index;\n }\n get disabled() {\n return this.item.disabled;\n }\n get hasPopup() {\n return this.hasContent ? true : null;\n }\n get expanded() {\n return this.hasContent ? this.opened : null;\n }\n get label() {\n return this.item.text ? this.item.text : null;\n }\n get activeId() {\n return this.index === this.navigation.activeIndex ? '0' : '-1';\n }\n get popupSettings() {\n const settings = this.rtl ? POPUP_SETTINGS_RTL : POPUP_SETTINGS;\n return this.horizontal ? settings.horizontal : settings.vertical;\n }\n get horizontal() {\n return this.vertical || this.level > 0;\n }\n get hasLink() {\n return Boolean(this.item.url);\n }\n get linkTemplate() {\n return this.item.linkTemplate || this.itemLinkTemplate;\n }\n get hasContent() {\n const items = this.item.items;\n return items && items.length || this.item.contentTemplate;\n }\n get isContent() {\n return Boolean(this.item.content);\n }\n get iconClass() {\n return `k-i-${this.item.icon}`;\n }\n get children() {\n const item = this.item;\n if (item.contentTemplate) {\n if (!this.contentItems) {\n this.contentItems = [{\n content: item.contentTemplate,\n owner: item,\n ownerIndex: this.index\n }];\n }\n return this.contentItems;\n }\n return item.items;\n }\n get template() {\n return this.item.template || this.itemTemplate;\n }\n hasContentTemplates() {\n const item = this.item;\n return this.itemTemplate || item.contentTemplate || this.itemLinkTemplate ||\n (item.items && item.items.find(current => current.template || current.linkTemplate));\n }\n ngOnInit() {\n this.itemsService.add(this);\n }\n ngOnDestroy() {\n this.itemsService.remove(this);\n this.destroyed = true;\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n focus() {\n this.element.nativeElement.focus();\n }\n blur() {\n this.element.nativeElement.blur();\n }\n toggleActive(isActive) {\n if (isActive) {\n this.setAttribute('tabindex', '0');\n }\n else {\n this.setAttribute('tabindex', '-1');\n }\n }\n open() {\n if (!this.destroyed && this.hasContent && !this.opened) {\n const popupSettings = this.popupSettings;\n const animate = this.animate ? Object.assign({}, this.animate, {\n direction: popupSettings.animate\n }) : false;\n this.opened = true;\n this.popupRef = this.popupService.open({\n popupAlign: popupSettings.popup,\n anchorAlign: popupSettings.anchor,\n collision: popupSettings.collision,\n anchor: this.element,\n positionMode: 'absolute',\n content: this.popupTemplate,\n popupClass: {\n 'k-rtl': this.rtl,\n 'k-menu-popup': true\n },\n animate: animate\n });\n this.setAttribute('aria-expanded', 'true');\n this.setAttribute('aria-owns', this.childId);\n this.changeDetector.detectChanges();\n }\n }\n close() {\n if (!this.destroyed && this.opened) {\n this.opened = false;\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n }\n this.changeDetector.detectChanges();\n this.setAttribute('aria-expanded', 'false');\n this.renderer.removeAttribute(this.element.nativeElement, 'aria-owns');\n }\n }\n navigate() {\n let link;\n if (this.linkTemplate) {\n link = this.element.nativeElement.querySelector('a.k-menu-link');\n }\n else if (this.hasLink) {\n link = this.link.nativeElement;\n }\n if (link) {\n this.navigating = true;\n link.click();\n this.navigating = false;\n }\n }\n setAttribute(name, value) {\n this.renderer.setAttribute(this.element.nativeElement, name, value);\n }\n};\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ItemComponent.prototype, \"item\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ItemComponent.prototype, \"level\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ItemComponent.prototype, \"index\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ItemComponent.prototype, \"siblingIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ItemComponent.prototype, \"animate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ItemComponent.prototype, \"vertical\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ItemComponent.prototype, \"rtl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ItemComponent.prototype, \"openOnClick\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ItemComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ItemComponent.prototype, \"itemLinkTemplate\", void 0);\n__decorate([\n ViewChild('link', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ItemComponent.prototype, \"link\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ItemComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n HostBinding('attr.aria-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ItemComponent.prototype, \"disabled\", null);\n__decorate([\n HostBinding('attr.aria-haspopup'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ItemComponent.prototype, \"hasPopup\", null);\n__decorate([\n HostBinding('attr.aria-expanded'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ItemComponent.prototype, \"expanded\", null);\n__decorate([\n HostBinding('attr.aria-label'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ItemComponent.prototype, \"label\", null);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ItemComponent.prototype, \"activeId\", null);\nItemComponent = __decorate([\n Component({\n providers: [PopupService, {\n provide: POPUP_CONTAINER,\n useFactory: ɵ0$3\n }],\n selector: '[kendoMenuItem]',\n template: `\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 {{ item.text }}\n \n \n \n \n \n \n `\n }),\n __metadata(\"design:paramtypes\", [ItemsService,\n NavigationService,\n ChangeDetectorRef,\n Renderer2,\n PopupService,\n ElementRef])\n], ItemComponent);\n\n/**\n * Represents a directive that can be used in the [`linkTemplate`]({% slug api_menu_itemlinktemplatedirective %})\n * of the items to apply the default styling and behavior.\n */\nlet LinkDirective = class LinkDirective {\n constructor(itemsService) {\n this.itemsService = itemsService;\n this.hostClasses = true;\n this.role = 'presentation';\n this.tabindex = '-1';\n }\n get activeClass() {\n return this.item.opened;\n }\n ngOnInit() {\n if (isDevMode() && !this.index) {\n throw new Error('The kendoMenuItemLink directive requires the item index to be set.');\n }\n this.item = this.itemsService.get(this.index) || {};\n }\n};\n__decorate([\n Input('kendoMenuItemLink'),\n __metadata(\"design:type\", String)\n], LinkDirective.prototype, \"index\", void 0);\n__decorate([\n HostBinding('class.k-link'),\n HostBinding('class.k-menu-link'),\n __metadata(\"design:type\", Boolean)\n], LinkDirective.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], LinkDirective.prototype, \"role\", void 0);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", String)\n], LinkDirective.prototype, \"tabindex\", void 0);\n__decorate([\n HostBinding('class.k-state-active'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], LinkDirective.prototype, \"activeClass\", null);\nLinkDirective = __decorate([\n Directive({\n selector: '[kendoMenuItemLink]'\n }),\n __metadata(\"design:paramtypes\", [ItemsService])\n], LinkDirective);\n\n/**\n * Represents a directive that can be used in the [`linkTemplate`]({% slug api_menu_itemlinktemplatedirective %})\n * of the items to render the default expand arrow.\n */\nlet ExpandArrowDirective = class ExpandArrowDirective {\n constructor(itemsService) {\n this.itemsService = itemsService;\n this.hostClasses = true;\n this.role = 'presentation';\n }\n get arrowDown() {\n return !this.item.horizontal;\n }\n get arrowRight() {\n return this.item.horizontal && !this.item.rtl;\n }\n get arrowLeft() {\n return this.item.horizontal && this.item.rtl;\n }\n ngOnInit() {\n if (isDevMode() && !this.index) {\n throw new Error('The kendoMenuExpandArrow directive requires the item index to be set.');\n }\n this.item = this.itemsService.get(this.index) || {};\n }\n};\n__decorate([\n Input('kendoMenuExpandArrow'),\n __metadata(\"design:type\", String)\n], ExpandArrowDirective.prototype, \"index\", void 0);\n__decorate([\n HostBinding('class.k-icon'),\n HostBinding('class.k-menu-expand-arrow'),\n __metadata(\"design:type\", Boolean)\n], ExpandArrowDirective.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], ExpandArrowDirective.prototype, \"role\", void 0);\n__decorate([\n HostBinding('class.k-i-arrow-60-down'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ExpandArrowDirective.prototype, \"arrowDown\", null);\n__decorate([\n HostBinding('class.k-i-arrow-60-right'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ExpandArrowDirective.prototype, \"arrowRight\", null);\n__decorate([\n HostBinding('class.k-i-arrow-60-left'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ExpandArrowDirective.prototype, \"arrowLeft\", null);\nExpandArrowDirective = __decorate([\n Directive({\n selector: '[kendoMenuExpandArrow]'\n }),\n __metadata(\"design:paramtypes\", [ItemsService])\n], ExpandArrowDirective);\n\n/**\n * Arguments for the `select` event of the Menu.\n */\nclass MenuSelectEvent extends MenuEvent {\n}\n\nconst ITEM_FIELDS = ['textField', 'urlField', 'iconField', 'disabledField', 'cssClassField', 'cssStyleField', 'separatorField'];\n/**\n * @hidden\n */\nclass BindingDirectiveBase {\n constructor(menu) {\n this.menu = menu;\n }\n ngOnChanges() {\n this.rebind();\n }\n /**\n * Rebinds the Menu items.\n */\n rebind() {\n const fields = this.fields = [];\n for (let idx = 0; idx < ITEM_FIELDS.length; idx++) {\n const inputName = ITEM_FIELDS[idx];\n const inputValue = this[inputName];\n if (inputValue) {\n fields.push({ target: inputName.replace('Field', ''), source: inputValue });\n }\n }\n this.menu.items = this.data ? this.mapItems(this.data) : [];\n }\n}\n\nconst FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\nconst getterCache = {};\n// tslint:disable-next-line:no-string-literal\ngetterCache['undefined'] = (obj) => obj;\n/**\n * @hidden\n */\nconst getter = (field) => {\n if (getterCache[field]) {\n return getterCache[field];\n }\n const fields = [];\n field.replace(FIELD_REGEX, (_match, index, indexAccessor, name) => {\n fields.push(index !== undefined ? index : (indexAccessor || name));\n });\n getterCache[field] = (obj) => {\n let result = obj;\n for (let idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n};\n/**\n * @hidden\n */\nconst last = (arr) => arr[arr.length - 1];\n\nconst getField = (field, level) => Array.isArray(field) ? field[level] || last(field) : field;\n/* tslint:disable:no-input-rename */\n/**\n * A directive that converts the provided hierarchical data to [MenuItems]({% slug api_menu_menuitem %}) and binds them to the Menu.\n */\nlet HierarchyBindingDirective = class HierarchyBindingDirective extends BindingDirectiveBase {\n constructor(menu) {\n super(menu);\n }\n mapItems(items, level = 0) {\n return items.map((item) => {\n const menuItem = this.createItem(item, level);\n const children = this.getChildren(item, level);\n if (children) {\n menuItem.items = this.mapItems(children, level + 1);\n }\n return menuItem;\n });\n }\n createItem(item, level) {\n const result = { data: item };\n const fields = this.fields;\n for (let idx = 0; idx < fields.length; idx++) {\n const { target, source } = fields[idx];\n result[target] = getter(getField(source, level))(item);\n }\n return result;\n }\n getChildren(item, level) {\n if (this.childrenField) {\n const field = getField(this.childrenField, level);\n return item[field];\n }\n }\n};\n__decorate([\n Input(\"kendoMenuHierarchyBinding\"),\n __metadata(\"design:type\", Array)\n], HierarchyBindingDirective.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HierarchyBindingDirective.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HierarchyBindingDirective.prototype, \"urlField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HierarchyBindingDirective.prototype, \"iconField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HierarchyBindingDirective.prototype, \"disabledField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HierarchyBindingDirective.prototype, \"cssClassField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HierarchyBindingDirective.prototype, \"cssStyleField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HierarchyBindingDirective.prototype, \"separatorField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HierarchyBindingDirective.prototype, \"childrenField\", void 0);\nHierarchyBindingDirective = __decorate([\n Directive({\n exportAs: 'kendoMenuHierarchyBinding',\n selector: '[kendoMenuHierarchyBinding]'\n }),\n __metadata(\"design:paramtypes\", [MenuBase])\n], HierarchyBindingDirective);\n\n/* tslint:disable:no-input-rename */\n/**\n * A directive that converts the provided flat data to [MenuItems]({% slug api_menu_menuitem %}) and binds them to the Menu.\n */\nlet FlatBindingDirective = class FlatBindingDirective extends BindingDirectiveBase {\n constructor(menu) {\n super(menu);\n }\n mapItems(items) {\n if (!this.idField || !this.parentIdField) {\n return items.map(item => this.createItem(item));\n }\n const result = [];\n const map = {};\n for (let idx = 0; idx < items.length; idx++) {\n const item = items[idx];\n const menuItem = this.createItem(item);\n const id = getter(this.idField)(item);\n const parentId = getter(this.parentIdField)(item);\n if (parentId === null || parentId === undefined) {\n result.push(menuItem);\n }\n else {\n const parent = map[parentId] = map[parentId] || {};\n parent.items = parent.items || [];\n parent.items.push(menuItem);\n }\n if (map[id]) {\n menuItem.items = map[id].items;\n }\n map[id] = menuItem;\n }\n return result;\n }\n createItem(dataItem) {\n const result = { data: dataItem };\n const fields = this.fields;\n for (let idx = 0; idx < fields.length; idx++) {\n const { source, target } = fields[idx];\n result[target] = getter(source)(dataItem);\n }\n return result;\n }\n};\n__decorate([\n Input(\"kendoMenuFlatBinding\"),\n __metadata(\"design:type\", Array)\n], FlatBindingDirective.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatBindingDirective.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatBindingDirective.prototype, \"urlField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FlatBindingDirective.prototype, \"iconField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatBindingDirective.prototype, \"disabledField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatBindingDirective.prototype, \"cssClassField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatBindingDirective.prototype, \"cssStyleField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatBindingDirective.prototype, \"separatorField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatBindingDirective.prototype, \"idField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatBindingDirective.prototype, \"parentIdField\", void 0);\nFlatBindingDirective = __decorate([\n Directive({\n exportAs: 'kendoMenuFlatBinding',\n selector: '[kendoMenuFlatBinding]'\n }),\n __metadata(\"design:paramtypes\", [MenuBase])\n], FlatBindingDirective);\n\nconst COMPONENT_EXPORTS = [\n MenuComponent,\n MenuItemComponent,\n ItemTemplateDirective,\n ItemLinkTemplateDirective,\n ItemContentTemplateDirective,\n HierarchyBindingDirective,\n FlatBindingDirective,\n LinkDirective,\n ExpandArrowDirective\n];\nconst COMPONENT_DIRECTIVES = [\n ...COMPONENT_EXPORTS,\n ListComponent,\n ItemComponent\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Menu component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Menu module\n * import { MenuModule } from '@progress/kendo-angular-menu';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, BrowserAnimationsModule, MenuModule], // import Menu module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet MenuModule = class MenuModule {\n};\nMenuModule = __decorate([\n NgModule({\n declarations: [COMPONENT_DIRECTIVES],\n exports: [COMPONENT_EXPORTS],\n imports: [PopupModule, CommonModule]\n })\n], MenuModule);\n\n/**\n * Arguments for the `open` and `close` events of the ContextMenu.\n */\nclass ContextMenuEvent {\n}\n\n/**\n * Arguments for the `select` event of the ContextMenu.\n */\nclass ContextMenuSelectEvent extends ContextMenuEvent {\n}\n\n/**\n * Arguments for the `popupOpen` and `popupClose` events of the ContextMenu.\n */\nclass ContextMenuPopupEvent extends PreventableEvent {\n}\n\n/**\n * Represents a template for the content of the ContextMenu. To define a template, nest an ``\n * tag with the `kendoContextMenuTemplate` directive inside a `` component\n * ([more information and examples]({% slug templates_contextmenu %})).\n *\n * {% meta height:200 %}\n * {% embed_file context-menu/template/app.component.ts preview %}\n * {% embed_file shared/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% endmeta %}\n */\nlet ContextMenuTemplateDirective = class ContextMenuTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nContextMenuTemplateDirective = __decorate([\n Directive({\n selector: '[kendoContextMenuTemplate]'\n }),\n __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], ContextMenuTemplateDirective);\n\n/**\n * @hidden\n */\nlet ContextMenuItemsService = class ContextMenuItemsService {\n constructor(contextService) {\n this.contextService = contextService;\n }\n get(index) {\n if (this.contextService.items) {\n return this.contextService.items.get(index);\n }\n }\n};\nContextMenuItemsService = __decorate([\n Injectable(),\n __metadata(\"design:paramtypes\", [ContextMenuService])\n], ContextMenuItemsService);\n\n/**\n * @hidden\n */\nlet ContextMenuTargetService = class ContextMenuTargetService {\n /**\n * @hidden\n */\n constructor() {\n this.targets = [];\n }\n add(target) {\n this.targets.push(target);\n }\n remove(target) {\n const index = this.targets.indexOf(target);\n this.targets.splice(index, 1);\n }\n find(targetElement) {\n return this.targets.find(target => target.element === targetElement);\n }\n};\nContextMenuTargetService = __decorate([\n Injectable()\n], ContextMenuTargetService);\n\n/**\n * Specifies a container for the [targets]({% slug api_menu_contextmenutargetdirective %}) of the ContextMenu.\n */\nlet ContextMenuTargetContainerDirective = class ContextMenuTargetContainerDirective {\n /**\n * @hidden\n */\n constructor(elementRef, targetService) {\n this.targetService = targetService;\n if (elementRef) {\n this.element = elementRef.nativeElement;\n }\n }\n};\nContextMenuTargetContainerDirective = __decorate([\n Directive({\n selector: '[kendoContextMenuTargetContainer]',\n exportAs: 'kendoContextMenuTargetContainer',\n providers: [ContextMenuTargetService]\n }),\n __metadata(\"design:paramtypes\", [ElementRef, ContextMenuTargetService])\n], ContextMenuTargetContainerDirective);\n\n/**\n * @hidden\n */\nconst TARGET_CLASS = 'k-contextmenu-target';\n/**\n * Specifies a [target]({% slug api_menu_contextmenutargetdirective %}) for the ContextMenu\n * ([see example]({% slug target_contextmenu %}#toc-directives)).\n */\nlet ContextMenuTargetDirective = class ContextMenuTargetDirective {\n constructor(elementRef, targetService) {\n this.targetService = targetService;\n /**\n * @hidden\n */\n this.hostClass = true;\n if (elementRef) {\n this.element = elementRef.nativeElement;\n }\n targetService.add(this);\n }\n ngOnDestroy() {\n this.targetService.remove(this);\n }\n};\n__decorate([\n Input('kendoContextMenuTarget'),\n __metadata(\"design:type\", Object)\n], ContextMenuTargetDirective.prototype, \"data\", void 0);\n__decorate([\n HostBinding(`class.${TARGET_CLASS}`),\n __metadata(\"design:type\", Boolean)\n], ContextMenuTargetDirective.prototype, \"hostClass\", void 0);\nContextMenuTargetDirective = __decorate([\n Directive({\n selector: '[kendoContextMenuTarget]',\n exportAs: 'kendoContextMenuTarget'\n }),\n __metadata(\"design:paramtypes\", [ElementRef, ContextMenuTargetService])\n], ContextMenuTargetDirective);\n\nvar ContextMenuComponent_1;\nconst CONTEXT_MENU = 'contextmenu';\nconst DEFAULT_ANCHOR_ALIGN = { horizontal: 'left', vertical: 'bottom' };\nconst DEFAULT_POPUP_ALIGN = { horizontal: 'left', vertical: 'top' };\nconst DEFAULT_COLLISION = { horizontal: 'fit', vertical: 'flip' };\nconst preventDefault = e => e.preventDefault();\nconst ɵ1$2 = bodyFactory;\n/**\n * Represents the [Kendo UI ContextMenu component for Angular]({% slug overview_contextmenu %}).\n *\n * {% meta height:200 %}\n * {% embed_file context-menu/basic/app.component.ts preview %}\n * {% embed_file shared/contextmenu-items.ts %}\n * {% embed_file shared/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% endmeta %}\n */\nlet ContextMenuComponent = ContextMenuComponent_1 = class ContextMenuComponent extends MenuBase {\n constructor(popupService, service, ngZone, renderer) {\n super();\n this.popupService = popupService;\n this.service = service;\n this.ngZone = ngZone;\n this.renderer = renderer;\n /**\n * Specifies the event on which the ContextMenu will open ([see example]({% slug showon_contextmenu %})).\n * Accepts the name of a native DOM event. Defaults to `contextmenu` which opens the ContextMenu for the target element.\n */\n this.showOn = CONTEXT_MENU;\n /**\n * Indicates that the ContextMenu will be aligned to the target or to the `filter` element (if specified).\n */\n this.alignToAnchor = false;\n /**\n * Specifies if the Menu will be vertically rendered ([see example]({% slug orientation_contextmenu %})).\n * @default true\n */\n this.vertical = true;\n /**\n * Fires when the Menu is opened ([see example]({% slug target_contextmenu %}#toc-changing-items-for-specified-targets)).\n */\n this.popupOpen = new EventEmitter();\n /**\n * Fires when the Menu is closed.\n */\n this.popupClose = new EventEmitter();\n /**\n * Fires when a Menu item is selected.\n */\n this.select = new EventEmitter();\n /**\n * Fires when a Menu item is opened.\n */\n this.open = new EventEmitter();\n /**\n * Fires when a Menu item is closed.\n */\n this.close = new EventEmitter();\n this.service.owner = this;\n this.popupKeyDownHandler = this.popupKeyDownHandler.bind(this);\n }\n /**\n * Hides the ContextMenu.\n */\n hide() {\n this.removePopup();\n }\n /**\n * Shows the ContextMenu for the specified target.\n * @param target - The offset or the target element for which the ContextMenu will open.\n */\n show(target) {\n if (!target) {\n return;\n }\n const showTarget = target;\n this.removePopup();\n if (defined(showTarget.left) && defined(showTarget.top)) {\n this.createPopup({ offset: showTarget });\n }\n else {\n this.currentTarget = showTarget.nativeElement || showTarget;\n this.createPopup({ anchor: this.currentTarget });\n }\n }\n ngOnChanges(changes) {\n if (changes.target || changes.showOn) {\n this.bindShowHandler();\n }\n }\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n const closeClickSubscription = this.renderer.listen('document', 'mousedown', (e) => {\n if (this.popupRef && !closest(e.target, node => node === this.popupRef.popupElement) && this.service.leaveMenu(e)) {\n this.closePopup(e);\n }\n });\n const closeBlurSubscription = this.renderer.listen('window', 'blur', (e) => {\n if (this.popupRef) {\n this.closePopup(e);\n }\n });\n this.closeSubscription = () => {\n closeClickSubscription();\n closeBlurSubscription();\n };\n });\n }\n ngOnDestroy() {\n if (this.closeSubscription) {\n this.closeSubscription();\n this.closeSubscription = null;\n }\n this.unbindShowHandler();\n this.removePopup();\n }\n /**\n * @hidden\n */\n emitMenuEvent(name, args) {\n args.target = this.currentTarget;\n args.sender = this;\n this[name].emit(args);\n if (name === 'select' && !args.hasContent) {\n this.closeAndFocus(args.originalEvent);\n }\n }\n bindShowHandler() {\n this.unbindShowHandler();\n this.ngZone.runOutsideAngular(() => {\n const element = this.targetElement();\n if (!element) {\n return;\n }\n const eventName = this.showOn || CONTEXT_MENU;\n this.showSubscription = this.renderer.listen(element, this.showOn || CONTEXT_MENU, (e) => {\n this.showContextMenu(e, element);\n });\n if (eventName === CONTEXT_MENU) {\n this.keydownSubscription = this.renderer.listen(element, 'keydown', (e) => {\n if (e.shiftKey && e.keyCode === Keys.F10) {\n this.showContextMenu(e, element);\n }\n });\n }\n });\n }\n showContextMenu(e, element) {\n const filter = this.targetFilter();\n let currentTarget = element;\n if (filter) {\n currentTarget = findInContainer(e.target, filter, element);\n if (currentTarget && currentTarget !== e.target && isFocusable(e.target)) {\n return;\n }\n if (currentTarget && this.directiveTarget) {\n currentTarget = this.target.targetService.find(currentTarget);\n }\n }\n if (!currentTarget) {\n this.closePopup(e);\n return;\n }\n this.ngZone.run(() => {\n if (!this.closePopup(e)) {\n this.currentTarget = currentTarget;\n this.openPopup(e);\n }\n });\n }\n unbindShowHandler() {\n if (this.showSubscription) {\n this.showSubscription();\n this.showSubscription = null;\n }\n if (this.keydownSubscription) {\n this.keydownSubscription();\n this.keydownSubscription = null;\n }\n }\n targetElement() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.directiveTarget = false;\n let target = this.target;\n if (typeof target === 'string') {\n target = document.querySelector(target); // maybe querySelectorAll?\n }\n else if (target && target.nativeElement) {\n target = target.nativeElement;\n }\n else if (target instanceof ContextMenuTargetContainerDirective) {\n target = target.element;\n this.directiveTarget = true;\n }\n return target;\n }\n targetFilter() {\n if (this.directiveTarget) {\n return `.${TARGET_CLASS}`;\n }\n return this.filter;\n }\n closePopup(e) {\n if (!this.popupRef) {\n return;\n }\n return this.popupAction('popupClose', e, () => {\n this.removePopup();\n });\n }\n removePopup() {\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n this.currentTarget = null;\n }\n if (this.popupSubscriptions) {\n this.popupSubscriptions();\n this.popupSubscriptions = null;\n }\n }\n openPopup(e) {\n this.popupAction('popupOpen', e, () => {\n e.preventDefault();\n let anchor, offset;\n if (this.alignToAnchor || e.type === 'keydown') {\n anchor = this.currentTargetElement;\n }\n else {\n offset = { left: e.pageX, top: e.pageY };\n }\n this.createPopup({ anchor, offset });\n });\n }\n createPopup(options) {\n this.popupRef = this.popupService.open(Object.assign({\n animate: defined(this.popupAnimate) ? this.popupAnimate : true,\n appendTo: this.appendTo,\n collision: this.collision || DEFAULT_COLLISION,\n popupAlign: this.popupAlign || DEFAULT_POPUP_ALIGN,\n anchorAlign: this.anchorAlign || DEFAULT_ANCHOR_ALIGN,\n content: this.contentTemplate ? this.contentTemplate.templateRef : this.defaultContentTemplate,\n popupClass: 'k-menu-popup'\n }, options));\n const element = this.popupRef.popupElement;\n this.renderer.addClass(element, 'k-context-menu-popup');\n this.renderer.setAttribute(element, 'tabindex', '-1');\n this.renderer.setStyle(element, 'outline', '0'); //possibly move to styles\n if (this.ariaLabel) {\n this.renderer.setAttribute(element, 'aria-label', this.ariaLabel);\n }\n this.activeTarget = this.currentTargetElement === document.activeElement;\n this.ngZone.runOutsideAngular(() => {\n const unbindKeyDown = this.renderer.listen(element, 'keydown', this.popupKeyDownHandler);\n const unbindContextmenu = this.renderer.listen(element, 'contextmenu', preventDefault);\n this.popupSubscriptions = () => {\n unbindKeyDown();\n unbindContextmenu();\n };\n });\n element.focus();\n }\n closeAndFocus(e) {\n const currentTarget = this.currentTargetElement;\n if (!this.closePopup(e) && this.activeTarget) {\n currentTarget.focus();\n }\n }\n popupKeyDownHandler(e) {\n const element = this.popupRef.popupElement;\n if (e.keyCode === Keys.Escape && (hasClass(e.target, 'k-menu-item') || e.target === element)) {\n this.closeAndFocus(e);\n }\n else if (e.target === element) {\n this.service.keydown.emit(e);\n }\n }\n popupAction(name, originalEvent, callback) {\n const emitter = this[name];\n let prevented = false;\n if (hasObservers(emitter)) {\n this.ngZone.run(() => {\n const args = new ContextMenuPopupEvent({\n originalEvent: originalEvent,\n sender: this,\n target: this.currentTarget\n });\n emitter.emit(args);\n if (!args.isDefaultPrevented()) {\n callback();\n }\n prevented = args.isDefaultPrevented();\n });\n }\n else {\n callback();\n }\n return prevented;\n }\n get currentTargetElement() {\n return this.directiveTarget && this.currentTarget ? this.currentTarget.element : this.currentTarget;\n }\n};\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ContextMenuComponent.prototype, \"showOn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ContextMenuComponent.prototype, \"target\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ContextMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ContextMenuComponent.prototype, \"alignToAnchor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ContextMenuComponent.prototype, \"vertical\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ContextMenuComponent.prototype, \"popupAnimate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ContextMenuComponent.prototype, \"popupAlign\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ContextMenuComponent.prototype, \"anchorAlign\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ContextMenuComponent.prototype, \"collision\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ViewContainerRef)\n], ContextMenuComponent.prototype, \"appendTo\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ContextMenuComponent.prototype, \"ariaLabel\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ContextMenuComponent.prototype, \"popupOpen\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ContextMenuComponent.prototype, \"popupClose\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ContextMenuComponent.prototype, \"select\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ContextMenuComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ContextMenuComponent.prototype, \"close\", void 0);\n__decorate([\n ContentChild(ContextMenuTemplateDirective, { static: false }),\n __metadata(\"design:type\", ContextMenuTemplateDirective)\n], ContextMenuComponent.prototype, \"contentTemplate\", void 0);\n__decorate([\n ViewChild('default', { static: false }),\n __metadata(\"design:type\", TemplateRef)\n], ContextMenuComponent.prototype, \"defaultContentTemplate\", void 0);\nContextMenuComponent = ContextMenuComponent_1 = __decorate([\n Component({\n exportAs: 'kendoContextMenu',\n providers: [\n ContextMenuService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.contextmenu'\n },\n {\n provide: ItemsService,\n useClass: ContextMenuItemsService\n },\n {\n provide: MenuBase,\n useExisting: forwardRef(() => ContextMenuComponent_1)\n },\n PopupService,\n {\n provide: POPUP_CONTAINER,\n useFactory: ɵ1$2\n }\n ],\n selector: 'kendo-contextmenu',\n template: `\n \n \n \n `\n }),\n __metadata(\"design:paramtypes\", [PopupService,\n ContextMenuService,\n NgZone,\n Renderer2])\n], ContextMenuComponent);\n\nconst COMPONENT_DIRECTIVES$1 = [\n ContextMenuComponent,\n ContextMenuTemplateDirective,\n ContextMenuTargetDirective,\n ContextMenuTargetContainerDirective\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the ContextMenu component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the ContextMenu module\n * import { ContextMenuModule } from '@progress/kendo-angular-menu';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, BrowserAnimationsModule, ContextMenuModule], // import ContextMenuModule module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet ContextMenuModule = class ContextMenuModule {\n};\nContextMenuModule = __decorate([\n NgModule({\n declarations: [COMPONENT_DIRECTIVES$1],\n exports: [COMPONENT_DIRECTIVES$1, MenuModule],\n imports: [PopupModule, CommonModule, MenuModule]\n })\n], ContextMenuModule);\n\n/**\n * A [module]({{ site.data.urls.angular['ngmoduleapi'] }}) that includes the Menu and ContextMenu components and directives.\n * Imports the MenusModule into your application [root module]({{ site.data.urls.angular['ngmodules'] }}#angular-modularity)\n * or any other sub-module that will use the Menu and ContextMenu components.\n *\n * @example\n * ```ts-no-run\n * import { NgModule } from '@angular/core';\n * import { BrowserModule } from '@angular/platform-browser';\n * import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n * import { MenusModule } from '@progress/kendo-angular-menu';\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * bootstrap: [AppComponent],\n * declarations: [AppComponent],\n * imports: [BrowserModule, BrowserAnimationsModule, MenusModule]\n * })\n * export class AppModule {\n * }\n * ```\n */\nlet MenusModule = class MenusModule {\n};\nMenusModule = __decorate([\n NgModule({\n exports: [MenuModule, ContextMenuModule]\n })\n], MenusModule);\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NODE_INDEX, ContextMenuItemsService, ContextMenuTargetContainerDirective, ContextMenuTargetDirective, ContextMenuTargetService, BindingDirectiveBase, MenuBase, PreventableEvent, ActionsService, HoverService, ItemsService, NavigationService, bodyFactory, MenuComponent, ListComponent, ItemComponent, LinkDirective, ExpandArrowDirective, MenuItemComponent, MenuEvent, MenuSelectEvent, ItemContentTemplateDirective, ItemTemplateDirective, ItemLinkTemplateDirective, HierarchyBindingDirective, FlatBindingDirective, MenuModule, ContextMenuEvent, ContextMenuSelectEvent, ContextMenuPopupEvent, ContextMenuTemplateDirective, ContextMenuComponent, ContextMenuModule, ContextMenuService, MenusModule };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2021 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { __decorate, __metadata, __param } from 'tslib';\nimport { Input, Component, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, HostBinding, Directive, Optional, TemplateRef, NgZone, EventEmitter, ContentChild, Output, ElementRef, NgModule } from '@angular/core';\nimport { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { Subject, Subscription } from 'rxjs';\nimport { DropDownListComponent, DropDownListModule } from '@progress/kendo-angular-dropdowns';\nimport { NumericTextBoxComponent, NumericTextBoxModule } from '@progress/kendo-angular-inputs';\nimport { Keys, anyChanged, ResizeSensorComponent, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @hidden\n */\nclass PreventableEvent {\n constructor() {\n this.prevented = false;\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * If the event is prevented by any of its subscribers, returns `true`.\n *\n * @returns `true` if the default action was prevented. Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * Arguments for the `pageSizeChange` event. The `pageSizeChange` event fires when the page size\n * is changed from the UI. If you cancel the event, the change is prevented.\n */\nclass PageSizeChangeEvent extends PreventableEvent {\n /**\n * Constructs the event arguments for the `pageSizeChange` event.\n * @param newPageSize - The newly selected page size.\n * @hidden\n */\n constructor(newPageSize) {\n super();\n this.newPageSize = newPageSize;\n }\n}\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"firstPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"lastPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"previousPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"nextPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"page\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pageNumberInputTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"itemsPerPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"of\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"items\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"selectPage\", void 0);\n\nvar CustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug pager_globalization %}#toc-messages)).\n */\nlet CustomMessagesComponent = CustomMessagesComponent_1 = class CustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nCustomMessagesComponent = CustomMessagesComponent_1 = __decorate([\n Component({\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-datapager-messages',\n template: ``\n }),\n __metadata(\"design:paramtypes\", [LocalizationService])\n], CustomMessagesComponent);\n\n/**\n * @hidden\n */\nclass PagerContextService {\n constructor() {\n this.changes = new Subject();\n this.pageChange = new Subject();\n this.pageSizeChange = new Subject();\n }\n get currentPage() {\n return this.skip / this.pageSize;\n }\n notifyChanges(changes) {\n this.total = changes.total;\n this.pageSize = changes.pageSize;\n this.skip = changes.skip;\n this.changes.next(changes);\n }\n changePage(page) {\n this.pageChange.next({ skip: page * this.pageSize, take: this.pageSize });\n }\n changePageSize(event) {\n this.pageSizeChange.next(event);\n }\n nextPage() {\n const nextPage = this.currentPage + 1;\n if (nextPage * this.pageSize <= this.total) {\n this.changePage(nextPage);\n }\n }\n prevPage() {\n const prevPage = this.currentPage - 1;\n if (prevPage * this.pageSize >= 0) {\n this.changePage(prevPage);\n }\n }\n}\n\n/**\n * @hidden\n */\nclass PagerElementComponent {\n constructor(localization, pagerContext, cd) {\n this.localization = localization;\n this.pagerContext = pagerContext;\n this.cd = cd;\n this.total = this.pagerContext.total;\n this.skip = this.pagerContext.skip;\n this.pageSize = this.pagerContext.pageSize;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerElementComponent\n */\n get currentPage() {\n return Math.floor((this.skip || 0) / this.pageSize) + 1;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerElementComponent\n */\n get totalPages() {\n return Math.ceil((this.total || 0) / this.pageSize);\n }\n /**\n * @hidden\n *\n * @param {string} key\n * @returns {string}\n *\n * @memberOf PagerElementComponent\n */\n textFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n *\n * @param {number} page\n *\n * @memberOf PagerElementComponent\n */\n changePage(page) {\n this.pagerContext.changePage(page);\n return false;\n }\n /**\n * @hidden\n *\n * @memberOf PagerElementComponent\n */\n ngOnInit() {\n this.subscriptions = this.pagerContext.changes.subscribe(this.onChanges.bind(this));\n this.subscriptions.add(this.localization.changes.subscribe(() => this.cd.markForCheck()));\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n}\n\n/**\n * Displays buttons for navigating to the first and to the previous page ([see example]({% slug pager_settings %})).\n */\nlet PagerPrevButtonsComponent = class PagerPrevButtonsComponent extends PagerElementComponent {\n constructor(localization, pagerContext, cd) {\n super(localization, pagerContext, cd);\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerPrevButtonsComponent\n */\n get disabled() {\n return this.currentPage === 1 || !this.total;\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n};\nPagerPrevButtonsComponent = __decorate([\n Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-datapager-prev-buttons',\n template: `\n \n \n \n \n \n \n `\n }),\n __metadata(\"design:paramtypes\", [LocalizationService,\n PagerContextService,\n ChangeDetectorRef])\n], PagerPrevButtonsComponent);\n\n/**\n * Displays a drop-down list for the page size selection ([see example]({% slug pager_settings %})).\n */\nlet PagerPageSizesComponent = class PagerPageSizesComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n this._pageSizes = [];\n }\n get pageSizes() {\n return this._pageSizes;\n }\n /**\n * The page sizes collection. Can contain numbers and [PageSizeItem]({% slug api_pager_pagesizeitem %}) objects.\n *\n * @example\n * {% meta height:400 %}\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n *
    \n * {{item.ProductID}}. \n * {{item.ProductName}}\n *
    \n * \n * \n * \n * \n * \n * `\n * })\n * class AppComponent {\n * public data: any[] = products;\n * public pagedData = [];\n * public skip = 0;\n * public pageSize = 2;\n * public total = products.length;\n * public pagesizes = [{text: 'One', value: 1}, {text: 'Two', value: 2}, {text: 'All', value : 'all'}];\n *\n * public ngOnInit() {\n * this.pageData();\n * }\n *\n * public onPageChange(e) {\n * this.skip = e.skip;\n * this.pageSize = e.take;\n * this.pageData();\n * }\n *\n * private pageData() {\n * this.pagedData = this.data.slice(this.skip, this.skip + this.pageSize);\n * }\n * }\n *\n * const products = [{\n * 'ProductID' : 1,\n * 'ProductName' : \"Chai\",\n * 'SupplierID' : 1,\n * 'CategoryID' : 1,\n * 'QuantityPerUnit' : \"10 boxes x 20 bags\",\n * 'UnitPrice' : 18.0000,\n * 'UnitsInStock' : 39,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 10,\n * 'Discontinued' : false\n *\n * }, {\n * 'ProductID' : 2,\n * 'ProductName' : \"Chang\",\n * 'SupplierID' : 1,\n * 'CategoryID' : 1,\n * 'QuantityPerUnit' : \"24 - 12 oz bottles\",\n * 'UnitPrice' : 19.0000,\n * 'UnitsInStock' : 17,\n * 'UnitsOnOrder' : 40,\n * 'ReorderLevel' : 25,\n * 'Discontinued' : false\n * }, {\n * 'ProductID' : 3,\n * 'ProductName' : \"Aniseed Syrup\",\n * 'SupplierID' : 1,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"12 - 550 ml bottles\",\n * 'UnitPrice' : 10.0000,\n * 'UnitsInStock' : 13,\n * 'UnitsOnOrder' : 70,\n * 'ReorderLevel' : 25,\n * 'Discontinued' : false\n * }, {\n * 'ProductID' : 4,\n * 'ProductName' : \"Chef Anton\\'s Cajun Seasoning\",\n * 'SupplierID' : 2,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"48 - 6 oz jars\",\n * 'UnitPrice' : 22.0000,\n * 'UnitsInStock' : 53,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 0,\n * 'Discontinued' : false\n * }, {\n * 'ProductID' : 5,\n * 'ProductName' : \"Chef Anton\\'s Gumbo Mix\",\n * 'SupplierID' : 2,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"36 boxes\",\n * 'UnitPrice' : 21.3500,\n * 'UnitsInStock' : 0,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 0,\n * 'Discontinued' : true\n * }, {\n * 'ProductID' : 6,\n * 'ProductName' : \"Grandma\\'s Boysenberry Spread\",\n * 'SupplierID' : 3,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"12 - 8 oz jars\",\n * 'UnitPrice' : 25.0000,\n * 'UnitsInStock' : 120,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 25,\n * 'Discontinued' : false\n * }];\n * ```\n * {% endmeta %}\n */\n set pageSizes(pageSizes) {\n let normalizedItems = [];\n pageSizes.forEach(item => {\n if (typeof item === 'number') {\n normalizedItems.push({\n text: item.toString(),\n value: item\n });\n }\n else {\n normalizedItems.push(item);\n }\n });\n if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {\n normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];\n }\n this._pageSizes = normalizedItems;\n }\n /**\n * @hidden\n *\n * @readonly\n */\n get classes() {\n return true;\n }\n ngAfterViewInit() {\n this.dropDownList.wrapper.nativeElement.setAttribute('aria-label', this.textFor('itemsPerPage'));\n }\n /**\n * @hidden\n */\n pageSizeChange(value, dropdownlist) {\n const event = new PageSizeChangeEvent(value);\n this.pagerContext.changePageSize(event);\n if (event.isDefaultPrevented()) {\n dropdownlist.writeValue(this.pageSize);\n }\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;\n this.cd.markForCheck();\n }\n};\n__decorate([\n ViewChild('dropdownlist', { static: true }),\n __metadata(\"design:type\", DropDownListComponent)\n], PagerPageSizesComponent.prototype, \"dropDownList\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], PagerPageSizesComponent.prototype, \"pageSizes\", null);\n__decorate([\n HostBinding(\"class.k-pager-sizes\"),\n HostBinding(\"class.k-label\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PagerPageSizesComponent.prototype, \"classes\", null);\nPagerPageSizesComponent = __decorate([\n Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-datapager-page-sizes',\n template: `\n \n {{ textFor('itemsPerPage') }}\n `\n }),\n __metadata(\"design:paramtypes\", [LocalizationService,\n ChangeDetectorRef,\n PagerContextService])\n], PagerPageSizesComponent);\n\n/**\n * Represents the pager template which helps to customize the pager appearance. To define a pager\n * template, nest an `` tag with the `kendoDataPagerTemplate` directive inside ``.\n *\n * The template context provides the following fields:\n * * `currentPage`—The index of the displayed page.\n * * `pageSize`—The value of the current `pageSize`.\n * * `skip`—The current skip value.\n * * `total`—The total number of records.\n * * `totalPages`—The total number of available pages.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * Current page: {{currentPage}}\n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public skip = 0;\n * public pageSize = 10;\n * public total = 100;\n *\n * public onPageChange(e: any): void {\n * this.skip = e.skip;\n * this.pageSize = e.take;\n * }\n * }\n *\n * ```\n */\nlet PagerTemplateDirective = class PagerTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nPagerTemplateDirective = __decorate([\n Directive({\n selector: '[kendoDataPagerTemplate]'\n }),\n __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], PagerTemplateDirective);\n\n/**\n * Displays numeric buttons to enable navigation between the pages.\n */\nlet PagerNumericButtonsComponent = class PagerNumericButtonsComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n this.numbersWrapClass = true;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number[]}\n * @memberOf PagerNumericButtonsComponent\n */\n get buttons() {\n let result = [];\n for (let idx = this.start; idx <= this.end; idx++) {\n result.push(idx);\n }\n return result;\n }\n /**\n * @hidden\n */\n get end() {\n return Math.min((this.start + this.buttonCount) - 1, this.totalPages);\n }\n /**\n * @hidden\n */\n get start() {\n const page = this.currentPage;\n const buttonCount = this.buttonCount;\n if (page > buttonCount) {\n const reminder = (page % buttonCount);\n return (reminder === 0) ? (page - buttonCount) + 1 : (page - reminder) + 1;\n }\n return 1;\n }\n /**\n * @hidden\n */\n pageLabel(num) {\n const pageText = this.textFor('page');\n if (pageText) {\n return pageText + ' ' + num;\n }\n return num.toString();\n }\n /**\n * @hidden\n */\n onSelectChange(e) {\n const target = e.target;\n const valueAsNumber = Number(target.value);\n if (!Number.isNaN(valueAsNumber)) {\n this.changePage(valueAsNumber - 1);\n }\n else {\n if (target.value === 'previousButtons') {\n this.changePage(this.start - 2);\n }\n else {\n this.changePage(this.end);\n }\n }\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n get pageChooserLabel() {\n return this.textFor('selectPage');\n }\n};\n__decorate([\n HostBinding('class.k-pager-numbers-wrap'),\n __metadata(\"design:type\", Boolean)\n], PagerNumericButtonsComponent.prototype, \"numbersWrapClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PagerNumericButtonsComponent.prototype, \"buttonCount\", void 0);\nPagerNumericButtonsComponent = __decorate([\n Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-datapager-numeric-buttons',\n template: `\n \n \n \n \n \n
      \n
    • 1\">\n ...\n
    • \n
    • \n \n {{num}}\n \n
    • \n
    • \n ...\n
    • \n
    \n `\n }),\n __metadata(\"design:paramtypes\", [LocalizationService,\n ChangeDetectorRef,\n PagerContextService])\n], PagerNumericButtonsComponent);\n\n/**\n * Displays buttons for navigating to the next and to the last page ([see example]({% slug pager_settings %})).\n */\nlet PagerNextButtonsComponent = class PagerNextButtonsComponent extends PagerElementComponent {\n constructor(localization, pagerContext, cd) {\n super(localization, pagerContext, cd);\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerNextButtonsComponent\n */\n get disabled() {\n return this.currentPage === this.totalPages || !this.total;\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n};\nPagerNextButtonsComponent = __decorate([\n Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-datapager-next-buttons',\n template: `\n \n \n \n \n \n \n `\n }),\n __metadata(\"design:paramtypes\", [LocalizationService,\n PagerContextService,\n ChangeDetectorRef])\n], PagerNextButtonsComponent);\n\n/**\n * Displays an input element which allows the typing and rendering of page numbers.\n */\nlet PagerInputComponent = class PagerInputComponent extends PagerElementComponent {\n constructor(localization, pagerContext, zone, cd) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n this.zone = zone;\n /**\n * @hidden\n *\n * @param {string} value\n *\n * @memberOf PagerInputComponent\n */\n this.handleKeyDown = (event) => {\n let incomingValue = this.numericInput.value || this.current;\n // tslint:disable:deprecation\n if (event.keyCode === Keys.Enter) {\n event.preventDefault();\n if (incomingValue !== this.current) {\n this.zone.run(() => {\n this.changePage(incomingValue - 1);\n });\n }\n }\n };\n /**\n * @hidden\n *\n * @param {string} value\n *\n * @memberOf PagerInputComponent\n */\n this.handleBlur = () => {\n const inputValue = this.numericInput.value;\n if (!inputValue) {\n this.numericInput.writeValue(this.current);\n return;\n }\n if (inputValue !== this.current) {\n this.zone.run(() => {\n this.changePage(inputValue - 1);\n });\n }\n };\n }\n /**\n * @hidden\n */\n get current() {\n return this.hasPages ? this.currentPage : 0;\n }\n /**\n * @hidden\n */\n get hasPages() {\n return this.totalPages !== 0;\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n};\n__decorate([\n ViewChild(NumericTextBoxComponent, { static: true }),\n __metadata(\"design:type\", NumericTextBoxComponent)\n], PagerInputComponent.prototype, \"numericInput\", void 0);\nPagerInputComponent = __decorate([\n Component({\n selector: 'kendo-datapager-input',\n template: `\n \n {{textFor('page')}}\n \n \n {{textFor('of')}} {{totalPages}}\n \n `\n }),\n __metadata(\"design:paramtypes\", [LocalizationService,\n PagerContextService,\n NgZone,\n ChangeDetectorRef])\n], PagerInputComponent);\n\n/**\n * Displays information about the current page and the total number of records ([see example]({% slug pager_settings %})).\n */\nlet PagerInfoComponent = class PagerInfoComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerInfoComponent\n */\n get maxItems() {\n return Math.min(this.currentPage * this.pageSize, this.total);\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerInfoComponent\n */\n get currentPageText() {\n return this.total ?\n (this.currentPage - 1) * this.pageSize + 1 :\n 0;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerInfoComponent\n */\n get classes() {\n return true;\n }\n onChanges({ total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n};\n__decorate([\n HostBinding(\"class.k-pager-info\"),\n HostBinding(\"class.k-label\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PagerInfoComponent.prototype, \"classes\", null);\nPagerInfoComponent = __decorate([\n Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-datapager-info',\n template: `{{currentPageText}} - {{maxItems}} {{textFor('of')}} {{total}} {{textFor('items')}}`\n }),\n __metadata(\"design:paramtypes\", [LocalizationService,\n ChangeDetectorRef,\n PagerContextService])\n], PagerInfoComponent);\n\n/**\n * @hidden\n */\nconst RESPONSIVE_BREAKPOINT_MEDIUM = 600;\n/**\n * @hidden\n */\nconst RESPONSIVE_BREAKPOINT_LARGE = 768;\n\n/**\n * @hidden\n */\nconst DEFAULT_PAGE_SIZE_VALUES = [5, 10, 20];\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-pager',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1637670632,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'\n};\n\nlet PagerComponent = class PagerComponent {\n constructor(pagerContext, element, localization) {\n this.pagerContext = pagerContext;\n this.element = element;\n this.localization = localization;\n /**\n * Represents the total number of data items in the collection.\n */\n this.total = 0;\n /**\n * Defines the number of data items to be skipped.\n */\n this.skip = 0;\n /**\n * Sets the maximum numeric buttons count before the buttons are collapsed.\n */\n this.buttonCount = 10;\n /**\n * Toggles the information about the current page and the total number of records.\n */\n this.info = true;\n /**\n * Defines the type of the pager.\n */\n this.type = 'numeric';\n /**\n * Toggles the **Previous** and **Next** buttons.\n */\n this.previousNext = true;\n /**\n * Fires when the current page of the Pager is changed ([see example]({% slug overview_pager %}#toc-basic-usage)).\n * You have to handle the event yourself and page the data.\n */\n this.pageChange = new EventEmitter();\n /**\n * Fires when the page size of the Pager is changed.\n * You have to handle the event yourself and page the data.\n * If the event is prevented, the page size will remain unchanged ([see example]({% slug pager_events %})).\n */\n this.pageSizeChange = new EventEmitter();\n this.pagerWrapClass = true;\n this.pagerClass = true;\n this.widgetClass = true;\n this.widgetRole = 'navigation';\n this.subscriptions = new Subscription();\n this._templateContext = {};\n this._pageSizeValues = DEFAULT_PAGE_SIZE_VALUES;\n this.resizeHandler = () => {\n if (this.template) {\n return;\n }\n const element = this.element.nativeElement;\n const width = element.offsetWidth;\n if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {\n element.classList.remove('k-pager-md');\n element.classList.add('k-pager-sm');\n }\n else if (width >= RESPONSIVE_BREAKPOINT_MEDIUM && width < RESPONSIVE_BREAKPOINT_LARGE) {\n element.classList.add('k-pager-md');\n element.classList.remove('k-pager-sm');\n }\n else {\n element.classList.remove('k-pager-md');\n element.classList.remove('k-pager-sm');\n }\n };\n validatePackage(packageMetadata);\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n }\n /**\n * Shows a dropdown for selecting the page size.\n * When set to `true`, the dropdown will contain the default list of options - 5, 10, 20.\n * To customize the list of options, set `pageSizeValues` to an array of the desired values.\n * The array can contain numbers and [PageSizeItem]({% slug api_pager_pagesizeitem %}) objects.\n */\n set pageSizeValues(pageSizeValues) {\n this._pageSizeValues = Array.isArray(pageSizeValues) ? pageSizeValues : pageSizeValues ? DEFAULT_PAGE_SIZE_VALUES : false;\n }\n get dir() {\n return this.direction;\n }\n get totalPages() {\n return Math.ceil((this.total || 0) / this.pageSize);\n }\n get currentPage() {\n return Math.floor((this.skip || 0) / this.pageSize) + 1;\n }\n get pageSizeValues() {\n return this._pageSizeValues;\n }\n get templateContext() {\n const context = this._templateContext;\n context.totalPages = this.totalPages;\n context.total = this.total;\n context.skip = this.skip;\n context.pageSize = this.pageSize;\n context.currentPage = this.currentPage;\n return context;\n }\n ngOnInit() {\n this.subscriptions.add(this.pagerContext.pageChange.subscribe(this.changePage.bind(this)));\n this.subscriptions.add(this.pagerContext.pageSizeChange.subscribe(this.changePageSize.bind(this)));\n this.subscriptions.add(this.resizeSensor.resize.subscribe(() => this.resizeHandler()));\n this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n }));\n }\n ngAfterViewInit() {\n this.resizeHandler();\n }\n ngOnChanges(changes) {\n if (anyChanged([\"pageSize\", \"skip\", \"total\"], changes, false)) {\n this.pagerContext.notifyChanges({\n pageSize: this.pageSize,\n skip: this.skip,\n total: this.total\n });\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n /**\n * @hidden\n */\n changePage(event) {\n this.pageChange.emit(event);\n }\n /**\n * @hidden\n */\n changePageSize(event) {\n this.pageSizeChange.emit(event);\n if (!event.isDefaultPrevented()) {\n if (event.newPageSize === 'all') {\n this.pageChange.emit({ skip: 0, take: this.total });\n }\n else {\n this.pageChange.emit({ skip: 0, take: event.newPageSize });\n }\n }\n }\n /**\n * @hidden\n */\n onPageSizeChange(event) {\n this.pageSizeChange.emit(event);\n if (!event.isDefaultPrevented()) {\n this.pageChange.emit({ skip: this.skip, take: event.newPageSize });\n }\n }\n};\n__decorate([\n ViewChild(ResizeSensorComponent, { static: true }),\n __metadata(\"design:type\", ResizeSensorComponent)\n], PagerComponent.prototype, \"resizeSensor\", void 0);\n__decorate([\n ContentChild(PagerTemplateDirective, { static: true }),\n __metadata(\"design:type\", PagerTemplateDirective)\n], PagerComponent.prototype, \"template\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PagerComponent.prototype, \"total\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PagerComponent.prototype, \"skip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PagerComponent.prototype, \"pageSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PagerComponent.prototype, \"buttonCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PagerComponent.prototype, \"info\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PagerComponent.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], PagerComponent.prototype, \"pageSizeValues\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PagerComponent.prototype, \"previousNext\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], PagerComponent.prototype, \"pageChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], PagerComponent.prototype, \"pageSizeChange\", void 0);\n__decorate([\n HostBinding('class.k-pager-wrap'),\n __metadata(\"design:type\", Boolean)\n], PagerComponent.prototype, \"pagerWrapClass\", void 0);\n__decorate([\n HostBinding('class.k-pager'),\n __metadata(\"design:type\", Boolean)\n], PagerComponent.prototype, \"pagerClass\", void 0);\n__decorate([\n HostBinding('class.k-widget'),\n __metadata(\"design:type\", Boolean)\n], PagerComponent.prototype, \"widgetClass\", void 0);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], PagerComponent.prototype, \"widgetRole\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], PagerComponent.prototype, \"dir\", null);\nPagerComponent = __decorate([\n Component({\n selector: 'kendo-datapager',\n exportAs: 'kendoDataPager',\n providers: [\n LocalizationService,\n PagerContextService\n ],\n template: `\n \n \n \n \n \n \n 0\"\n [buttonCount]=\"buttonCount\">\n \n \n \n \n \n \n \n `\n }),\n __metadata(\"design:paramtypes\", [PagerContextService,\n ElementRef,\n LocalizationService])\n], PagerComponent);\n\nvar LocalizedMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedMessagesDirective = LocalizedMessagesDirective_1 = class LocalizedMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedMessagesDirective = LocalizedMessagesDirective_1 = __decorate([\n Directive({\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ],\n selector: '[kendoDataPagerLocalizedMessages]'\n }),\n __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedMessagesDirective);\n\nconst importedModules = [\n CommonModule,\n NumericTextBoxModule,\n DropDownListModule,\n EventsModule,\n ResizeSensorModule\n];\nconst INTERNAL_COMPONENTS = [\n PagerComponent,\n PagerPrevButtonsComponent,\n PagerNextButtonsComponent,\n PagerNumericButtonsComponent,\n PagerInputComponent,\n PagerInfoComponent,\n PagerPageSizesComponent,\n PagerTemplateDirective,\n LocalizedMessagesDirective,\n CustomMessagesComponent\n];\nconst providers = [\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.pager'\n }\n];\n/**\n * @hidden\n */\nlet PagerModule = class PagerModule {\n static exports() {\n return [\n PagerComponent,\n PagerPrevButtonsComponent,\n PagerNextButtonsComponent,\n PagerNumericButtonsComponent,\n PagerInputComponent,\n PagerInfoComponent,\n PagerPageSizesComponent,\n PagerTemplateDirective\n ];\n }\n};\nPagerModule = __decorate([\n NgModule({\n declarations: [INTERNAL_COMPONENTS],\n exports: [INTERNAL_COMPONENTS],\n imports: [...importedModules],\n providers: [providers]\n })\n], PagerModule);\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { LocalizedMessagesDirective, Messages, PagerContextService, PagerElementComponent, PreventableEvent, PageSizeChangeEvent, CustomMessagesComponent, PagerPrevButtonsComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerNumericButtonsComponent, PagerNextButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerComponent, PagerModule };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { Directive, TemplateRef, Optional, Component, Input, ElementRef, ContentChild, NgModule } from '@angular/core';\nimport { drawDOM, exportPDF } from '@progress/kendo-drawing';\nimport { saveAs } from '@progress/kendo-file-saver';\n\nclass PDFTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nPDFTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoPDFTemplate]'\n },] },\n];\n/** @nocollapse */\nPDFTemplateDirective.ctorParameters = () => [\n { type: TemplateRef, decorators: [{ type: Optional }] }\n];\n\nconst FIELDS = ['bottom', 'left', 'right', 'top'];\n/**\n * Represents the Kendo UI PDFMargin component for Angular.\n */\nclass PDFMarginComponent {\n /**\n * @hidden\n */\n get options() {\n const options = {};\n for (let idx = 0; idx < FIELDS.length; idx++) {\n const field = FIELDS[idx];\n const value = this[field];\n if (typeof value !== 'undefined') {\n options[field] = value;\n }\n }\n return options;\n }\n}\nPDFMarginComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-pdf-export-margin',\n template: ``\n },] },\n];\nPDFMarginComponent.propDecorators = {\n left: [{ type: Input }],\n top: [{ type: Input }],\n right: [{ type: Input }],\n bottom: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nconst compileTemplate = (templateRef) => {\n const context = {};\n let embeddedView = templateRef.createEmbeddedView(context);\n const result = (data) => {\n Object.assign(context, data);\n embeddedView.detectChanges();\n const templateWrap = document.createElement('span');\n embeddedView.rootNodes.forEach((rootNode) => {\n templateWrap.appendChild(rootNode.cloneNode(true));\n });\n return templateWrap;\n };\n result.destroy = () => {\n embeddedView.destroy();\n embeddedView = null;\n };\n return result;\n};\n\n/**\n * Represents the [Kendo UI PDF Export component for Angular]({% slug overview_pdfexport %}).\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n *
    \n * \n *
    \n *\n * \n * Content goes here\n * \n * `\n * })\n * export class AppComponent {\n * }\n * ```\n */\nclass PDFExportComponent {\n constructor(element) {\n this.element = element;\n /**\n * The creator of the PDF document.\n * @default \"Kendo UI PDF Generator\"\n */\n this.creator = 'Kendo UI PDF Generator';\n /**\n * Specifies the name of the exported PDF file.\n * @default \"Export.pdf\"\n */\n this.fileName = 'export.pdf';\n }\n get drawMargin() {\n const marginComponent = this.marginComponent;\n let margin = this.margin;\n if (marginComponent) {\n margin = Object.assign(margin || {}, marginComponent.options);\n }\n return margin;\n }\n /**\n * Saves the content as a PDF file with the specified name.\n * @param fileName - The name of the exported file.\n */\n saveAs(fileName = this.fileName) {\n this.save(this.element.nativeElement, fileName);\n }\n /**\n * Exports the content as a `Group` for further processing.\n *\n * @return - The root group of the exported scene.\n */\n export() {\n return this.exportElement(this.element.nativeElement);\n }\n save(element, fileName) {\n this.exportElement(element)\n .then(group => this.exportGroup(group, this.pdfOptions()))\n .then(dataUri => this.saveDataUri(dataUri, fileName, this.saveOptions()));\n }\n exportElement(element) {\n const promise = this.drawElement(element, this.drawOptions());\n const cleanup = this.cleanup.bind(this);\n promise.then(cleanup, cleanup);\n return promise;\n }\n cleanup() {\n if (this.pageTemplate) {\n this.pageTemplate.destroy();\n delete this.pageTemplate;\n }\n }\n drawOptions() {\n if (this.pageTemplateDirective) {\n this.pageTemplate = compileTemplate(this.pageTemplateDirective.templateRef);\n }\n return {\n avoidLinks: this.avoidLinks,\n forcePageBreak: this.forcePageBreak,\n keepTogether: this.keepTogether,\n margin: this.drawMargin,\n paperSize: this.paperSize,\n landscape: this.landscape,\n repeatHeaders: this.repeatHeaders,\n scale: this.scale,\n template: this.pageTemplate\n };\n }\n pdfOptions() {\n return {\n author: this.author,\n creator: this.creator,\n date: this.date,\n imgDPI: this.imageResolution,\n keywords: this.keywords,\n landscape: this.landscape,\n margin: this.drawMargin,\n multiPage: true,\n paperSize: this.paperSize,\n producer: this.producer,\n subject: this.subject,\n title: this.title\n };\n }\n saveOptions() {\n return {\n forceProxy: this.forceProxy,\n proxyData: this.proxyData,\n proxyTarget: this.proxyTarget,\n proxyURL: this.proxyURL\n };\n }\n drawElement(element, options) {\n return drawDOM(element, options);\n }\n exportGroup(group, options) {\n return exportPDF(group, options);\n }\n saveDataUri(dataUri, fileName, options) {\n saveAs(dataUri, fileName, options);\n }\n}\nPDFExportComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-pdf-export',\n template: `
    `\n },] },\n];\n/** @nocollapse */\nPDFExportComponent.ctorParameters = () => [\n { type: ElementRef }\n];\nPDFExportComponent.propDecorators = {\n author: [{ type: Input }],\n avoidLinks: [{ type: Input }],\n forcePageBreak: [{ type: Input }],\n keepTogether: [{ type: Input }],\n creator: [{ type: Input }],\n date: [{ type: Input }],\n imageResolution: [{ type: Input }],\n fileName: [{ type: Input }],\n forceProxy: [{ type: Input }],\n keywords: [{ type: Input }],\n landscape: [{ type: Input }],\n margin: [{ type: Input }],\n paperSize: [{ type: Input }],\n repeatHeaders: [{ type: Input }],\n scale: [{ type: Input }],\n proxyData: [{ type: Input }],\n proxyURL: [{ type: Input }],\n proxyTarget: [{ type: Input }],\n producer: [{ type: Input }],\n subject: [{ type: Input }],\n title: [{ type: Input }],\n pageTemplateDirective: [{ type: ContentChild, args: [PDFTemplateDirective,] }],\n marginComponent: [{ type: ContentChild, args: [PDFMarginComponent,] }]\n};\n\nconst COMPONENT_DIRECTIVES = [\n PDFExportComponent,\n PDFMarginComponent,\n PDFTemplateDirective\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }}) definition for the PDF Export directive.\n */\nclass PDFExportModule {\n}\nPDFExportModule.decorators = [\n { type: NgModule, args: [{\n declarations: [COMPONENT_DIRECTIVES],\n exports: [COMPONENT_DIRECTIVES]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PDFExportComponent, PDFExportModule, PDFMarginComponent, PDFTemplateDirective, compileTemplate };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { ApplicationRef, Component, ComponentFactoryResolver, ElementRef, EventEmitter, Inject, Injectable, InjectionToken, Injector, Input, NgModule, NgZone, Optional, Output, Renderer2, TemplateRef, ViewChild, isDevMode } from '@angular/core';\nimport { addScroll, align, boundingOffset, getWindowViewPort, offset, parents, positionWithScroll, removeScroll, restrictToView, scrollPosition, siblingContainer } from '@progress/kendo-popup-common';\nimport { ResizeSensorComponent, ResizeSensorModule, hasObservers, isDocumentAvailable } from '@progress/kendo-angular-common';\nimport { from, fromEvent, merge } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\nimport { AnimationBuilder, animate, style } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @hidden\n */\nconst eitherRect = (rect, offset$$1) => {\n if (!rect) {\n return { height: 0, left: offset$$1.left, top: offset$$1.top, width: 0 };\n }\n return rect;\n};\n/**\n * @hidden\n */\n\n/**\n * @hidden\n */\nconst removeStackingOffset = (rect, stackingOffset) => {\n if (!stackingOffset) {\n return rect;\n }\n const result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\nconst isDifferentOffset = (oldOffset, newOffset) => {\n const { left: oldLeft, top: oldTop } = oldOffset;\n const { left: newLeft, top: newTop } = newOffset;\n return Math.abs(oldLeft - newLeft) >= 1 || Math.abs(oldTop - newTop) >= 1;\n};\n/**\n * @hidden\n */\nconst isWindowAvailable = () => {\n return typeof window !== 'undefined';\n};\n/**\n * @hidden\n */\n\n/**\n * @hidden\n */\nconst OVERFLOW_REGEXP = /auto|scroll/;\nconst overflowElementStyle = (element) => {\n return `${element.style.overflow}${element.style.overflowX}${element.style.overflowY}`;\n};\nconst overflowComputedStyle = (element) => {\n const styles = window.getComputedStyle(element);\n return `${styles.overflow}${styles.overflowX}${styles.overflowY}`;\n};\nconst overflowStyle = (element) => {\n return overflowElementStyle(element) || overflowComputedStyle(element);\n};\n/**\n * @hidden\n */\nconst scrollableParents = (element) => {\n const parentElements = [];\n if (!isDocumentAvailable() || !isWindowAvailable()) {\n return parentElements;\n }\n let parent = element.parentElement;\n while (parent) {\n if (OVERFLOW_REGEXP.test(overflowStyle(parent)) || parent.hasAttribute('data-scrollable')) {\n parentElements.push(parent);\n }\n parent = parent.parentElement;\n }\n parentElements.push(window);\n return parentElements;\n};\n/**\n * @hidden\n */\nconst FRAME_DURATION = 1000 / 60; //1000ms divided by 60fps\nfunction memoize(fun) {\n let result;\n let called = false;\n return (...args) => {\n if (called) {\n return result;\n }\n result = fun(...args);\n called = true;\n return result;\n };\n}\n/**\n * @hidden\n */\nconst hasRelativeStackingContext = memoize(() => {\n if (!isDocumentAvailable() && document.body !== null) {\n return false;\n }\n const top = 10;\n const parent = document.createElement(\"div\");\n parent.style.transform = \"matrix(10, 0, 0, 10, 0, 0)\";\n parent.innerHTML = `
    child
    `;\n document.body.appendChild(parent);\n const isDifferent = parent.children[0].getBoundingClientRect().top !== top;\n document.body.removeChild(parent);\n return isDifferent;\n});\n/**\n * @hidden\n */\nconst zIndex = (anchor, container) => {\n if (!anchor || !isDocumentAvailable() || !isWindowAvailable()) {\n return null;\n }\n const sibling = siblingContainer(anchor, container);\n if (!sibling) {\n return null;\n }\n const result = [anchor].concat(parents(anchor, sibling)).reduce((index, p) => {\n const zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;\n const current = parseInt(zIndexStyle, 10);\n return current > index ? current : index;\n }, 0);\n return result ? (result + 1) : null;\n};\n/**\n * @hidden\n */\nconst scaleRect = (rect, scale) => {\n if (!rect || scale === 1) {\n return rect;\n }\n return {\n height: rect.height / scale,\n left: rect.left / scale,\n top: rect.top / scale,\n width: rect.width / scale\n };\n};\n\nconst STYLES = [\n 'font-size',\n 'font-family',\n 'font-stretch',\n 'font-style',\n 'font-weight',\n 'line-height'\n];\n/**\n * @hidden\n */\nclass DOMService {\n addOffset(current, addition) {\n return {\n left: current.left + addition.left,\n top: current.top + addition.top\n };\n }\n addScroll(rect, scroll) {\n return addScroll(rect, scroll);\n }\n align(settings) {\n return align(settings);\n }\n boundingOffset(el) {\n return boundingOffset(this.nativeElement(el));\n }\n getFontStyles(el) {\n const window = this.getWindow();\n if (!window || !el) {\n return [];\n }\n const computedStyles = window.getComputedStyle(this.nativeElement(el));\n return STYLES.map(font => ({ key: font, value: computedStyles[font] }));\n }\n getWindow() {\n return isWindowAvailable() ? window : null;\n }\n hasOffsetParent(el) {\n if (!el) {\n return false;\n }\n return !!this.nativeElement(el).offsetParent;\n }\n offset(el) {\n if (!el) {\n return null;\n }\n return offset(this.nativeElement(el));\n }\n offsetAtPoint(el, currentLocation) {\n if (!el) {\n return null;\n }\n const element = this.nativeElement(el);\n const { left, top, transition } = element.style;\n element.style.transition = 'none';\n element.style.left = `${currentLocation.left}px`;\n element.style.top = `${currentLocation.top}px`;\n const currentOffset = offset(element);\n element.style.left = left;\n element.style.top = top;\n // prevents elements with transition to be animated because of the change\n // tslint:disable-next-line:no-unused-expression\n element.offsetHeight;\n element.style.transition = transition;\n return currentOffset;\n }\n nativeElement(el) {\n if (!el) {\n return null;\n }\n return el.nativeElement || el;\n }\n position(element, popup, scale = 1) {\n if (!element || !popup) {\n return null;\n }\n return positionWithScroll(this.nativeElement(element), this.nativeElement(popup), scale);\n }\n removeScroll(rect, scroll) {\n return removeScroll(rect, scroll);\n }\n restrictToView(settings) {\n return restrictToView(settings);\n }\n scrollPosition(el) {\n return scrollPosition(this.nativeElement(el));\n }\n scrollableParents(el) {\n return scrollableParents(this.nativeElement(el));\n }\n stackingElementOffset(el) {\n const relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return offset(relativeContextElement);\n }\n stackingElementScroll(el) {\n const relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return { x: 0, y: 0 };\n }\n return {\n x: relativeContextElement.scrollLeft,\n y: relativeContextElement.scrollTop\n };\n }\n getRelativeContextElement(el) {\n if (!el || !hasRelativeStackingContext()) {\n return null;\n }\n let parent = this.nativeElement(el).parentElement;\n while (parent) {\n if (window.getComputedStyle(parent).transform !== 'none') {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n }\n useRelativePosition(el) {\n return !!this.getRelativeContextElement(el);\n }\n windowViewPort(el) {\n return getWindowViewPort(this.nativeElement(el));\n }\n zIndex(anchor, container) {\n return zIndex(this.nativeElement(anchor), this.nativeElement(container));\n }\n zoomLevel() {\n if (!isDocumentAvailable() || !isWindowAvailable()) {\n return 1;\n }\n return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2)) || 1;\n }\n isZoomed() {\n return this.zoomLevel() > 1;\n }\n}\nDOMService.decorators = [\n { type: Injectable },\n];\n\n/**\n * Used to set the document scale when using a [scale transform](https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale).\n *\n * The document or container scale is required to compute the popup position correctly. Detecting the scale is not reliable and must be set by providing a value for SCALE. See [Support for Document Scale]({% slug documentscale_popup %}).\n *\n * > Using this token is not necessary for user-applied browser zoom.\n *\n * {% meta height:300 %}\n * {% embed_file scale/app.component.ts preview %}\n * {% embed_file scale/app.module.ts %}\n * {% embed_file scale/main.ts %}\n * {% endmeta %}\n *\n *\n */\nconst SCALE = new InjectionToken('Popup Document Scale');\n\n/**\n * @hidden\n */\nclass AlignService {\n constructor(_dom, scale = 1) {\n this._dom = _dom;\n this.scale = scale;\n }\n alignElement(settings) {\n const { anchor, element, anchorAlign, elementAlign, margin, offset: offset$$1, positionMode } = settings;\n const scale = this.scale || 1;\n const fixedMode = positionMode === 'fixed' || !this._dom.hasOffsetParent(element);\n const anchorRect = fixedMode ? this.absoluteRect(anchor, element, offset$$1, scale) : this.relativeRect(anchor, element, offset$$1, scale);\n const elementRect = scaleRect(this._dom.offset(element), scale);\n const result = this._dom.align({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n elementAlign: elementAlign,\n elementRect: elementRect,\n margin\n });\n return result;\n }\n absoluteRect(anchor, element, offset$$1, scale) {\n const scrollPos = this.elementScrollPosition(anchor, element);\n const rect = eitherRect(this._dom.offset(anchor), offset$$1);\n const stackScale = 2 * scale;\n const stackScroll = this._dom.stackingElementScroll(element);\n if (scale !== 1 && stackScroll) {\n stackScroll.x /= stackScale;\n stackScroll.y /= stackScale;\n }\n const stackOffset = this._dom.stackingElementOffset(element);\n if (scale !== 1 && stackOffset) {\n stackOffset.left /= stackScale;\n stackOffset.top /= stackScale;\n }\n return this._dom.removeScroll(this._dom.addScroll(removeStackingOffset(scaleRect(rect, scale), stackOffset), stackScroll), scrollPos);\n }\n elementScrollPosition(anchor, element) {\n return anchor ? { x: 0, y: 0 } : this._dom.scrollPosition(element);\n }\n relativeRect(anchor, element, offset$$1, scale) {\n const rect = eitherRect(this._dom.position(anchor, element, scale), offset$$1);\n return scaleRect(rect, scale);\n }\n}\nAlignService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nAlignService.ctorParameters = () => [\n { type: DOMService },\n { type: Number, decorators: [{ type: Inject, args: [SCALE,] }, { type: Optional }] }\n];\n\n/**\n * @hidden\n */\nclass PositionService {\n constructor(_dom, scale = 1) {\n this._dom = _dom;\n this.scale = scale;\n }\n positionElement(settings) {\n const { anchor, currentLocation, element, anchorAlign, elementAlign, collisions, margin } = settings;\n const dom = this._dom;\n const scale = this.scale || 1;\n const elementOffset = dom.offsetAtPoint(element, currentLocation);\n const elementRect = scaleRect(elementOffset, scale);\n const anchorOffset = scaleRect(dom.offset(anchor), scale);\n const anchorRect = eitherRect(anchorOffset, currentLocation);\n const viewPort = settings.viewPort || dom.windowViewPort(element);\n viewPort.width = viewPort.width / scale;\n viewPort.height = viewPort.height / scale;\n const result = dom.restrictToView({\n anchorAlign,\n anchorRect,\n collisions,\n elementAlign,\n elementRect,\n margin,\n viewPort\n });\n const offset$$1 = dom.addOffset(currentLocation, result.offset);\n return {\n flip: result.flip,\n flipped: result.flipped,\n offset: offset$$1\n };\n }\n}\nPositionService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nPositionService.ctorParameters = () => [\n { type: DOMService },\n { type: Number, decorators: [{ type: Inject, args: [SCALE,] }, { type: Optional }] }\n];\n\n/**\n * @hidden\n */\nclass ResizeService {\n constructor(_dom, _zone) {\n this._dom = _dom;\n this._zone = _zone;\n }\n subscribe(callback) {\n if (!isDocumentAvailable()) {\n return;\n }\n this._zone.runOutsideAngular(() => {\n this.subscription = fromEvent(this._dom.getWindow(), \"resize\")\n .pipe(auditTime(FRAME_DURATION))\n .subscribe(() => callback());\n });\n }\n unsubscribe() {\n if (!this.subscription) {\n return;\n }\n this.subscription.unsubscribe();\n }\n isUnsubscribed() {\n return this.subscription && this.subscription.closed;\n }\n}\nResizeService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nResizeService.ctorParameters = () => [\n { type: DOMService },\n { type: NgZone }\n];\n\n/**\n * @hidden\n */\nconst THRESHOLD_DIFF = 1;\n/**\n * @hidden\n */\nclass ScrollableService {\n constructor(_dom, _zone) {\n this._dom = _dom;\n this._zone = _zone;\n }\n forElement(element) {\n this.unsubscribe();\n this.element = element;\n return this;\n }\n subscribe(callback) {\n if (!callback || !isDocumentAvailable() || !this.element) {\n return;\n }\n const nativeElement = this._dom.nativeElement(this.element);\n const parents$$1 = this._dom.scrollableParents(this.element);\n this._zone.runOutsideAngular(() => {\n const observables = parents$$1.map(p => fromEvent(p, \"scroll\").pipe(auditTime(FRAME_DURATION)));\n const subscriber = (e) => {\n const target = e.target;\n const isParent = parents$$1.filter(p => p === target).length > 0;\n const isDocument = target === document;\n const isWindow = target === window;\n if (isParent || isDocument || isWindow) {\n callback(this.isVisible(nativeElement, target));\n }\n };\n this.subscription = merge(...observables).subscribe(subscriber);\n });\n }\n unsubscribe() {\n if (!this.subscription) {\n return;\n }\n this.subscription.unsubscribe();\n }\n isVisible(elem, container) {\n const elemRect = this._dom.boundingOffset(elem);\n const containerRect = this._dom.boundingOffset(container);\n if (THRESHOLD_DIFF < (containerRect.top - elemRect.bottom)) {\n return false;\n }\n if (THRESHOLD_DIFF < (elemRect.top - containerRect.bottom)) {\n return false;\n }\n if (THRESHOLD_DIFF < (elemRect.left - containerRect.right)) {\n return false;\n }\n if (THRESHOLD_DIFF < (containerRect.left - elemRect.right)) {\n return false;\n }\n return true;\n }\n}\nScrollableService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nScrollableService.ctorParameters = () => [\n { type: DOMService },\n { type: NgZone }\n];\n\nconst LEFT = 'left';\nconst RIGHT = 'right';\nconst DOWN = 'down';\nconst UP = 'up';\nconst DEFAULT_TYPE = 'slide';\nconst DEFAULT_DURATION = 100;\nconst animationTypes = {};\n/* tslint:disable:object-literal-sort-keys */\nanimationTypes.expand = (direction) => {\n const scale = direction === UP || direction === DOWN ? 'scaleY' : 'scaleX';\n const startScale = 0;\n const endScale = 1;\n let origin;\n if (direction === DOWN) {\n origin = 'top';\n }\n else if (direction === LEFT) {\n origin = RIGHT;\n }\n else if (direction === RIGHT) {\n origin = LEFT;\n }\n else {\n origin = 'bottom';\n }\n return {\n start: { transform: `${scale}(${startScale})`, transformOrigin: origin },\n end: { transform: `${scale}(${endScale})` }\n };\n};\nanimationTypes.slide = (direction) => {\n const translate = direction === LEFT || direction === RIGHT ? 'translateX' : 'translateY';\n const start = direction === RIGHT || direction === DOWN ? -100 : 100;\n const end = 0;\n return {\n start: { transform: `${translate}(${start}%)` },\n end: { transform: `${translate}(${end}%)` }\n };\n};\nanimationTypes.fade = () => {\n return {\n start: { opacity: 0 },\n end: { opacity: 1 }\n };\n};\nanimationTypes.zoom = () => {\n const start = 0;\n const end = 1;\n return {\n start: { transform: `scale(${start})` },\n end: { transform: `scale(${end})` }\n };\n};\n/**\n * @hidden\n */\nclass AnimationService {\n constructor(animationBuilder) {\n this.animationBuilder = animationBuilder;\n this.start = new EventEmitter();\n this.end = new EventEmitter();\n }\n play(element, options, flip) {\n if (!this.flip || this.flip.horizontal !== flip.horizontal ||\n this.flip.vertical !== flip.vertical) {\n this.flip = flip;\n const type = options.type || DEFAULT_TYPE;\n const statesFn = animationTypes[type];\n if (statesFn) {\n const direction = this.getDirection(flip, options);\n const states = statesFn(direction);\n this.playStates(element, states, options);\n }\n else if (isDevMode()) {\n throw new Error(`Unsupported animation type: \"${type}\". The supported types are slide, expand, fade and zoom.`);\n }\n }\n }\n ngOnDestroy() {\n this.stopPlayer();\n }\n playStates(element, states, options) {\n this.stopPlayer();\n const duration = options.duration || DEFAULT_DURATION;\n const factory = this.animationBuilder.build([\n style(states.start),\n animate(`${duration}ms ease-in`, style(states.end))\n ]);\n const player = this.player = factory.create(element);\n player.onDone(() => {\n this.end.emit();\n this.stopPlayer();\n });\n this.start.emit();\n player.play();\n }\n getDirection(flip, options) {\n let direction = options.direction || DOWN;\n if (flip.horizontal) {\n if (direction === LEFT) {\n direction = RIGHT;\n }\n else if (direction === RIGHT) {\n direction = LEFT;\n }\n }\n if (flip.vertical) {\n if (direction === DOWN) {\n direction = UP;\n }\n else if (direction === UP) {\n direction = DOWN;\n }\n }\n return direction;\n }\n stopPlayer() {\n if (this.player) {\n this.player.destroy();\n this.player = null;\n }\n }\n}\nAnimationService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nAnimationService.ctorParameters = () => [\n { type: AnimationBuilder }\n];\n\nconst DEFAULT_OFFSET = { left: -10000, top: 0 };\nconst ANIMATION_CONTAINER = 'k-animation-container';\nconst ANIMATION_CONTAINER_FIXED = 'k-animation-container-fixed';\n/**\n * Represents the [Kendo UI Popup component for Angular]({% slug overview_popup %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * Popup content!\n * \n * `\n * })\n * class AppComponent {\n * public show: boolean = false;\n * }\n * ```\n */\nclass PopupComponent {\n constructor(container, _alignService, domService, _positionService, _resizeService, _scrollableService, animationService, _renderer, _zone) {\n this.container = container;\n this._alignService = _alignService;\n this.domService = domService;\n this._positionService = _positionService;\n this._resizeService = _resizeService;\n this._scrollableService = _scrollableService;\n this.animationService = animationService;\n this._renderer = _renderer;\n this._zone = _zone;\n /**\n * Controls the Popup animation. By default, the opening and closing animations\n * are enabled ([see example]({% slug animations_popup %})).\n */\n this.animate = true;\n /**\n * Specifies the anchor pivot point\n * ([see example]({% slug alignmentpositioning_popup %}#toc-positioning)).\n */\n this.anchorAlign = { horizontal: 'left', vertical: 'bottom' };\n /**\n * Configures the collision behavior of the Popup\n * ([see example]({% slug viewportboundarydetection_popup %})).\n */\n this.collision = { horizontal: 'fit', vertical: 'flip' };\n /**\n * Specifies the pivot point of the Popup\n * ([see example]({% slug alignmentpositioning_popup %}#toc-positioning)).\n */\n this.popupAlign = { horizontal: 'left', vertical: 'top' };\n /**\n * Controls whether the component will copy the `anchor` font styles.\n */\n this.copyAnchorStyles = false;\n /**\n * Specifies the position mode of the component. By default, the Popup uses fixed positioning.\n * To make the Popup acquire absolute positioning, set this option to `absolute`.\n *\n * > If you need to support mobile browsers with the zoom option,\n * use the `absolute` positioning of the Popup.\n *\n * @example\n * ```html\n * \n * ```\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n *
    \n * Position mode:\n * \n * \n *
    \n *
    \n * Append to\n * \n * \n * \n *
    \n *
    \n *
    \n *
    \n * \n * \n *
      \n *
    • Item1
    • \n *
    • Item2
    • \n *
    • Item3
    • \n *
    \n *
    \n * Bottom/Right\n *
    \n * \n *
      \n *
    • Item1
    • \n *
    • Item2
    • \n *
    • Item3
    • \n *
    \n *
    \n * Bottom/Right\n *
    \n * \n *
      \n *
    • Item1
    • \n *
    • Item2
    • \n *
    • Item3
    • \n *
    \n *
    \n *
    \n * `\n * })\n * class AppComponent {\n * public checked: number = 3;\n * public mode: string = 'absolute';\n * public show: boolean = true;\n * }\n * ```\n */\n this.positionMode = 'fixed';\n /**\n * Specifies the absolute position of the element\n * ([see example]({% slug alignmentpositioning_popup %}#toc-aligning-to-absolute-points)).\n * The Popup opens next to that point. The Popup pivot point is defined by the `popupAlign` configuration option.\n * The boundary detection is applied by using the window viewport.\n */\n this.offset = DEFAULT_OFFSET;\n /**\n * Fires when the anchor is scrolled outside the screen boundaries.\n * ([see example]({% slug closing_popup %}#toc-after-leaving-the-viewport)).\n */\n this.anchorViewportLeave = new EventEmitter();\n /**\n * Fires after the component is closed.\n */\n this.close = new EventEmitter();\n /**\n * Fires after the component is opened and the opening animation ends.\n */\n this.open = new EventEmitter();\n /**\n * Fires after the component is opened and the Popup is positioned.\n */\n this.positionChange = new EventEmitter();\n this.resolvedPromise = Promise.resolve(null);\n this.initialCheck = true;\n this._renderer.addClass(container.nativeElement, ANIMATION_CONTAINER);\n this.updateFixedClass();\n }\n ngOnInit() {\n this.reposition = this.reposition.bind(this);\n this._resizeService.subscribe(this.reposition);\n this.animationSubscriptions = this.animationService.start.subscribe(this.onAnimationStart.bind(this));\n this.animationSubscriptions.add(this.animationService.end.subscribe(this.onAnimationEnd.bind(this)));\n this._scrollableService.forElement(this.anchor || this.container).subscribe(this.onScroll.bind(this));\n this.currentOffset = DEFAULT_OFFSET;\n this.setZIndex();\n this.copyFontStyles();\n this.updateFixedClass();\n }\n ngOnChanges(changes) {\n if (changes.copyAnchorStyles) {\n this.copyFontStyles();\n }\n if (changes.positionMode) {\n this.updateFixedClass();\n }\n }\n ngAfterViewInit() {\n this.reposition();\n if (!this.animate) {\n this.resolvedPromise.then(() => {\n this.onAnimationEnd();\n });\n }\n }\n ngAfterViewChecked() {\n if (this.initialCheck) {\n this.initialCheck = false;\n return;\n }\n this._zone.runOutsideAngular(() => {\n // workarounds https://github.com/angular/angular/issues/19094\n // uses promise because it is executed synchronously after the content is updated\n // does not use onStable in case the current zone is not the angular one.\n this.unsubscribeReposition();\n this.repositionSubscription = from(this.resolvedPromise)\n .subscribe(this.reposition);\n });\n }\n ngOnDestroy() {\n this.anchorViewportLeave.complete();\n this.positionChange.complete();\n this.close.emit();\n this.close.complete();\n this._resizeService.unsubscribe();\n this._scrollableService.unsubscribe();\n this.animationSubscriptions.unsubscribe();\n this.unsubscribeReposition();\n }\n /**\n * @hidden\n */\n onResize() {\n this.reposition();\n }\n onAnimationStart() {\n this._renderer.removeClass(this.container.nativeElement, 'k-animation-container-shown');\n }\n onAnimationEnd() {\n this._renderer.addClass(this.container.nativeElement, 'k-animation-container-shown');\n this.open.emit();\n this.open.complete();\n }\n get currentOffset() {\n return this._currentOffset;\n }\n set currentOffset(offset$$1) {\n this.setContainerStyle('left', `${offset$$1.left}px`);\n this.setContainerStyle('top', `${offset$$1.top}px`);\n this._currentOffset = offset$$1;\n }\n setZIndex() {\n if (this.anchor) {\n this.setContainerStyle('z-index', String(this.domService.zIndex(this.anchor, this.container)));\n }\n }\n reposition() {\n if (!isDocumentAvailable()) {\n return;\n }\n const { flip, offset: offset$$1 } = this.position();\n if (!this.currentOffset || isDifferentOffset(this.currentOffset, offset$$1)) {\n this.currentOffset = offset$$1;\n if (hasObservers(this.positionChange)) {\n this._zone.run(() => this.positionChange.emit({ offset: offset$$1, flip }));\n }\n }\n if (this.animate) {\n this.animationService.play(this.contentContainer.nativeElement, this.animate, flip);\n }\n this.resizeSensor.acceptSize();\n }\n position() {\n const alignedOffset = this._alignService.alignElement({\n anchor: this.anchor,\n anchorAlign: this.anchorAlign,\n element: this.container,\n elementAlign: this.popupAlign,\n margin: this.margin,\n offset: this.offset,\n positionMode: this.positionMode\n });\n return this._positionService.positionElement({\n anchor: this.anchor,\n anchorAlign: this.anchorAlign,\n collisions: this.collision,\n currentLocation: alignedOffset,\n element: this.container,\n elementAlign: this.popupAlign,\n margin: this.margin\n });\n }\n onScroll(isInViewPort) {\n const hasLeaveObservers = hasObservers(this.anchorViewportLeave);\n if (isInViewPort || !hasLeaveObservers) {\n this.reposition();\n }\n else if (hasLeaveObservers) {\n this._zone.run(() => {\n this.anchorViewportLeave.emit();\n });\n }\n }\n copyFontStyles() {\n if (!this.anchor || !this.copyAnchorStyles) {\n return;\n }\n this.domService.getFontStyles(this.anchor)\n .forEach(s => this.setContainerStyle(s.key, s.value));\n }\n updateFixedClass() {\n const action = this.positionMode === 'fixed' ? 'addClass' : 'removeClass';\n this._renderer[action](this.container.nativeElement, ANIMATION_CONTAINER_FIXED);\n }\n setContainerStyle(name, value) {\n this._renderer.setStyle(this.container.nativeElement, name, value);\n }\n unsubscribeReposition() {\n if (this.repositionSubscription) {\n this.repositionSubscription.unsubscribe();\n }\n }\n}\nPopupComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendo-popup',\n providers: [AlignService, AnimationService, DOMService, PositionService, ResizeService, ScrollableService],\n selector: 'kendo-popup',\n template: `\n
    \n \n \n \n \n
    \n `\n },] },\n];\n/** @nocollapse */\nPopupComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: AlignService },\n { type: DOMService },\n { type: PositionService },\n { type: ResizeService },\n { type: ScrollableService },\n { type: AnimationService },\n { type: Renderer2 },\n { type: NgZone }\n];\nPopupComponent.propDecorators = {\n animate: [{ type: Input }],\n anchor: [{ type: Input }],\n anchorAlign: [{ type: Input }],\n collision: [{ type: Input }],\n popupAlign: [{ type: Input }],\n copyAnchorStyles: [{ type: Input }],\n popupClass: [{ type: Input }],\n positionMode: [{ type: Input }],\n offset: [{ type: Input }],\n margin: [{ type: Input }],\n anchorViewportLeave: [{ type: Output }],\n close: [{ type: Output }],\n open: [{ type: Output }],\n positionChange: [{ type: Output }],\n contentContainer: [{ type: ViewChild, args: ['container',] }],\n resizeSensor: [{ type: ViewChild, args: [ResizeSensorComponent,] }]\n};\n\nconst removeElement = (element) => {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n};\n/**\n * Used to inject the Popup container. If not provided, the first root component of\n * the application is used.\n *\n * > The `POPUP_CONTAINER` can be used only with the [`PopupService`]({% slug service_popup %}) class.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Popup module\n * import { PopupModule, POPUP_CONTAINER } from '@progress/kendo-angular-popup';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { ElementRef, NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, PopupModule], // import Popup module\n * bootstrap: [AppComponent],\n * providers: [{\n * provide: POPUP_CONTAINER,\n * useFactory: () => {\n * //return the container ElementRef, where the popup will be injected\n * return { nativeElement: document.body } as ElementRef;\n * }\n * }]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n * ```\n */\nconst POPUP_CONTAINER = new InjectionToken('Popup Container');\n/**\n * A service for opening Popup components dynamically\n * ([see example]({% slug service_popup %})).\n *\n * @export\n * @class PopupService\n */\nclass PopupService {\n constructor(applicationRef, componentFactoryResolver, injector, container) {\n this.applicationRef = applicationRef;\n this.componentFactoryResolver = componentFactoryResolver;\n this.injector = injector;\n this.container = container;\n }\n /**\n * Gets the root view container into which the component will be injected.\n *\n * @returns {ComponentRef}\n */\n get rootViewContainer() {\n // https://github.com/angular/angular/blob/4.0.x/packages/core/src/application_ref.ts#L571\n const rootComponents = this.applicationRef.components || [];\n if (rootComponents[0]) {\n return rootComponents[0];\n }\n throw new Error(`\n View Container not found! Inject the POPUP_CONTAINER or define a specific ViewContainerRef via the appendTo option.\n See http://www.telerik.com/kendo-angular-ui/components/popup/api/POPUP_CONTAINER/ for more details.\n `);\n }\n /**\n * Sets or gets the HTML element of the root component container.\n *\n * @returns {HTMLElement}\n */\n get rootViewContainerNode() {\n return this.container ? this.container.nativeElement : this.getComponentRootNode(this.rootViewContainer);\n }\n /**\n * Opens a Popup component. Created Popups are mounted\n * in the DOM directly in the root application component.\n *\n * @param {PopupSettings} options - The options which define the Popup.\n * @returns {ComponentRef} - A reference to the Popup object.\n *\n * @example\n *\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * Popup content\n * \n * \n * `\n * })\n * export class AppComponent {\n * public popupRef: PopupRef;\n *\n * constructor( private popupService: PopupService ) {}\n *\n * public open(anchor: ElementRef, template: TemplateRef): void {\n * if (this.popupRef) {\n * this.popupRef.close();\n * this.popupRef = null;\n * return;\n * }\n *\n * this.popupRef = this.popupService.open({\n * anchor: anchor,\n * content: template\n * });\n * }\n * }\n * ```\n */\n open(options = {}) {\n const { component, nodes } = this.contentFrom(options.content);\n const popupComponentRef = this.appendPopup(nodes, options.appendTo);\n const popupInstance = popupComponentRef.instance;\n this.projectComponentInputs(popupComponentRef, options);\n popupComponentRef.changeDetectorRef.detectChanges();\n if (component) {\n component.changeDetectorRef.detectChanges();\n }\n const popupElement = this.getComponentRootNode(popupComponentRef);\n return {\n close: () => {\n if (component) {\n component.destroy();\n }\n popupComponentRef.destroy();\n // Angular will not remove the element unless the change detection is triggered\n removeElement(popupElement);\n },\n content: component,\n popup: popupComponentRef,\n popupAnchorViewportLeave: popupInstance.anchorViewportLeave,\n popupClose: popupInstance.close,\n popupElement: popupElement,\n popupOpen: popupInstance.open,\n popupPositionChange: popupInstance.positionChange\n };\n }\n appendPopup(nodes, container) {\n const popupComponentRef = this.createComponent(PopupComponent, nodes, container);\n if (!container) {\n this.rootViewContainerNode.appendChild(this.getComponentRootNode(popupComponentRef));\n }\n return popupComponentRef;\n }\n /**\n * Gets the HTML element for a component reference.\n *\n * @param {ComponentRef} componentRef\n * @returns {HTMLElement}\n */\n getComponentRootNode(componentRef) {\n return componentRef.location.nativeElement;\n }\n /**\n * Gets the `ComponentFactory` instance by its type.\n *\n * @param {*} componentClass\n * @param {*} nodes\n * @returns {ComponentRef}\n */\n getComponentFactory(componentClass) {\n return this.componentFactoryResolver.resolveComponentFactory(componentClass);\n }\n /**\n * Creates a component reference from a `Component` type class.\n *\n * @param {*} componentClass\n * @param {*} nodes\n * @returns {ComponentRef}\n */\n createComponent(componentClass, nodes, container) {\n const factory = this.getComponentFactory(componentClass);\n if (container) {\n return container.createComponent(factory, undefined, this.injector, nodes);\n }\n else {\n const component = factory.create(this.injector, nodes);\n this.applicationRef.attachView(component.hostView);\n return component;\n }\n }\n /**\n * Projects the inputs on the component.\n *\n * @param {ComponentRef} component\n * @param {*} options\n * @returns {ComponentRef}\n */\n projectComponentInputs(component, options) {\n Object.getOwnPropertyNames(options)\n .filter(prop => prop !== 'content' || options.content instanceof TemplateRef)\n .map((prop) => {\n component.instance[prop] = options[prop];\n });\n return component;\n }\n /**\n * Gets the component and the nodes to append from the `content` option.\n *\n * @param {*} content\n * @returns {any}\n */\n contentFrom(content) {\n if (!content || content instanceof TemplateRef) {\n return { component: null, nodes: [[]] };\n }\n const component = this.createComponent(content);\n const nodes = component ? [component.location.nativeElement] : [];\n return {\n component: component,\n nodes: [\n nodes // \n ]\n };\n }\n}\nPopupService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nPopupService.ctorParameters = () => [\n { type: ApplicationRef },\n { type: ComponentFactoryResolver },\n { type: Injector },\n { type: ElementRef, decorators: [{ type: Inject, args: [POPUP_CONTAINER,] }, { type: Optional }] }\n];\n\nconst POPUP_DIRECTIVES = [PopupComponent];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Popup component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Popup module\n * import { PopupModule } from '@progress/kendo-angular-popup';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, PopupModule], // import Popup module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass PopupModule {\n}\nPopupModule.decorators = [\n { type: NgModule, args: [{\n declarations: [POPUP_DIRECTIVES],\n entryComponents: [POPUP_DIRECTIVES],\n exports: [POPUP_DIRECTIVES],\n imports: [CommonModule, ResizeSensorModule],\n providers: [PopupService]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AlignService, AnimationService, DOMService, PositionService, ResizeService, ScrollableService, PopupService, POPUP_CONTAINER, PopupComponent, PopupModule, SCALE };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { Injectable, NgZone, Directive, Inject, forwardRef, ElementRef, Renderer2, Input, HostBinding, TemplateRef, EventEmitter, Component, ChangeDetectorRef, ContentChildren, ViewChildren, ViewChild, Output, NgModule } from '@angular/core';\nimport { Subject, merge } from 'rxjs';\nimport { isDocumentAvailable } from '@progress/kendo-angular-common';\nimport { filter, tap, take, switchMap } from 'rxjs/operators';\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport Draggable from '@telerik/kendo-draggable';\nimport { CommonModule } from '@angular/common';\n\nconst NODE_NAME_PREDICATES = {};\nconst NODE_ATTR_PREDICATES = {};\nconst focusableRegex = /^(?:a|input|select|option|textarea|button|object)$/i;\n/**\n * @hidden\n */\nconst matchesNodeName = (nodeName) => {\n if (!NODE_NAME_PREDICATES[nodeName]) {\n NODE_NAME_PREDICATES[nodeName] = (element) => String(element.nodeName).toLowerCase() === nodeName.toLowerCase();\n }\n return NODE_NAME_PREDICATES[nodeName];\n};\n/**\n * @hidden\n */\nconst matchesNodeAttr = (nodeAttr) => {\n if (!NODE_ATTR_PREDICATES[nodeAttr]) {\n NODE_ATTR_PREDICATES[nodeAttr] = (element) => element.hasAttribute ? element.hasAttribute(nodeAttr) : false;\n }\n return NODE_ATTR_PREDICATES[nodeAttr];\n};\n/**\n * @hidden\n */\nconst closest = (node, predicate) => {\n while (node && !predicate(node)) {\n node = node.parentNode;\n }\n return node;\n};\n/**\n * Returns an object specifiying whether there is a DraggableDirective under the cursor.\n * @hidden\n */\nconst draggableFromPoint = (x, y) => {\n if (!isDocumentAvailable()) {\n return;\n }\n let el = document.elementFromPoint(x, y);\n if (!el) {\n return;\n }\n const isDraggable = el.hasAttribute(\"kendoDraggable\");\n const isChild = closest(el, matchesNodeAttr(\"kendoDraggable\")) !== null;\n const parentDraggable = closest(el, matchesNodeAttr(\"kendoDraggable\"));\n const index = parentDraggable ? parseInt(parentDraggable.getAttribute(\"data-sortable-index\"), 10) : -1;\n return {\n element: el,\n index: index,\n isDraggable: isDraggable,\n isDraggableChild: isChild,\n parentDraggable: parentDraggable,\n rect: el.getBoundingClientRect()\n };\n};\n/**\n * Returns the DraggableDirective under the cursor.\n * @hidden\n */\nconst draggableFromEvent = (event, sortable) => {\n let target;\n if (event.changedTouches) {\n const touch = event.changedTouches[0];\n target = draggableFromPoint(touch.clientX, touch.clientY);\n }\n else {\n target = draggableFromPoint(event.clientX, event.clientY);\n }\n // TODO: refactor sortable. Add draggable getter\n return sortable.draggables.toArray()[target ? target.index : -1];\n};\n/**\n * @hidden\n */\nconst isFocusable = (element) => {\n if (element.tagName) {\n const tagName = element.tagName.toLowerCase();\n const tabIndex = element.getAttribute('tabIndex');\n const skipTab = tabIndex === '-1';\n let focusable = tabIndex !== null && !skipTab;\n if (focusableRegex.test(tagName)) {\n focusable = !element.disabled && !skipTab;\n }\n return focusable;\n }\n return false;\n};\nconst toClassList = (classNames) => String(classNames).trim().split(' ');\n/**\n * @hidden\n */\nconst hasClasses = (element, classNames) => {\n const namesList = toClassList(classNames);\n return Boolean(toClassList(element.className).find((className) => namesList.indexOf(className) >= 0));\n};\nconst isSortable = matchesNodeName('kendo-sortable');\n/**\n * @hidden\n */\nconst widgetTarget = (target) => {\n const element = closest(target, node => hasClasses(node, 'k-widget') || isSortable(node));\n return element && !isSortable(element);\n};\nconst hasRelativeStackingContext = () => {\n if (!isDocumentAvailable()) {\n return false;\n }\n const top = 10;\n const parent = document.createElement(\"div\");\n parent.style.transform = \"matrix(10, 0, 0, 10, 0, 0)\";\n parent.innerHTML = `
    child
    `;\n document.body.appendChild(parent);\n const isDifferent = parent.children[0].getBoundingClientRect().top !== top;\n document.body.removeChild(parent);\n return isDifferent;\n};\nconst HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext();\n/**\n * @hidden\n */\nconst relativeContextElement = (element) => {\n if (!element || !HAS_RELATIVE_STACKING_CONTEXT) {\n return null;\n }\n let node = element.parentElement;\n while (node) {\n if (window.getComputedStyle(node).transform !== 'none') {\n return node;\n }\n node = node.parentElement;\n }\n};\n\nconst allowDrag = (e) => {\n const target = e.originalEvent.target;\n return target.hasAttribute('data-sortable-item') || !(isFocusable(target) || widgetTarget(target));\n};\n/**\n * The service that provides the drag-and-drop functionality for\n * transferring items between Sortable components within the same page.\n *\n */\nclass SortableService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n /**\n * Specifies the Draggable item that is currently being moved.\n */\n this.activeDraggable = null;\n /**\n * Specifies the Draggable item from which the dragging started.\n */\n this.originDraggable = null;\n /**\n * @hidden\n */\n this.targetSortable = null;\n /**\n * Specifies the Draggable item that last emitted an event.\n */\n this.lastDraggable = null;\n /**\n * @hidden\n */\n this.onPressSubject = new Subject();\n /**\n * @hidden\n */\n this.onDragSubject = new Subject();\n /**\n * @hidden\n */\n this.onReleaseSubject = new Subject();\n this.source = null;\n this._target = null;\n this.sortableCounter = 0;\n this.sortableRegister = {};\n if (!isDocumentAvailable()) {\n return;\n }\n this.subscriptions = this.onPressSubject.pipe(filter(allowDrag), tap(press => {\n this.targetSortable = this.getSortableComponentFromTouch(press);\n }), filter(_ => Boolean(this.targetSortable)), tap(press => {\n this.onReleaseSubject.pipe(take(1)).subscribe(event => this.release(event));\n this.pressArgs = press;\n if (press.isTouch) {\n press.originalEvent.preventDefault();\n }\n }), switchMap(_drag => this.onDragSubject.pipe(filter(_ => Boolean(this.targetSortable)), //stop further events if dragStart is prevented\n tap((e) => this.drag(e))))).subscribe();\n }\n /**\n * Specifies the `SortableComponent` instance under the currently dragged item.\n */\n set target(target) {\n this._target = target;\n }\n get target() {\n return this._target;\n }\n /**\n * @hidden\n */\n onPress(e) {\n this.onPressSubject.next(e);\n }\n /**\n * @hidden\n */\n onDrag(e) {\n this.onDragSubject.next(e);\n }\n /**\n * @hidden\n */\n onRelease(e) {\n this.onReleaseSubject.next(e);\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n /**\n * Registers a `SortableComponent` with which the service operates.\n *\n * @param sortableComponent - The `SortableComponent`.\n * @return - The unique key that the current `SortableComponent` gets when registered.\n */\n registerComponent(sortableComponent) {\n const id = this.sortableCounter.toString();\n this.sortableRegister[id] = sortableComponent;\n this.sortableCounter++;\n return id;\n }\n /**\n * Removes a `SortableComponent` from the registered `SortableComponents` with which the service operates.\n *\n * @param key - The key of the `SortableComponent` which will be removed from the register.\n * Obtained when `registerComponent` is called.\n */\n unregisterComponent(key) {\n this.sortableRegister[key] = null;\n }\n /**\n * Sets the `SortableComponent` as a source component. When dragging an item from one Sortable to another,\n * the source component is the one from which the item originates.\n *\n * @param sortable - The `SortableComponent`.\n */\n setSource(sortable) {\n this.source = sortable;\n }\n /**\n * Returns the source `SortableComponent` from which\n * an item is dragged to other Sortable components.\n *\n * @return - The `SourceComponent`.\n */\n getSource() {\n return this.source;\n }\n /**\n * The method that finds the `SortableComponent` which is registered to\n * the `SortableService` by using the arguments of the `touch` event.\n *\n * @param touch - A Touch-Object of the `Touch` type interface.\n * Represents a single contact point (finger or stylus)\n * on a touch-sensitive device (touchscreen or trackpad).\n *\n * @return { component: SortableComponent, index: number } - An object\n * where the component is the `SortableComponent` that owns the item\n * and the index is the index of the touched item.\n */\n getSortableComponentFromTouch(touch) {\n if (!isDocumentAvailable()) {\n return { component: undefined, index: undefined };\n }\n let realTarget = document.elementFromPoint(touch.clientX, touch.clientY);\n while (realTarget) {\n const id = realTarget.getAttribute('data-sortable-id');\n const index = realTarget.getAttribute('data-sortable-index');\n if (id) {\n const targetSortable = this.sortableRegister[id];\n if (targetSortable) {\n return { component: targetSortable, index: parseInt(index, 10) };\n }\n }\n realTarget = realTarget.parentElement;\n }\n }\n start() {\n const pressArgs = this.pressArgs;\n if (pressArgs) {\n this.pressArgs = null;\n const startTarget = draggableFromEvent(pressArgs, this.targetSortable.component);\n if (this.targetSortable.component.startDrag({ target: startTarget, originalEvent: pressArgs })) {\n this.targetSortable = null;\n return true;\n }\n }\n }\n release(event) {\n if (this.source) {\n this.ngZone.run(() => {\n if (this.targetSortable) {\n const dropTarget = draggableFromEvent(event, this.targetSortable.component);\n this.source.endDrag({ target: dropTarget, originalEvent: event });\n }\n this.source.positionHintFromEvent(null);\n this.source.markForCheck();\n });\n }\n this.targetSortable = null;\n this.pressArgs = null;\n }\n drag(event) {\n this.ngZone.run(() => {\n if (this.start()) {\n return;\n }\n this.source.positionHintFromEvent(event);\n const sortable = this.getSortableComponentFromTouch(event);\n if (!sortable || sortable && sortable.component !== this.target) {\n if (this.target) {\n this.target.leave({ target: undefined, originalEvent: event });\n }\n else if (this.source !== this.target) {\n this.source.leave({ target: undefined, originalEvent: event });\n }\n }\n if (sortable && sortable.component) {\n const draggable = draggableFromEvent(event, sortable.component);\n sortable.component.drag({ target: draggable, originalEvent: event });\n }\n this.source.markForCheck();\n });\n }\n}\nSortableService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nSortableService.ctorParameters = () => [\n { type: NgZone }\n];\n\n/**\n * @hidden\n */\nclass DraggableDirective {\n constructor(\n /* tslint:disable:no-forward-ref */\n parent, el, renderer) {\n this.parent = parent;\n this.el = el;\n this.renderer = renderer;\n }\n get _focused() {\n return this.disabled ? false : (this.index === this.parent.activeIndex);\n }\n get _disabled() {\n return this.disabled;\n }\n get display() {\n return this.hidden ? \"none\" : this._display;\n }\n set display(display) {\n this._display = display;\n }\n ngOnInit() {\n const nativeElement = this.el.nativeElement;\n this.display = nativeElement.style.display;\n if (nativeElement) { // Remove the inline styles after a few releases of the themes with the style.\n this.renderer.setStyle(nativeElement, 'user-select', 'none');\n this.renderer.setStyle(nativeElement, '-ms-user-select', 'none');\n this.renderer.setStyle(nativeElement, '-moz-user-select', 'none');\n this.renderer.setStyle(nativeElement, '-webkit-user-select', 'none');\n }\n }\n}\nDraggableDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoDraggable]'\n },] },\n];\n/** @nocollapse */\nDraggableDirective.ctorParameters = () => [\n { type: SortableComponent, decorators: [{ type: Inject, args: [forwardRef(() => SortableComponent),] }] },\n { type: ElementRef },\n { type: Renderer2 }\n];\nDraggableDirective.propDecorators = {\n index: [{ type: Input }],\n hidden: [{ type: Input }],\n disabled: [{ type: Input }],\n _focused: [{ type: HostBinding, args: ['class.k-state-focused',] }],\n _disabled: [{ type: HostBinding, args: ['attr.aria-disabled',] }],\n display: [{ type: HostBinding, args: ['style.display',] }]\n};\n\n//TODO: RENAME FILE AND UPDATE EXPORTS AND MODULES\n/**\n * @hidden\n */\nclass ItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nItemTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoSortableItemTemplate]'\n },] },\n];\n/** @nocollapse */\nItemTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n/**\n * @hidden\n */\nclass PlaceholderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nPlaceholderTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoSortablePlaceholderTemplate]'\n },] },\n];\n/** @nocollapse */\nPlaceholderTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * Defines an event whose default action can be prevented\n * by calling the `preventDefault` method.\n *\n * @hidden\n */\nclass PreventableEvent {\n constructor() {\n this.prevented = false;\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses\n * the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * If the event was prevented\n * by any of its subscribers, returns `true`.\n *\n * @returns `true` if the default action was prevented. Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * The `navigate` event is emitted when using the keyboard arrows.\n */\nclass NavigateEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(options) {\n super();\n Object.assign(this, options);\n }\n}\n\n/**\n * The arguments for the `DraggableDirective` events.\n * @hidden\n */\nclass DraggableEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(options) {\n super();\n Object.assign(this, options);\n }\n}\n\n/**\n * Arguments for the `dragStart` event.\n */\nclass DragStartEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(options) {\n super();\n Object.assign(this, options);\n }\n}\n/**\n * Arguments for the `dragOver` event.\n */\nclass DragOverEvent extends DragStartEvent {\n /**\n * @hidden\n */\n constructor(options) {\n super(options);\n Object.assign(this, options);\n }\n}\n/**\n * Arguments for the `dragEnd` event.\n */\nclass DragEndEvent extends DragOverEvent {\n /**\n * @hidden\n */\n constructor(options) {\n super(options);\n Object.assign(this, options);\n }\n}\n\n/**\n * Represents the [Kendo UI Sortable component for Angular]({% slug overview_sortable %}).\n *\n * {% embed_file sortable-api/app.component.ts %}\n * {% embed_file shared/app.module.ts preview %}\n * {% embed_file shared/main.ts hidden %}\n */\n/**\n * Represents the Kendo UI Sortable component for Angular.\n */\nclass SortableComponent {\n constructor(ngZone, localization, changeDetector, wrapper, sortableService) {\n this.ngZone = ngZone;\n this.localization = localization;\n this.changeDetector = changeDetector;\n /**\n * Specifies the tab index of the Sortable component.\n */\n this.tabIndex = null;\n /**\n * Enables or disables the [keyboard navigation]({% slug keyboard_navigation_sortable %}).\n * The default value is `false`.\n */\n this.navigable = false;\n /**\n * Enables or disables the built-in animations.\n * The default value is `false`.\n */\n this.animation = false;\n /**\n * Sets an array of integers, which represent the indexes of the disabled items from the data array\n * ([see example]({% slug items_sortable %}#toc-disabled-items)).\n */\n this.disabledIndexes = [];\n /**\n * Sets a string that represents the name of the zone to which the Sortable belongs\n * ([see example]({% slug items_sortable %}#toc-transfer-of-items)). Items can be transferred\n * between Sortables which belong to the same zone.\n */\n this.zone = undefined;\n /**\n * Defines the zones from which items can be transferred onto the current Sortable component\n * ([see example]({% slug items_sortable %}#toc-transfer-of-items)). If the `acceptZones` property\n * of the target Sortable is set, allows you to transfer items between Sortables which belong\n * to different zones.\n */\n this.acceptZones = undefined;\n /**\n * Represents the CSS styles which are applied to each Sortable item.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n * import { SortableModule } from '@progress/kendo-angular-sortable';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * export class AppComponent {\n * }\n * ```\n */\n this.itemStyle = {};\n /**\n * Defines the CSS styles applied to an empty item ([see example]({% slug templates_sortable %})).\n */\n this.emptyItemStyle = undefined;\n /**\n * Defines the CSS styles which are applied to the currently dragged item ([see example]({% slug templates_sortable %})).\n */\n this.activeItemStyle = undefined;\n /**\n * Defines the CSS styles which are applied to all disabled items.\n */\n this.disabledItemStyle = undefined;\n /**\n * Defines the class which is applied to each Sortable item.\n */\n this.itemClass = \"\";\n /**\n * Defines the class which is applied to the active Sortable item.\n */\n this.activeItemClass = null;\n /**\n * Defines the class which is applied to the empty item when the Sortable has empty data.\n */\n this.emptyItemClass = null;\n /**\n * Defines the class which is applied to each disabled Sortable item.\n */\n this.disabledItemClass = null;\n /**\n * Sets the text message that will be displayed when the Sortable has no items.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n * import { SortableModule } from '@progress/kendo-angular-sortable';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * export class AppComponent { }\n * ```\n */\n this.emptyText = \"Empty\";\n /**\n * @hidden\n */\n this.defaultTemplateRef = null;\n /**\n * Defines the template that will be used for rendering the items.\n * @hidden\n */\n this.itemTemplateDirectiveRef = null;\n /**\n * Defines the template that will be used for rendering the placeholder.\n * @hidden\n */\n this.placeholderTemplateDirectiveRef = null;\n this.itemWrappers = null;\n /**\n * Fires when the dragging of an item is started.\n */\n this.dragStart = new EventEmitter();\n /**\n * Fires when the dragging of an item is completed.\n */\n this.dragEnd = new EventEmitter();\n /**\n * Fires while the dragging of an item is in progress.\n */\n this.dragOver = new EventEmitter();\n /**\n * Fires when dragging an item outside of the component.\n */\n this.dragLeave = new EventEmitter();\n /**\n * Fires while the moving an item from one position to another.\n */\n this.dataMove = new EventEmitter();\n /**\n * Fires when a new item is added to the Sortable.\n */\n this.dataAdd = new EventEmitter();\n /**\n * Fires when an item is removed from the Sortable.\n */\n this.dataRemove = new EventEmitter();\n /**\n * Fires when navigating using the keyboard.\n */\n this.navigate = new EventEmitter();\n /**\n * The index of the currently focused item.\n * If no item is focused, set to `-1`.\n */\n this.activeIndex = -1;\n /**\n * Flag indicating if the component is currently playing animations.\n * @hidden\n */\n this.animating = false;\n /**\n * The index of the currently dragged item.\n */\n this.dragIndex = -1;\n /**\n * The index of the item above which the dragged item is.\n */\n this.dragOverIndex = -1;\n this.onDragStartSubject = new Subject();\n this.onDragOverSubject = new Subject();\n this.onDragLeaveSubject = new Subject();\n this.onDragEndSubject = new Subject();\n /**\n * The location of the hint indicator when dragging on mobile devices.\n */\n this.hintLocation = null;\n this._localData = [];\n this.animationDuration = 300;\n this.afterKeyPress = false;\n this.sortableService = null;\n this._hideActiveItem = false;\n this.wrapper = wrapper.nativeElement;\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.sortableService = sortableService;\n this.subscribeEvents();\n }\n /**\n * Sets an array of any data that is used as a data source for the Sortable.\n *\n * {% embed_file sortable-palettes/app.component.ts %}\n * {% embed_file shared/app.module.ts %}\n * {% embed_file shared/main.ts hidden %}\n */\n set data(data) {\n this._data = data;\n //Cache each _data item instance locally to avoid repaint due to the ngTemplateOutletContext (generated by itemData)\n //This prevents destroying the kendoDraggable instance, which otherwise leads to losing the dragEnd event\n //due to non-exisitng HTML element\n this.cacheData();\n }\n get data() {\n return this._data;\n }\n /**\n * @hidden\n *\n * A misspelled alias for `navigable`.\n */\n set navigatable(value) {\n this.navigable = value;\n }\n get touchAction() {\n return \"none\";\n }\n get dir() {\n return this.direction;\n }\n setItemData(data, i) {\n this._localData[i].item = data.item;\n this._localData[i].index = data.index;\n this._localData[i].hidden = data.hidden;\n }\n /**\n * @hidden\n */\n itemTemplate(index) {\n let template = this.itemTemplateRef;\n if (index === this.dragOverIndex) {\n template = this.placeholderTemplateRef;\n }\n else if (index === this.dragIndex) {\n template = this.itemTemplateRef;\n }\n return template;\n }\n ngOnInit() {\n if (!this.data) {\n this.data = [];\n }\n this.id = this.sortableService.registerComponent(this);\n this.dragIndex = -1;\n const display = \"display\";\n if (this.activeItemStyle && !this.activeItemStyle[display]) {\n this.activeItemStyle[display] = \"\";\n }\n if (!this.itemStyle[display]) {\n this.itemStyle[display] = \"\";\n }\n if (this.wrapper) {\n this.draggable = new Draggable({\n press: (e) => this.sortableService.onPress(e),\n drag: (e) => this.sortableService.onDrag(e),\n release: (e) => this.sortableService.onRelease(e)\n });\n this.ngZone.runOutsideAngular(() => {\n this.draggable.bindTo(this.wrapper);\n });\n }\n }\n ngOnDestroy() {\n this.unsubscribeEvents();\n this.sortableService.unregisterComponent(this.id);\n if (this.draggable) {\n this.draggable.destroy();\n }\n }\n ngAfterContentInit() {\n this.itemTemplateRef = this.itemTemplateDirectiveRef.first || this.defaultTemplateRef.first;\n this.placeholderTemplateRef = this.placeholderTemplateDirectiveRef.first || this.defaultTemplateRef.first;\n }\n ngAfterViewChecked() {\n if (this.afterKeyPress) {\n if (this.itemWrappers) {\n const elems = this.itemWrappers.toArray();\n if (elems && elems.length > 0 && this.activeIndex > -1) {\n elems[this.activeIndex].nativeElement.focus();\n }\n }\n this.afterKeyPress = false;\n }\n }\n /**\n * @hidden\n */\n updateCacheIndices() {\n this._localData.forEach((item, index) => {\n item.index = index;\n });\n }\n /**\n * @hidden\n */\n cacheData() {\n this._localData = [];\n this._data.forEach((item, index) => {\n this._localData.push({ item: item, active: false, disabled: false, index: index, hidden: false });\n });\n }\n /**\n * @hidden\n */\n startDrag(event) {\n const startEvent = new DraggableEvent(event);\n this.onDragStartSubject.next(startEvent);\n const prevented = startEvent.isDefaultPrevented();\n if (!prevented) {\n this.offsetParent = relativeContextElement(this.wrapper);\n }\n return prevented;\n }\n /**\n * @hidden\n */\n drag(event) {\n const dragEvent = new DraggableEvent(event);\n this.onDragOverSubject.next(dragEvent);\n return dragEvent.isDefaultPrevented();\n }\n /**\n * @hidden\n */\n leave(event) {\n const leaveEvent = new DraggableEvent(event);\n this.onDragLeaveSubject.next(leaveEvent);\n return leaveEvent.isDefaultPrevented();\n }\n /**\n * @hidden\n */\n endDrag(event) {\n const endEvent = new DraggableEvent(event);\n this.onDragEndSubject.next(endEvent);\n return endEvent.isDefaultPrevented();\n }\n /**\n * @hidden\n */\n hintVisible() {\n return this.dragIndex >= 0 && this.hintLocation && this === this.sortableService.getSource();\n }\n /**\n * @hidden\n */\n currentItemStyle(index) {\n if (index === -1) {\n return this.emptyItemStyle ? this.emptyItemStyle : this.itemStyle;\n }\n if (!this.itemEnabled(index) && this.disabledItemStyle) {\n return this.disabledItemStyle;\n }\n if (index === this.dragIndex || (this.dragIndex === -1 && index === this.activeIndex)) {\n if (this.hideActiveItem) {\n return { \"display\": \"none\" };\n }\n if (this.activeItemStyle) {\n return this.activeItemStyle;\n }\n }\n return this.itemStyle;\n }\n /**\n * @hidden\n */\n currentItemClass(index) {\n if (index === -1) {\n return this.emptyItemClass ? this.emptyItemClass : this.itemClass;\n }\n if (!this.itemEnabled(index) && this.disabledItemClass) {\n return this.disabledItemClass;\n }\n if ((index === this.dragIndex || this.dragIndex === -1 && index === this.activeIndex) && this.activeItemClass) {\n return this.activeItemClass;\n }\n return this.itemClass;\n }\n /**\n * @hidden\n */\n hintStyle() {\n const position = {\n \"left\": this.hintLocation.x + 10 + \"px\",\n \"position\": \"fixed\",\n \"top\": this.hintLocation.y + 10 + \"px\"\n };\n let style = {};\n Object.assign(style, this.currentItemStyle(this.dragIndex), position);\n return style;\n }\n /**\n * @hidden\n */\n itemEnabled(index) {\n return this.disabledIndexes.indexOf(index) === -1;\n }\n /**\n * @hidden\n */\n acceptDragFrom(sortableComponent) {\n if (this.acceptZones === undefined) {\n return (this.zone === sortableComponent.zone);\n }\n else if (sortableComponent.zone !== undefined) {\n return (this.acceptZones.indexOf(sortableComponent.zone) !== -1);\n }\n return false;\n }\n /**\n * @hidden\n */\n ariaDropEffect(index) {\n return this.itemEnabled(index) ? \"move\" : \"none\";\n }\n /**\n * @hidden\n */\n focusHandler(index) {\n if (this.navigable) {\n this.activeIndex = index;\n }\n }\n /**\n * @hidden\n */\n blurHandler() {\n if (this.navigable && !this.afterKeyPress) {\n this.activeIndex = -1;\n }\n }\n /**\n * @hidden\n */\n keydownHandler(event) {\n const code = event.keyCode;\n const navigate = this.navigable && code >= 37 && code <= 40;\n const hasFocus = this.activeIndex !== -1;\n if (!navigate || !hasFocus) {\n return;\n }\n const leftKey = this.direction === 'rtl' ? 39 : 37;\n const dir = code === 38 || code === leftKey ? -1 : 1;\n const limit = this.data.length - 1;\n let targetIndex = this.activeIndex + dir;\n while (!this.itemEnabled(targetIndex) && targetIndex <= limit) {\n targetIndex += dir;\n }\n targetIndex = Math.min(Math.max(targetIndex, 0), limit);\n if (!this.itemEnabled(targetIndex)) {\n return;\n }\n if (navigate) {\n const ctrl = event.ctrlKey || event.metaKey;\n let navigateEvent = new NavigateEvent({ index: targetIndex, oldIndex: this.activeIndex, ctrlKey: ctrl });\n this.navigate.emit(navigateEvent);\n if (!navigateEvent.isDefaultPrevented()) {\n this.activeIndex = targetIndex;\n }\n this.dragIndex = -1;\n this.dragOverIndex = -1;\n }\n event.stopPropagation();\n event.preventDefault();\n this.afterKeyPress = true;\n }\n /**\n * Removes the currently active item from the Data collection that the Sortable uses.\n */\n removeDataItem(index) {\n this.dragIndex = -1;\n this.dragOverIndex = -1;\n this._localData.splice(index, 1);\n this.data.splice(index, 1);\n this.updateCacheIndices();\n }\n /**\n * Sets a Boolean value that indicates whether the item will be hidden or not.\n * @hidden\n */\n hideItem(index, hidden = true) {\n this._localData[index].hidden = hidden;\n }\n /**\n * Sets a Boolean value that indicates whether the currently dragged item will be hidden.\n */\n set hideActiveItem(value) {\n this.activeIndex = -1;\n this._hideActiveItem = value;\n }\n /**\n * If the currently dragged item is hidden, returns `true`.\n * If the currently dragged item is visible, returns `false`.\n */\n get hideActiveItem() {\n return this._hideActiveItem;\n }\n /**\n * Clears the active item.\n * An active item is the item which becomes focused when the user navigates with the keyboard.\n */\n clearActiveItem() {\n if (this.navigable) {\n this.fixFocus();\n }\n else {\n this.activeIndex = -1;\n }\n this.dragIndex = -1;\n }\n /**\n * Returns the currently active item when the user navigates with the keyboard.\n * @return - The data item which is currently active.\n */\n getActiveItem() {\n if (this.data && this.dragIndex >= 0 && this.dragIndex < this.data.length) {\n return this.data[this.dragIndex];\n }\n }\n /**\n * Adds a new data item to a particular index.\n * @param dataItem - The data item.\n * @param index - The index at which the data item is inserted.\n */\n addDataItem(dataItem, index) {\n const originDraggable = this.sortableService.originDraggable;\n if (originDraggable && originDraggable.parent === this) {\n const animation = this.animation;\n this.hideItem(originDraggable.index, false);\n this.animation = false;\n this.moveItem(originDraggable.index, index);\n this.animation = animation;\n }\n else {\n if (index + 1 === this.data.length && this.data.length > 1) {\n index++;\n }\n this.data.splice(index, 0, dataItem);\n this._localData.splice(index, 0, { item: dataItem, active: false, disabled: false, index: index, hidden: false });\n this.updateCacheIndices();\n }\n this.dragIndex = index;\n this.dragOverIndex = index;\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.sortableService.target = this;\n this.sortableService.setSource(this);\n this.sortableService.activeDraggable = this.draggables.toArray()[index];\n this.sortableService.lastDraggable = null;\n });\n }\n /**\n * Moves data item to a particular index.\n * @param fromIndex - The data item's index.\n * @param toIndex - The index which the data item should be moved to. Item currently sitting at that index is pushed back one position.\n */\n moveItem(fromIndex, toIndex) {\n if (toIndex === fromIndex) {\n return;\n }\n let dragIndex = fromIndex;\n const d = toIndex > dragIndex ? 1 : -1;\n const originalIndexAnimate = dragIndex;\n const toAnimate = [];\n let prevIndex = dragIndex;\n let tmp;\n while (dragIndex !== toIndex) {\n dragIndex += d;\n if (this.itemEnabled(dragIndex) || dragIndex === toIndex) {\n if (this.animation) {\n toAnimate.push({ next: dragIndex, prev: prevIndex });\n }\n tmp = this._localData[prevIndex].index;\n this._localData[prevIndex].index = this._localData[dragIndex].index;\n this._localData[dragIndex].index = tmp;\n tmp = this._localData[prevIndex];\n this._localData[prevIndex] = this._localData[dragIndex];\n this._localData[dragIndex] = tmp;\n tmp = this.data[prevIndex];\n this.data[prevIndex] = this.data[dragIndex];\n this.data[dragIndex] = tmp;\n prevIndex = dragIndex;\n }\n }\n this.dragIndex = dragIndex;\n this.dragOverIndex = dragIndex;\n this.activeIndex = dragIndex;\n if (this.animation) {\n setTimeout(() => {\n toAnimate.push({ next: originalIndexAnimate, prev: dragIndex });\n this.animating = true;\n this.animate(toAnimate);\n });\n }\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.sortableService.activeDraggable = this.draggables.toArray()[dragIndex];\n this.sortableService.lastDraggable = null;\n });\n }\n /**\n * @hidden\n */\n animate(draggables) {\n const itemArray = this.itemWrappers.toArray();\n const prevClientRect = [];\n const nextClientRect = [];\n const that = this;\n clearTimeout(this._animating);\n for (let i = 0; i < draggables.length; i++) {\n prevClientRect.push(itemArray[draggables[i].prev].nativeElement.getBoundingClientRect());\n nextClientRect.push(itemArray[draggables[i].next].nativeElement.getBoundingClientRect());\n }\n for (let i = 0; i < draggables.length; i++) {\n const nextIndex = draggables[i].prev;\n const targetRect = nextClientRect[i];\n const currentRect = prevClientRect[i];\n const target = itemArray[nextIndex].nativeElement;\n this.applyAnimationStyle(target, 'transition', 'none');\n this.applyAnimationStyle(target, 'transform', 'translate3d('\n + (targetRect.left - currentRect.left).toString() + 'px,'\n + (targetRect.top - currentRect.top).toString() + 'px,0)');\n this.reflow(target);\n }\n for (let i = 0; i < draggables.length; i++) {\n const nextIndex = draggables[i].prev;\n const target = itemArray[nextIndex].nativeElement;\n this.applyAnimationStyle(target, 'transition', 'all ' + this.animationDuration + 'ms');\n this.applyAnimationStyle(target, 'transform', 'translate3d(0,0,0)');\n clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n that.applyAnimationStyle(target, 'transition', '');\n that.applyAnimationStyle(target, 'transform', '');\n target.animated = false;\n }, this.animationDuration);\n }\n this._animating = setTimeout(() => {\n this.animating = false;\n }, this.animationDuration);\n }\n /**\n * @hidden\n */\n positionHintFromEvent(event) {\n const offset = this.parentOffset();\n this.hintLocation = event ? { x: event.clientX - offset.left, y: event.clientY - offset.top } : null;\n }\n /**\n * @hidden\n */\n parentOffset() {\n const offsetParent = this.offsetParent;\n if (offsetParent) {\n const rect = offsetParent.getBoundingClientRect();\n return {\n left: rect.left - offsetParent.scrollLeft,\n top: rect.top - offsetParent.scrollTop\n };\n }\n return { left: 0, top: 0 };\n }\n /**\n * @hidden\n */\n markForCheck() {\n this.changeDetector.markForCheck();\n }\n /**\n * @hidden\n */\n reflow(element) {\n return element.offsetWidth;\n }\n /**\n * @hidden\n */\n applyAnimationStyle(el, prop, val) {\n const style = el && el.style;\n if (style) {\n if (!(prop in style)) {\n prop = '-webkit-' + prop;\n }\n style[prop] = val;\n }\n }\n subscribeEvents() {\n this.localizationChangeSubscription = this.localization\n .changes\n .subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');\n this.dragStartSubscription = this.onDragStartSubject\n .subscribe((event) => {\n this.sortableService.originDraggable = event.target;\n this.sortableService.originIndex = event.target.index;\n this.sortableService.activeDraggable = event.target;\n this.sortableService.lastDraggable = event.target;\n this.sortableService.target = this;\n this.sortableService.setSource(this);\n let dragStartEvent = new DragStartEvent({ index: event.target.index });\n this.dragStart.emit(dragStartEvent);\n if (dragStartEvent.isDefaultPrevented()) {\n event.preventDefault();\n }\n else {\n if (!event.target.disabled) {\n if (this.sortableService.target) {\n this.sortableService.target.dragOverIndex = -1;\n this.sortableService.target.dragIndex = -1;\n }\n this.dragOverIndex = event.target.index;\n this.dragIndex = event.target.index;\n }\n }\n });\n this.dragOverSubscription = this.onDragOverSubject.pipe(filter(event => event.target && event.target.el.nativeElement.style.transition.length === 0), filter(() => {\n // Drag started from a disabled item\n return this.sortableService.originDraggable && !this.sortableService.originDraggable.disabled;\n }), filter(() => {\n return this.sortableService && this.acceptDragFrom(this.sortableService.getSource());\n }), filter((event) => {\n return event.target !== this.sortableService.lastDraggable;\n }))\n .subscribe((event) => {\n this.sortableService.lastDraggable = event.target;\n const originDraggable = this.sortableService.originDraggable;\n let targetIndex = event.target.index;\n if (originDraggable.hidden && originDraggable.parent === this) {\n if (originDraggable.index < event.target.index) {\n targetIndex = event.target.index - 1;\n }\n }\n this.sortableService.target = this;\n const oldIndex = this.sortableService.activeDraggable ? this.sortableService.activeDraggable.index : 0;\n let dragOverEvent = new DragOverEvent({ index: targetIndex, oldIndex: oldIndex });\n this.dragOver.emit(dragOverEvent);\n if (!dragOverEvent.isDefaultPrevented() && event.target && event.target.index >= 0) {\n this.dragOverIndex = event.target.index;\n this.placeHolderItemData(event.target);\n }\n });\n this.dragEndSubscription = this.onDragEndSubject\n .subscribe((event) => {\n const source = this.sortableService.getSource();\n if (!source) {\n return;\n }\n const target = this.sortableService.target;\n const index = event.target ? event.target.index : -1;\n const oldIndex = this.sortableService.originDraggable ? this.sortableService.originIndex : -1;\n this.hintLocation = null;\n let dragEndEvent = new DragEndEvent({ index: index, oldIndex: oldIndex });\n this.dragEnd.emit(dragEndEvent);\n if (!dragEndEvent.isDefaultPrevented()) {\n source.dragIndex = -1;\n source.dragOverIndex = -1;\n source.activeIndex = -1;\n if (target && target !== source) {\n target.dragIndex = -1;\n target.dragOverIndex = -1;\n }\n setTimeout(() => {\n this.sortableService.activeDraggable = null;\n this.sortableService.lastDraggable = null;\n this.sortableService.originDraggable = null;\n this.sortableService.target = null;\n this.sortableService.setSource(null);\n });\n }\n });\n this.dragLeaveSubscription = this.onDragLeaveSubject.pipe(filter((e) => {\n if (!isDocumentAvailable()) {\n return false;\n }\n return this.wrapper !== document.elementFromPoint(e.originalEvent.pageX, e.originalEvent.pageY);\n }), filter((_e) => {\n return !this.animating;\n }), filter(_ => this.sortableService.target && this.sortableService.target.dragOverIndex > -1))\n .subscribe(() => {\n this.dragLeave.emit({ index: this.sortableService.originDraggable.index });\n this.sortableService.lastDraggable = null;\n this.dragOverIndex = -1;\n this.sortableService.target = null;\n });\n }\n unsubscribeEvents() {\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n this.dragStartSubscription.unsubscribe();\n this.dragOverSubscription.unsubscribe();\n this.dragEndSubscription.unsubscribe();\n this.dragLeaveSubscription.unsubscribe();\n }\n placeHolderItemData(draggable) {\n if (draggable.disabled) {\n return;\n }\n const target = this.sortableService.target;\n const source = this.sortableService.getSource();\n const originalData = Object.assign({}, this._localData[draggable.index]);\n const newData = source._localData[source.dragIndex];\n this.setItemData(newData, draggable.index);\n const endSub = source.onDragEndSubject.pipe(take(1)).subscribe(() => {\n this.setItemData(originalData, draggable.index);\n });\n const leaveSub = target.onDragLeaveSubject.pipe(take(1)).subscribe(() => {\n this.setItemData(originalData, draggable.index);\n });\n const overSub = merge(this.onDragOverSubject.pipe(filter(() => {\n return draggable.index !== this.dragOverIndex;\n })), this.onDragLeaveSubject).subscribe(() => {\n this.setItemData(originalData, draggable.index);\n endSub.unsubscribe();\n overSub.unsubscribe();\n leaveSub.unsubscribe();\n });\n }\n fixFocus() {\n if (this.itemWrappers) {\n const itemArray = this.itemWrappers.toArray();\n if (this.dragIndex > -1 && itemArray && itemArray.length > 0) {\n itemArray[this.dragIndex].nativeElement.focus();\n this.activeIndex = this.dragIndex;\n }\n }\n }\n}\nSortableComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoSortable',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.sortable'\n }\n ],\n selector: 'kendo-sortable',\n template: `\n
    \n \n \n {{item.item}}\n
    \n\n \n {{emptyText}}\n \n
    \n \n \n {{_localData[dragIndex].item}}\n
    \n `\n },] },\n];\n/** @nocollapse */\nSortableComponent.ctorParameters = () => [\n { type: NgZone },\n { type: LocalizationService },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: SortableService }\n];\nSortableComponent.propDecorators = {\n tabIndex: [{ type: Input }],\n data: [{ type: Input }],\n navigable: [{ type: Input }],\n navigatable: [{ type: Input }],\n animation: [{ type: Input }],\n disabledIndexes: [{ type: Input }],\n zone: [{ type: Input }],\n acceptZones: [{ type: Input }],\n itemStyle: [{ type: Input }],\n emptyItemStyle: [{ type: Input }],\n activeItemStyle: [{ type: Input }],\n disabledItemStyle: [{ type: Input }],\n itemClass: [{ type: Input }],\n activeItemClass: [{ type: Input }],\n emptyItemClass: [{ type: Input }],\n disabledItemClass: [{ type: Input }],\n emptyText: [{ type: Input }],\n defaultTemplateRef: [{ type: ContentChildren, args: [TemplateRef, { descendants: false },] }],\n itemTemplateDirectiveRef: [{ type: ContentChildren, args: [ItemTemplateDirective, { read: TemplateRef, descendants: false },] }],\n placeholderTemplateDirectiveRef: [{ type: ContentChildren, args: [PlaceholderTemplateDirective, { read: TemplateRef, descendants: false },] }],\n itemWrappers: [{ type: ViewChildren, args: ['itemWrapper',] }],\n draggables: [{ type: ViewChildren, args: [DraggableDirective,] }],\n hint: [{ type: ViewChild, args: ['hint',] }],\n dragStart: [{ type: Output }],\n dragEnd: [{ type: Output }],\n dragOver: [{ type: Output }],\n dragLeave: [{ type: Output }],\n dataMove: [{ type: Output }],\n dataAdd: [{ type: Output }],\n dataRemove: [{ type: Output }],\n navigate: [{ type: Output }],\n activeIndex: [{ type: Input }],\n touchAction: [{ type: HostBinding, args: ['style.touch-action',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }]\n};\n\n/**\n * The arguments for the `SortableComponent` `dataAdd` event.\n */\nclass DataAddEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(options) {\n super();\n Object.assign(this, options);\n }\n}\n/**\n * The arguments for the `SortableComponent` `dataRemove` event.\n */\nclass DataRemoveEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(options) {\n super();\n Object.assign(this, options);\n }\n}\n/**\n * The arguments for the `SortableComponent` `dataMove` event.\n */\nclass DataMoveEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(options) {\n super();\n Object.assign(this, options);\n }\n}\n\n/**\n * A Directive which handles the most common scenarios such reordering and moving items between Sortables, thus minimizng boilerplate code.\n * This is achieved by subscribing to the Sortable's events and handling them using the API methods it provides.\n */\nclass SortableBindingDirective {\n constructor(sortable, sortableService) {\n this.sortable = sortable;\n this.sortableService = sortableService;\n this.sortableService = sortableService;\n }\n /**\n * Sets a data-bound array that is used as a data source for the Sortable.\n *\n * {% embed_file overview/app.component.ts %}\n * {% embed_file shared/app.module.ts %}\n * {% embed_file shared/main.ts hidden %}\n */\n set data(data) {\n this.sortable.data = data;\n }\n nextEnabledIndex(index, sortable) {\n for (let i = index; i <= sortable.data.length; i++) {\n if (sortable.itemEnabled(i)) {\n return i;\n }\n }\n }\n addItem(event, sortable) {\n const index = event.index;\n const dataItem = this.sortableService.getSource().data[event.oldIndex];\n const addEvent = new DataAddEvent({ index: index, dataItem: dataItem });\n sortable.dataAdd.emit(addEvent);\n if (!addEvent.isDefaultPrevented()) {\n sortable.addDataItem(dataItem, index);\n }\n return !addEvent.isDefaultPrevented();\n }\n removeItem(event, sortable) {\n const originDraggable = this.sortableService.originDraggable;\n const removeEvent = new DataRemoveEvent({ index: event.oldIndex, dataItem: sortable.data[event.oldIndex] });\n sortable.dataRemove.emit(removeEvent);\n if (!removeEvent.isDefaultPrevented()) {\n if (originDraggable && originDraggable.parent === sortable) {\n sortable.hideItem(event.oldIndex, true);\n }\n else {\n sortable.removeDataItem(event.oldIndex);\n }\n }\n return !removeEvent.isDefaultPrevented();\n }\n moveItem(event, sortable) {\n if (event.index === event.oldIndex) {\n return false;\n }\n const moveEvent = new DataMoveEvent({\n dataItem: sortable.data[event.oldIndex],\n index: event.index,\n oldIndex: event.oldIndex\n });\n sortable.dataMove.emit(moveEvent);\n if (!moveEvent.isDefaultPrevented()) {\n sortable.moveItem(event.oldIndex, event.index);\n }\n return !moveEvent.isDefaultPrevented();\n }\n /**\n * Removes the Draggable item from which the drag started.\n * @hidden\n */\n removeOriginDraggable() {\n if (this.removeHiddenSubscription) {\n this.removeHiddenSubscription.unsubscribe();\n }\n this.removeHiddenSubscription = this.sortableService.onReleaseSubject.pipe(take(1), filter(_ => this.sortableService.originDraggable !== null && this.sortableService.originDraggable.hidden)).subscribe((e) => {\n const originDraggable = this.sortableService.originDraggable;\n const newSource = this.sortableService.getSource();\n if (originDraggable.parent !== this.sortableService.target) {\n const isTargetDraggable = e.target ? (e.target.isDraggable || e.target.isDraggableChild) : false;\n if (isTargetDraggable || originDraggable.parent !== newSource) {\n if (originDraggable.parent !== this.sortableService.target) {\n originDraggable.parent.removeDataItem(originDraggable.index);\n }\n }\n this.sortableService.originDraggable = null;\n }\n });\n }\n onDragOver(event) {\n const source = this.sortableService.getSource();\n const target = this.sortableService.target;\n if (event.isDefaultPrevented()) {\n return;\n }\n event.preventDefault();\n if (target === source) {\n this.moveItem(event, target);\n }\n else {\n if (!target.itemEnabled(event.index)) {\n event.index = this.nextEnabledIndex(event.index, target);\n }\n //Add to target and remove from source\n if (this.addItem(event, target) && this.removeItem(event, source)) {\n this.removeOriginDraggable();\n target.activeIndex = event.index;\n source.activeIndex = -1;\n }\n }\n }\n onNavigate(event) {\n if (event.ctrlKey) {\n let moveEvent = new DataMoveEvent({\n dataItem: this.sortable.data[event.oldIndex],\n index: event.index,\n oldIndex: event.oldIndex\n });\n this.sortable.dataMove.emit(moveEvent);\n if (!moveEvent.isDefaultPrevented()) {\n this.sortable.moveItem(event.oldIndex, event.index);\n }\n }\n else {\n this.sortable.activeIndex = event.index;\n }\n }\n ngOnInit() {\n this.dragOverSubscription = this.sortable.dragOver.subscribe(this.onDragOver.bind(this));\n this.navigateSubscription = this.sortable.navigate.subscribe(this.onNavigate.bind(this));\n }\n ngOnDestroy() {\n this.dragOverSubscription.unsubscribe();\n this.navigateSubscription.unsubscribe();\n if (this.removeHiddenSubscription) {\n this.removeHiddenSubscription.unsubscribe();\n }\n }\n}\nSortableBindingDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoSortableBinding]'\n },] },\n];\n/** @nocollapse */\nSortableBindingDirective.ctorParameters = () => [\n { type: SortableComponent },\n { type: SortableService }\n];\nSortableBindingDirective.propDecorators = {\n data: [{ type: Input, args: [\"kendoSortableBinding\",] }]\n};\n\nconst COMPONENT_DIRECTIVES = [\n SortableComponent,\n DraggableDirective,\n PlaceholderTemplateDirective,\n ItemTemplateDirective,\n SortableBindingDirective\n];\n/**\n *\n * Represents the [`NgModule`]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Sortable component.\n *\n * @example\n *\n * ```ts-no-run\n * import { NgModule } from '@angular/core';\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * // Import the Sortable module\n * import { SortableModule } from '@progress/kendo-angular-sortable';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent],\n * imports: [BrowserModule, SortableModule],\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass SortableModule {\n}\nSortableModule.decorators = [\n { type: NgModule, args: [{\n declarations: [COMPONENT_DIRECTIVES],\n exports: [COMPONENT_DIRECTIVES],\n imports: [CommonModule],\n providers: [SortableService]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SortableComponent, SortableModule, PreventableEvent, DraggableEvent, DragStartEvent, DragEndEvent, DragOverEvent, NavigateEvent, DataMoveEvent, DraggableDirective, SortableBindingDirective, PlaceholderTemplateDirective, ItemTemplateDirective, SortableService };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { InjectionToken, Injectable, EventEmitter, Component, ElementRef, HostBinding, Output, Input, isDevMode, Directive, NgZone, Renderer2, Optional, Inject, forwardRef, NgModule } from '@angular/core';\nimport { filter, debounceTime, take } from 'rxjs/operators';\nimport { fromEvent } from 'rxjs';\nimport { PopupService, PopupModule } from '@progress/kendo-angular-popup';\nimport { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { CommonModule } from '@angular/common';\n\n/**\n * Obsolete. Provide the TooltipSettings class instead.\n *\n * @hidden\n */\nconst TOOLTIP_SETTINGS = new InjectionToken('kendo-ui-tooltip-settings');\n/**\n * Provides a global configuration for the Kendo UI Tooltip. Once injected through\n * the `AppComponent` constructor, the configuration properties can be overridden.\n *\n * @example\n * ```ts-no-run\n * import { TooltipSettings } from '@progress/kendo-angular-tooltip';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n *
    \n * \n *
    `,\n * providers: [{\n * provide: TooltipSettings,\n * useFactory: (): TooltipSettings => ({\n * // Override default values of tooltips if wanted\n * position: 'right'\n * })\n * }]\n * })\n * export class AppComponent { }\n * ```\n */\nclass TooltipSettings {\n}\nTooltipSettings.decorators = [\n { type: Injectable },\n];\n\n/**\n * @hidden\n */\nfunction align(position, offset) {\n let anchorAlign = {};\n let popupAlign = {};\n let popupMargin = {};\n switch (position) {\n case 'top':\n anchorAlign = { horizontal: 'center', vertical: 'top' };\n popupAlign = { horizontal: 'center', vertical: 'bottom' };\n popupMargin = { horizontal: 0, vertical: offset };\n break;\n case 'bottom':\n anchorAlign = { horizontal: 'center', vertical: 'bottom' };\n popupAlign = { horizontal: 'center', vertical: 'top' };\n popupMargin = { horizontal: 0, vertical: offset };\n break;\n case 'right':\n anchorAlign = { horizontal: 'right', vertical: 'center' };\n popupAlign = { horizontal: 'left', vertical: 'center' };\n popupMargin = { horizontal: offset, vertical: 0 };\n break;\n case 'left':\n anchorAlign = { horizontal: 'left', vertical: 'center' };\n popupAlign = { horizontal: 'right', vertical: 'center' };\n popupMargin = { horizontal: offset, vertical: 0 };\n break;\n default: break;\n }\n return {\n anchorAlign,\n popupAlign,\n popupMargin\n };\n}\n/**\n * @hidden\n */\nfunction collision(inputcollision, position) {\n if (inputcollision) {\n return inputcollision;\n }\n if (position === 'top' || position === 'bottom') {\n return { horizontal: 'fit', vertical: 'flip' };\n }\n return { horizontal: 'flip', vertical: 'fit' };\n}\nfunction isDocumentNode(container) {\n return container.nodeType === 9;\n}\n/**\n * @hidden\n */\nfunction closest(element, selector) {\n if (element.closest) {\n return element.closest(selector);\n }\n const matches = Element.prototype.matches ?\n (el, sel) => el.matches(sel)\n : (el, sel) => el.msMatchesSelector(sel);\n let node = element;\n while (node && !isDocumentNode(node)) {\n if (matches(node, selector)) {\n return node;\n }\n node = node.parentNode;\n }\n}\n/**\n * @hidden\n */\nfunction contains(container, child) {\n if (!container) {\n return false;\n }\n if (isDocumentNode(container)) {\n return false;\n }\n if (container.contains) {\n return container.contains(child);\n }\n if (container.compareDocumentPosition) {\n // tslint:disable-next-line\n return !!(container.compareDocumentPosition(child) & Node.DOCUMENT_POSITION_CONTAINED_BY);\n }\n}\n/**\n * @hidden\n */\nconst hasParent = (node, parent) => {\n while (node && node !== parent) {\n node = node.parentNode;\n }\n return node;\n};\n/**\n * @hidden\n */\nfunction getCenterOffset(item, dir, size) {\n const rect = item.getBoundingClientRect();\n return rect[dir] + (rect[size] / 2);\n}\n/**\n * @hidden\n */\nfunction containsItem(collection, item) {\n return collection.indexOf(item) !== -1;\n}\n\n/**\n * @hidden\n */\nclass TooltipContentComponent {\n constructor(content, localizationService) {\n this.content = content;\n this.localizationService = localizationService;\n this.close = new EventEmitter();\n this.tooltipWidth = null;\n this.tooltipHeight = null;\n this.callout = true;\n this.calloutStyles = (position, calloutSize, isFlip) => {\n const styles = {};\n const isVertical = position === 'top' || position === 'bottom';\n const flipDeg = '180deg';\n const zeroDeg = '0deg';\n if (!isFlip) {\n styles.transform = isVertical ? `rotateX(${zeroDeg})` : `rotateY(${zeroDeg})`;\n return styles;\n }\n if (position === 'top') {\n styles.bottom = 'unset';\n }\n else if (position === 'bottom') {\n styles.top = 'unset';\n }\n else if (position === 'left') {\n styles.right = 'unset';\n }\n else if (position === 'right') {\n styles.left = 'unset';\n }\n styles[position] = `${-calloutSize}px`;\n styles.transform = isVertical ? `rotateX(${flipDeg})` : `rotateY(${flipDeg})`;\n return styles;\n };\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n }\n get cssClasses() {\n return 'k-widget k-tooltip';\n }\n get className() {\n return this.closable;\n }\n get cssPosition() {\n return 'relative';\n }\n ngOnInit() {\n this.dynamicRTLSubscription = this.localizationService.changes\n .subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');\n }\n ngOnDestroy() {\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n get closeButtonTitle() {\n return this.closeTitle || this.localizationService.get('closeTitle');\n }\n calloutPositionClass() {\n return {\n 'top': 'k-callout-s',\n 'left': 'k-callout-e',\n 'bottom': 'k-callout-n',\n 'right': 'k-callout-w'\n }[this.position];\n }\n onCloseClick(event) {\n event.preventDefault();\n this.close.emit();\n }\n updateCalloutPosition(position, isFlip) {\n if (!this.callout) {\n return;\n }\n const callout = this.content.nativeElement.querySelector('.k-callout');\n const isVertical = position === 'top' || position === 'bottom';\n const size = isVertical ? 'width' : 'height';\n const dir = isVertical ? 'left' : 'top';\n const offsetProperty = isVertical ? 'marginLeft' : 'marginTop';\n const calloutSize = callout.getBoundingClientRect()[size];\n const anchorCenter = getCenterOffset(this.anchor.nativeElement, dir, size);\n const contentCenter = getCenterOffset(this.content.nativeElement, dir, size);\n const diff = Math.abs(contentCenter - anchorCenter);\n if (diff > 1 || diff === 0 || Math.round(diff) === 0) {\n const newMargin = contentCenter - anchorCenter + (calloutSize / 2);\n callout.style[offsetProperty] = `${-newMargin}px`;\n }\n const calloutStyles = this.calloutStyles(position, calloutSize, isFlip);\n Object.keys(calloutStyles).forEach((style) => {\n callout.style[style] = calloutStyles[style];\n });\n }\n}\nTooltipContentComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-tooltip',\n template: `\n \n \n\n
    \n
    \n \n \n
    \n\n \n \n \n {{ templateString }}\n \n
    \n\n
    \n \n
    \n\n
    \n `,\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.tooltip'\n }\n ]\n },] },\n];\n/** @nocollapse */\nTooltipContentComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: LocalizationService }\n];\nTooltipContentComponent.propDecorators = {\n direction: [{ type: HostBinding, args: ['attr.dir',] }],\n close: [{ type: Output }],\n cssClasses: [{ type: HostBinding, args: ['class',] }],\n className: [{ type: HostBinding, args: ['class.k-tooltip-closable',] }],\n cssPosition: [{ type: HostBinding, args: ['style.position',] }],\n tooltipWidth: [{ type: HostBinding, args: ['style.width.px',] }, { type: Input }],\n tooltipHeight: [{ type: HostBinding, args: ['style.height.px',] }, { type: Input }],\n titleTemplate: [{ type: Input }],\n anchor: [{ type: Input }],\n closable: [{ type: Input }],\n templateRef: [{ type: Input }],\n templateString: [{ type: Input }]\n};\n\n/**\n * Represents the [Kendo UI Tooltip directive for Angular]({% slug overview_tooltip %}).\n * Used to display additional information that is related to an element.\n *\n * @example\n * ```ts-no-run\n *
    \n * foo\n *
    \n * ```\n */\nclass TooltipDirective {\n constructor(tooltipWrapper, ngZone, renderer, popupService, settings, legacySettings) {\n this.tooltipWrapper = tooltipWrapper;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.popupService = popupService;\n /**\n * Specifies a selector for elements within a container which will display a tooltip\n * ([see example]({% slug anchorelements_tooltip %})). The possible values include any\n * DOM `selector`. The default value is `[title]`.\n */\n this.filter = '[title]';\n /**\n * Specifies the position of the Tooltip that is relative to the\n * anchor element ([see example]({% slug positioning_tooltip %})).\n *\n * The possible values are:\n * * `top` (default)\n * * `bottom`\n * * `left`\n * * `right`\n */\n this.position = 'top';\n /**\n * Specifies the delay in milliseconds before the Tooltip is shown.\n * * `100` (default) milliseconds.\n */\n this.showAfter = 100;\n /**\n * Specifies if the Тooltip will display a callout arrow.\n *\n * The possible values are:\n * * `true` (default)\n * * `false`\n */\n this.callout = true;\n /**\n * Specifies if the Тooltip will display a **Close** button\n * ([see example]({% slug closable_tooltip %})).\n *\n * The possible values are:\n * * `true`\n * * `false`\n */\n this.closable = false;\n /**\n * Specifies the offset in pixels between the Tooltip and the anchor. Defaults to `6` pixels.\n * If the `callout` property is set to `true`, the offset is rendered from the callout arrow.\n * If the `callout` property is set to `false`, the offset is rendered from the content of the Tooltip.\n */\n this.offset = 6;\n this.anchor = null;\n this.validPositions = ['top', 'bottom', 'right', 'left'];\n this.validShowOptions = ['hover', 'click', 'none'];\n Object.assign(this, settings, legacySettings);\n this.ngZone.runOutsideAngular(() => {\n const wrapper = this.tooltipWrapper.nativeElement;\n this.anchorTitleSubscription = fromEvent(wrapper, 'mouseover')\n .pipe(filter(() => this.filter !== ''))\n .subscribe((e) => {\n const filterElement = closest(e.target, this.filter);\n if (filterElement) {\n this.hideElementTitle({ nativeElement: filterElement });\n }\n });\n this.mouseOverSubscription = fromEvent(wrapper, 'mouseover')\n .pipe(debounceTime(100), filter(() => this.filter !== ''))\n .subscribe(e => this.onMouseOver(e));\n this.mouseOutSubscription = fromEvent(wrapper, 'mouseout')\n .pipe(debounceTime(100))\n .subscribe(e => this.onMouseOut(e));\n });\n }\n /**\n * Sets the content of the Tooltip as a template reference\n * ([see example]({% slug templates_tooltip %})).\n */\n set tooltipTemplate(value) {\n this.template = value;\n }\n get tooltipTemplate() { return this.template; }\n /**\n * Shows the Tooltip.\n * @param anchor— ElementRef|Element.\n * Specifies the element that will be used as an anchor. The Tooltip opens relative to that element.\n */\n show(anchor) {\n if (this.popupRef) {\n return;\n }\n if (anchor instanceof Element) {\n anchor = { nativeElement: anchor };\n }\n this.anchor = anchor;\n if (this.showOn === 'hover') {\n if (this.popupRef) {\n return;\n }\n clearTimeout(this.showTimeout);\n this.showTimeout = window.setTimeout(() => this.showContent(this.anchor), this.showAfter);\n }\n else {\n this.hideElementTitle(this.anchor);\n this.showContent(this.anchor);\n }\n }\n /**\n * Hides the Tooltip.\n */\n hide() {\n clearTimeout(this.showTimeout);\n const anchor = this.anchor && this.anchor.nativeElement;\n if (anchor && anchor.getAttribute('data-title')) {\n if (!anchor.getAttribute('title')) {\n anchor.setAttribute('title', anchor.getAttribute('data-title'));\n }\n anchor.setAttribute('data-title', '');\n }\n if (this.popupMouseOutSubscription) {\n this.popupMouseOutSubscription.unsubscribe();\n }\n if (this.closeClickSubscription) {\n this.closeClickSubscription.unsubscribe();\n }\n this.closePopup();\n }\n /**\n * Toggle visibility of the Tooltip.\n *\n * @param anchor— ElementRef|Element. Specifies the element that will be used as an anchor.\n * @param show— Optional. Boolean. Specifies if the Tooltip will be rendered.\n */\n toggle(anchor, show) {\n const previousAnchor = this.anchor && this.anchor.nativeElement;\n if (anchor instanceof Element) {\n anchor = { nativeElement: anchor };\n }\n if (previousAnchor !== anchor.nativeElement) {\n this.hide();\n }\n if (previousAnchor === anchor.nativeElement && this.showOn === 'click') {\n this.hide();\n }\n if (typeof show === 'undefined') {\n show = !this.popupRef;\n }\n if (show) {\n this.show(anchor);\n }\n else {\n this.hide();\n }\n }\n ngOnInit() {\n if (this.showOn === undefined) {\n this.showOn = 'hover';\n }\n this.verifyProperties();\n }\n ngOnChanges(changes) {\n if (changes.showOn) {\n this.subscribeClick();\n }\n }\n ngAfterViewChecked() {\n if (!this.popupRef) {\n return;\n }\n if (this.anchor &&\n !hasParent(this.anchor.nativeElement || this.anchor, this.tooltipWrapper.nativeElement)) {\n this.anchor = null;\n this.hide();\n }\n }\n ngOnDestroy() {\n this.hide();\n this.template = null;\n this.anchorTitleSubscription.unsubscribe();\n this.mouseOverSubscription.unsubscribe();\n this.mouseOutSubscription.unsubscribe();\n if (this.mouseClickSubscription) {\n this.mouseClickSubscription.unsubscribe();\n }\n if (this.popupPositionChangeSubscription) {\n this.popupPositionChangeSubscription.unsubscribe();\n }\n if (this.popupMouseOutSubscription) {\n this.popupMouseOutSubscription.unsubscribe();\n }\n }\n showContent(anchorRef) {\n if (!anchorRef.nativeElement.getAttribute('data-title') && !this.template) {\n return;\n }\n this.ngZone.run(() => {\n this.openPopup(anchorRef);\n this.bindContent(this.popupRef.content, anchorRef);\n });\n this.popupRef.popupAnchorViewportLeave\n .pipe(take(1))\n .subscribe(() => this.hide());\n }\n bindContent(contentComponent, anchorRef) {\n const content = contentComponent.instance;\n this.closeClickSubscription = content.close\n .subscribe(() => { this.hide(); });\n if (!this.template) {\n content.templateString = this.anchor.nativeElement.getAttribute('data-title');\n }\n else {\n content.templateRef = this.template;\n }\n if (this.titleTemplate) {\n content.titleTemplate = this.titleTemplate;\n }\n content.closeTitle = this.closeTitle;\n content.anchor = anchorRef;\n content.callout = this.callout;\n content.closable = this.closable;\n content.position = this.position;\n content.tooltipWidth = this.tooltipWidth;\n content.tooltipHeight = this.tooltipHeight;\n this.popupRef.content.changeDetectorRef.detectChanges();\n }\n hideElementTitle(elementRef) {\n const element = elementRef.nativeElement;\n if (element.getAttribute('title')) {\n element.setAttribute('data-title', element.getAttribute('title'));\n element.setAttribute('title', '');\n }\n }\n openPopup(anchorRef) {\n const alignSettings = align(this.position, this.offset);\n const anchorAlign = alignSettings.anchorAlign;\n const popupAlign = alignSettings.popupAlign;\n const popupMargin = alignSettings.popupMargin;\n this.popupRef = this.popupService.open({\n anchor: anchorRef,\n anchorAlign,\n animate: false,\n content: TooltipContentComponent,\n collision: collision(this.collision, this.position),\n margin: popupMargin,\n popupAlign,\n popupClass: 'k-popup-transparent'\n });\n this.renderer.addClass(this.popupRef.popupElement, 'k-tooltip-wrapper');\n if (this.tooltipClass) {\n this.renderer.addClass(this.popupRef.popupElement, this.tooltipClass);\n }\n const popupInstance = this.popupRef.content.instance;\n if (popupInstance.callout) {\n this.popupPositionChangeSubscription = this.popupRef.popupPositionChange\n .subscribe(({ flip }) => {\n const isFlip = flip.horizontal === true || flip.vertical === true;\n popupInstance.updateCalloutPosition(this.position, isFlip);\n });\n }\n if (this.showOn === 'hover') {\n this.ngZone.runOutsideAngular(() => {\n const popup = this.popupRef.popupElement;\n this.popupMouseOutSubscription = fromEvent(popup, 'mouseout')\n .subscribe((e) => this.onMouseOut(e));\n });\n }\n }\n closePopup() {\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n }\n if (this.popupPositionChangeSubscription) {\n this.popupPositionChangeSubscription.unsubscribe();\n }\n }\n subscribeClick() {\n if (this.mouseClickSubscription) {\n this.mouseClickSubscription.unsubscribe();\n }\n if (this.showOn === 'click') {\n this.mouseClickSubscription = fromEvent(document, 'click')\n .pipe(filter(() => this.filter !== ''))\n .subscribe(e => this.onMouseClick(e, this.tooltipWrapper.nativeElement));\n }\n }\n onMouseClick(e, wrapper) {\n const target = e.target;\n const filterElement = closest(target, this.filter);\n const popup = this.popupRef && this.popupRef.popupElement;\n if (popup) {\n if (popup.contains(target)) {\n return;\n }\n if (this.closable) {\n return;\n }\n }\n if (wrapper.contains(target) && filterElement) {\n this.toggle(filterElement, true);\n }\n else if (popup) {\n this.hide();\n }\n }\n onMouseOver(e) {\n const filterElement = closest(e.target, this.filter);\n if (this.showOn !== 'hover') {\n return;\n }\n if (filterElement) {\n this.toggle(filterElement, true);\n }\n }\n onMouseOut(e) {\n if (this.showOn !== 'hover') {\n return;\n }\n if (this.closable) {\n return;\n }\n const popup = this.popupRef && this.popupRef.popupElement;\n const relatedTarget = e.relatedTarget;\n if (relatedTarget && this.anchor && contains(this.anchor.nativeElement, relatedTarget)) {\n return;\n }\n if (relatedTarget && contains(popup, relatedTarget)) {\n return;\n }\n this.hide();\n }\n verifyProperties() {\n if (!isDevMode()) {\n return;\n }\n if (!containsItem(this.validPositions, this.position)) {\n throw new Error(`Invalid value provided for position property.The available options are 'top', 'bottom', 'left', or 'right'.`);\n }\n if (!containsItem(this.validShowOptions, this.showOn)) {\n throw new Error(`Invalid value provided for showOn property.The available options are 'hover' or 'none'.`);\n }\n }\n}\nTooltipDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoTooltip]',\n exportAs: 'kendoTooltip'\n },] },\n];\n/** @nocollapse */\nTooltipDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone },\n { type: Renderer2 },\n { type: PopupService },\n { type: TooltipSettings, decorators: [{ type: Optional }] },\n { type: TooltipSettings, decorators: [{ type: Optional }, { type: Inject, args: [TOOLTIP_SETTINGS,] }] }\n];\nTooltipDirective.propDecorators = {\n filter: [{ type: Input }],\n position: [{ type: Input }],\n titleTemplate: [{ type: Input }],\n showOn: [{ type: Input }],\n showAfter: [{ type: Input }],\n callout: [{ type: Input }],\n closable: [{ type: Input }],\n offset: [{ type: Input }],\n tooltipWidth: [{ type: Input }],\n tooltipHeight: [{ type: Input }],\n tooltipClass: [{ type: Input }],\n collision: [{ type: Input }],\n closeTitle: [{ type: Input }],\n tooltipTemplate: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass LocalizedMessagesDirective extends ComponentMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: ComponentMessages,\n useExisting: forwardRef(() => LocalizedMessagesDirective)\n }\n ],\n selector: `[kendoTooltipLocalizedMessages]`\n },] },\n];\n/** @nocollapse */\nLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\nLocalizedMessagesDirective.propDecorators = {\n closeTitle: [{ type: Input }]\n};\n\nconst COMPONENT_DIRECTIVES = [TooltipDirective, TooltipContentComponent, LocalizedMessagesDirective];\nconst COMPONENT_MODULES = [PopupModule];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Tooltip component.\n *\n * The package exports:\n * - `KendoTooltipDirective`—The Tooltip directive class.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Tooltip module\n * import { TooltipModule } from '@progress/kendo-angular-tooltip';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * _@NgModule{{\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, TooltipModule], // import TooltipModule module\n * bootstrap: [AppComponent]\n * }}\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n * ```\n */\nclass TooltipModule {\n}\nTooltipModule.decorators = [\n { type: NgModule, args: [{\n declarations: [COMPONENT_DIRECTIVES],\n entryComponents: [TooltipContentComponent],\n imports: [CommonModule, ...COMPONENT_MODULES],\n exports: [COMPONENT_DIRECTIVES]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { LocalizedMessagesDirective, TooltipContentComponent, TooltipDirective, TooltipModule, TooltipSettings, TOOLTIP_SETTINGS };\n","/**-----------------------------------------------------------------------------------------\n* Copyright © 2020 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport { EventEmitter, Injectable, Directive, TemplateRef, forwardRef, Component, NgZone, Renderer2, ChangeDetectorRef, ElementRef, Input, ContentChild, ViewChild, Output, HostBinding, HostListener, ViewChildren, ViewContainerRef, NgModule, isDevMode } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { guid, Keys, isDocumentAvailable, KendoInput, isChanged } from '@progress/kendo-angular-common';\nimport { fromEvent, merge } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { HttpHeaders, HttpRequest, HttpEventType, HttpResponse, HttpClient } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\n\n/**\n * Lists the possible states of a file.\n */\nvar FileState;\n(function (FileState) {\n /**\n * The file upload process has failed.\n */\n FileState[FileState[\"Failed\"] = 0] = \"Failed\";\n /**\n * An initially selected fake file without a set state.\n */\n FileState[FileState[\"Initial\"] = 1] = \"Initial\";\n /**\n * The file is selected.\n */\n FileState[FileState[\"Selected\"] = 2] = \"Selected\";\n /**\n * The file is successfully uploaded.\n */\n FileState[FileState[\"Uploaded\"] = 3] = \"Uploaded\";\n /**\n * The file is in the process of uploading.\n */\n FileState[FileState[\"Uploading\"] = 4] = \"Uploading\";\n /**\n * The file upload process has been paused.\n */\n FileState[FileState[\"Paused\"] = 5] = \"Paused\";\n})(FileState || (FileState = {}));\n\n/**\n * @hidden\n */\nclass FileMap {\n constructor() {\n this._files = {};\n }\n add(file) {\n let uid = file.uid;\n if (this.has(uid)) {\n if (file.validationErrors && file.validationErrors.length > 0) {\n this._files[uid].unshift(file);\n }\n else {\n this._files[uid].push(file);\n }\n }\n else {\n this._files[uid] = [file];\n }\n }\n remove(uid) {\n if (this.has(uid)) {\n this._files[uid] = null;\n delete this._files[uid];\n }\n }\n clear() {\n let allFiles = this._files;\n for (let uid in allFiles) {\n if (allFiles.hasOwnProperty(uid)) {\n for (let file of allFiles[uid]) {\n if (file.httpSubscription) {\n file.httpSubscription.unsubscribe();\n }\n }\n allFiles[uid] = null;\n delete allFiles[uid];\n }\n }\n }\n has(uid) {\n return uid in this._files;\n }\n get(uid) {\n return this._files[uid];\n }\n setFilesState(files, state$$1) {\n for (let file of files) {\n this.setFilesStateByUid(file.uid, state$$1);\n }\n }\n setFilesStateByUid(uid, state$$1) {\n this.get(uid).forEach((f) => {\n f.state = state$$1;\n });\n }\n get count() {\n return Object.getOwnPropertyNames(this._files).length;\n }\n get files() {\n let initial = this._files;\n let transformed = [];\n for (let uid in initial) {\n if (initial.hasOwnProperty(uid)) {\n transformed.push(initial[uid]);\n }\n }\n return transformed;\n }\n get filesFlat() {\n let initial = this._files;\n let transformed = [];\n for (let uid in initial) {\n if (initial.hasOwnProperty(uid)) {\n let current = initial[uid];\n current.forEach((file) => {\n transformed.push(file);\n });\n }\n }\n return transformed;\n }\n get filesToUpload() {\n let files = this._files;\n let notUploaded = [];\n for (let uid in files) {\n if (files.hasOwnProperty(uid)) {\n let currentFiles = files[uid];\n let currentFilesValid = true;\n for (let file of currentFiles) {\n if (file.state !== FileState.Selected || (file.validationErrors && file.validationErrors.length > 0)) {\n currentFilesValid = false;\n }\n }\n if (currentFilesValid) {\n notUploaded.push(currentFiles);\n }\n }\n }\n return notUploaded;\n }\n get firstFileToUpload() {\n let files = this._files;\n for (let uid in files) {\n if (files.hasOwnProperty(uid)) {\n let currentFiles = files[uid];\n let currentFilesValid = true;\n for (let file of currentFiles) {\n if (file.state !== FileState.Selected || (file.validationErrors && file.validationErrors.length > 0)) {\n currentFilesValid = false;\n }\n }\n if (currentFilesValid) {\n return currentFiles;\n }\n }\n }\n return null;\n }\n hasFileWithState(fileStates) {\n let files = this._files;\n for (let uid in files) {\n if (files.hasOwnProperty(uid)) {\n let currentFiles = files[uid];\n for (let file of currentFiles) {\n if (fileStates.indexOf(file.state) >= 0) {\n return true;\n }\n }\n }\n }\n return false;\n }\n}\n\n/**\n * Arguments for the `cancel` event. The `cancel` event fires when\n * the user cancels the process of uploading a file or a batch of files.\n *\n * ```ts-no-run\n * @Component({\n * selector: 'my-upload',\n * template: `\n *

    Click the icon during upload to trigger the event

    \n * \n * \n * `\n * })\n * export class UploadComponent {\n * uploadSaveUrl = 'saveUrl'; // should represent an actual API endpoint\n * uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\n *\n * cancelEventHandler(e: CancelEvent) {\n * console.log('Canceling file upload', e.files);\n * }\n * }\n * ```\n */\nclass CancelEvent {\n /**\n * Constructs the event arguments for the `cancel` event.\n * @param files - The list of the files that were going to be uploaded.\n */\n constructor(files) {\n this.files = files;\n }\n}\n\n/**\n * @hidden\n */\nclass PreventableEvent {\n constructor() {\n this.prevented = false;\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * If the event is prevented by any of its subscribers, returns `true`.\n *\n * @returns `true` if the default action was prevented. Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * Arguments for the `clear` event. The `clear` event fires when\n * the **Clear** button is clicked. At this point, the selected files are about to be cleared.\n *\n * ```ts-no-run\n * @Component({\n * selector: 'my-upload',\n * template: `\n * \n * \n * `\n * })\n * export class UploadComponent {\n * uploadSaveUrl = 'saveUrl'; // should represent an actual API endpoint\n * uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\n *\n * clearEventHandler(e: ClearEvent) {\n * console.log('Clearing the file upload');\n * }\n * }\n * ```\n */\nclass ClearEvent extends PreventableEvent {\n /**\n * Constructs the event arguments for the `clear` event.\n */\n constructor() { super(); }\n}\n\n/**\n * Arguments for the `error` event. The `error` event fires when\n * an `upload` or `remove` operation fails.\n *\n * ```ts-no-run\n * @Component({\n * selector: 'my-upload',\n * template: `\n * \n * \n * `\n * })\n * export class UploadComponent {\n * uploadSaveUrl = 'saveUrl'; // should represent an actual API endpoint\n * uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\n *\n * errorEventHandler(e: ErrorEvent) {\n * console.log('An error occurred');\n * }\n * }\n * ```\n */\nclass ErrorEvent {\n /**\n * Constructs the event arguments for the `error` event.\n *\n * @param files - The list of the files that failed to be uploaded or removed.\n * @param operation - The operation type (`upload` or `remove`).\n * @param response - The response object returned by the server.\n */\n constructor(files, operation, response) {\n this.files = files;\n this.operation = operation;\n this.response = response;\n }\n}\n\n/**\n * Arguments for the `pause` event. The `pause` event fires when the user\n * pauses a file that is currently uploading.\n *\n * ```ts-no-run\n * @Component({\n * selector: 'my-upload',\n * template: `\n * \n * \n * `\n * })\n * export class UploadComponent {\n * uploadSaveUrl = 'saveUrl'; // should represent an actual API endpoint\n * uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\n *\n * pauseEventHandler(ev: PauseEvent) {\n * console.log('File paused');\n * }\n * }\n * ```\n *\n */\nclass PauseEvent {\n /**\n * Constructs the event arguments for the `pause` event.\n * @param file - The file that is going to be paused.\n */\n constructor(file) {\n this.file = file;\n }\n}\n\n/**\n * Arguments for the `remove` event. The `remove` event fires when an uploaded\n * or selected file is about to be removed. If you cancel the event, the removal is prevented.\n *\n * ```ts-no-run\n * @Component({\n * selector: 'my-upload',\n * template: `\n * \n * \n * `\n * })\n * export class UploadComponent {\n * uploadSaveUrl = 'saveUrl'; // should represent an actual API endpoint\n * uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\n *\n * removeEventHandler(e: RemoveEvent) {\n * console.log('Removing a file');\n * }\n * }\n * ```\n */\nclass RemoveEvent extends PreventableEvent {\n /**\n * Constructs the event arguments for the `remove` event.\n * @param files - The list of the files that will be removed.\n * @param headers - The headers of the request.\n */\n constructor(files, headers) {\n super();\n this.files = files;\n this.headers = headers;\n }\n}\n\n/**\n * Arguments for the `resume` event. The `resume` event fires when the user\n * resumes the upload of a file that has been previously paused.\n *\n * ```ts-no-run\n * @Component({\n * selector: 'my-upload',\n * template: `\n * \n * \n * `\n * })\n * export class UploadComponent {\n * uploadSaveUrl = 'saveUrl'; // should represent an actual API endpoint\n * uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\n *\n * resumeEventHandler(ev: ResumeEvent) {\n * console.log('File resumed');\n * }\n * }\n * ```\n *\n */\nclass ResumeEvent {\n /**\n * Constructs the event arguments for the `resume` event.\n * @param file - The file that is going to be resumed.\n */\n constructor(file) {\n this.file = file;\n }\n}\n\n/**\n * Arguments for the `select` event. The `select` event fires when the user\n * selects a file or multiple files for upload. If you cancel the event, the selection is prevented.\n *\n * ```ts-no-run\n * @Component({\n * selector: 'my-upload',\n * template: `\n * \n * \n * `\n * })\n * export class UploadComponent {\n * uploadSaveUrl = 'saveUrl'; // should represent an actual API endpoint\n * uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\n *\n * selectEventHandler(e: SelectEvent) {\n * console.log('File selected');\n * }\n * }\n * ```\n */\nclass SelectEvent extends PreventableEvent {\n /**\n * Constructs the event arguments for the `select` event.\n * @param files - The list of the selected files.\n */\n constructor(files) {\n super();\n this.files = files;\n }\n}\n\n/**\n * Arguments for the `success` event. The `success` event fires when\n * the selected files are successfully uploaded or removed.\n *\n * ```ts-no-run\n * @Component({\n * selector: 'my-upload',\n * template: `\n * \n * \n * `\n * })\n * export class UploadComponent {\n * uploadSaveUrl = 'saveUrl'; // should represent an actual API endpoint\n * uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\n *\n * successEventHandler(e: SuccessEvent) {\n * console.log('The ' + e.operation + ' was successful!');\n * }\n * }\n * ```\n */\nclass SuccessEvent extends PreventableEvent {\n /**\n * Constructs the event arguments for the `success` event.\n * @param files - The list of the files that were uploaded or removed.\n * @param operation - The operation type (`upload` or `remove`).\n * @param response - The response object returned by the server.\n */\n constructor(files, operation, response) {\n super();\n this.files = files;\n this.operation = operation;\n this.response = response;\n }\n}\n\n/**\n * Arguments for the `upload` event. The `upload` event fires when one or more files are about\n * to be uploaded. If you cancel the event, the upload is prevented. You can add headers to the request.\n *\n * ```ts-no-run\n * @Component({\n * selector: 'my-upload',\n * template: `\n * \n * \n * `\n * })\n * export class UploadComponent {\n * uploadSaveUrl = 'saveUrl'; // should represent an actual API endpoint\n * uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\n *\n * uploadEventHandler(e: UploadEvent) {\n * e.headers = e.headers.append('X-Foo', 'Bar');\n * }\n * }\n * ```\n */\nclass UploadEvent extends PreventableEvent {\n /**\n * Constructs the event arguments for the `upload` event.\n * @param files - The list of the files that will be uploaded.\n * @param headers - The headers of the request.\n */\n constructor(files, headers) {\n super();\n this.files = files;\n this.headers = headers;\n }\n}\n\n/**\n * Arguments for the `uploadprogress` event. The `uploadprogress` event\n * fires when the files are in the process of uploading.\n *\n * ```ts-no-run\n * @Component({\n * selector: 'my-upload',\n * template: `\n * \n * \n * `\n * })\n * export class UploadComponent {\n * uploadSaveUrl = 'saveUrl'; // should represent an actual API endpoint\n * uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\n *\n * uploadProgressEventHandler(e: UploadProgressEvent) {\n * console.log(e.files[0].name + ' is ' + e.percentComplete + ' uploaded');\n * }\n * }\n * ```\n */\nclass UploadProgressEvent {\n /**\n * Constructs the event arguments for the `uploadprogress` event.\n * @param files - The list of files that are being uploaded.\n * @param percentComplete - The portion that has been uploaded.\n */\n constructor(files, percentComplete) {\n this.files = files;\n this.percentComplete = percentComplete;\n }\n}\n\n/**\n * @hidden\n */\nconst fileGroupMap = {\n audio: [\n \".aif\", \".iff\", \".m3u\", \".m4a\", \".mid\", \".mp3\", \".mpa\", \".wav\", \".wma\", \".ogg\", \".wav\", \".wma\", \".wpl\"\n ],\n video: [\n \".3g2\", \".3gp\", \".avi\", \".asf\", \".flv\", \".m4u\", \".rm\", \".h264\", \".m4v\", \".mkv\", \".mov\", \".mp4\", \".mpg\", \".rm\", \".swf\", \".vob\", \".wmv\"\n ],\n image: [\n \".ai\", \".dds\", \".heic\", \".jpe\", \"jfif\", \".jif\", \".jp2\", \".jps\", \".eps\", \".bmp\", \".gif\", \".jpeg\", \".jpg\", \".png\", \".ps\", \".psd\", \".svg\", \".svgz\", \".tif\", \".tiff\"\n ],\n txt: [\n \".doc\", \".docx\", \".log\", \".pages\", \".tex\", \".wpd\", \".wps\", \".odt\", \".rtf\", \".text\", \".txt\", \".wks\"\n ],\n presentation: [\n \".key\", \".odp\", \".pps\", \".ppt\", \".pptx\"\n ],\n data: [\n \".xlr\", \".xls\", \".xlsx\"\n ],\n programming: [\n \".tmp\", \".bak\", \".msi\", \".cab\", \".cpl\", \".cur\", \".dll\", \".dmp\", \".drv\", \".icns\", \".ico\", \".link\", \".sys\", \".cfg\",\n \".ini\", \".asp\", \".aspx\", \".cer\", \".csr\", \".css\", \".dcr\", \".htm\", \".html\", \".js\", \".php\", \".rss\", \".xhtml\"\n ],\n pdf: [\n \".pdf\"\n ],\n config: [\n \".apk\", \".app\", \".bat\", \".cgi\", \".com\", \".exe\", \".gadget\", \".jar\", \".wsf\"\n ],\n zip: [\n \".7z\", \".cbr\", \".gz\", \".sitx\", \".arj\", \".deb\", \".pkg\", \".rar\", \".rpm\", \".tar.gz\", \".z\", \".zip\", \".zipx\"\n ],\n discImage: [\n \".dmg\", \".iso\", \".toast\", \".vcd\", \".bin\", \".cue\", \".mdf\"\n ]\n};\n\n/* tslint:disable: no-bitwise */\n/**\n * @hidden\n */\nconst getTotalFilesSizeMessage = (files) => {\n let totalSize = 0;\n let i;\n if (typeof files[0].size === \"number\") {\n for (i = 0; i < files.length; i++) {\n if (files[i].size) {\n totalSize += files[i].size;\n }\n }\n }\n else {\n return \"\";\n }\n totalSize /= 1024;\n if (totalSize < 1024) {\n return totalSize.toFixed(2) + \" KB\";\n }\n else {\n return (totalSize / 1024).toFixed(2) + \" MB\";\n }\n};\nconst stripPath = (name) => {\n let slashIndex = name.lastIndexOf(\"\\\\\");\n return (slashIndex !== -1) ? name.substr(slashIndex + 1) : name;\n};\nconst getFileExtension = (fileName) => {\n const rFileExtension = /\\.([^\\.]+)$/;\n const matches = fileName.match(rFileExtension);\n return matches ? matches[0] : \"\";\n};\nconst ampRegExp = /&/g;\nconst ltRegExp = //g;\nconst htmlEncode = (value) => {\n return (\"\" + value).replace(ampRegExp, \"&\")\n .replace(ltRegExp, \"<\")\n .replace(gtRegExp, \">\")\n .replace(quoteRegExp, \""\")\n .replace(aposRegExp, \"'\");\n};\n/**\n * @hidden\n */\nconst validateInitialFileInfo = (file) => {\n if (file instanceof Object && file.hasOwnProperty(\"name\")) {\n return true;\n }\n return false;\n};\n/**\n * @hidden\n */\nconst validateInitialFileSelectFile = (file) => {\n if (file instanceof File || validateInitialFileInfo(file)) {\n return true;\n }\n return false;\n};\n/**\n * @hidden\n */\nconst getInitialFileInfo = (fakeFile) => {\n fakeFile.extension = fakeFile.extension || getFileExtension(fakeFile.name);\n fakeFile.name = htmlEncode(fakeFile.name);\n fakeFile.size = fakeFile.size || 0;\n if (!fakeFile.hasOwnProperty(\"state\")) {\n fakeFile.state = FileState.Initial;\n }\n if (!fakeFile.hasOwnProperty(\"uid\")) {\n fakeFile.uid = guid();\n }\n return fakeFile;\n};\n/**\n * @hidden\n */\nconst convertFileToFileInfo = (file) => {\n let fileInfo = getFileInfo(file);\n fileInfo.uid = guid();\n // Used to differentiate initial FileInfo objects and actual Files\n fileInfo.state = FileState.Selected;\n return fileInfo;\n};\nconst getFileInfo = (rawFile) => {\n const fileName = rawFile.name;\n const fileSize = rawFile.size;\n return {\n extension: getFileExtension(fileName),\n name: htmlEncode(fileName),\n rawFile: rawFile,\n size: fileSize,\n state: FileState.Selected\n };\n};\n/**\n * @hidden\n */\nconst getAllFileInfo = (rawFiles) => {\n let allFileInfo = new Array();\n let i;\n for (i = 0; i < rawFiles.length; i++) {\n allFileInfo.push(getFileInfo(rawFiles[i]));\n }\n return allFileInfo;\n};\n/**\n * @hidden\n */\nconst fileHasValidationErrors = (file) => {\n if (file.validationErrors && file.validationErrors.length > 0) {\n return true;\n }\n return false;\n};\n/**\n * @hidden\n */\nconst filesHaveValidationErrors = (files) => {\n for (let file of files) {\n if (fileHasValidationErrors(file)) {\n return true;\n }\n }\n return false;\n};\n/**\n * @hidden\n */\nconst inputFiles = (input) => {\n if (input.files) {\n return getAllFileInfo(input.files);\n }\n else {\n //Required for testing\n let fileNames = input.value.split(\"|\").map((file, index) => {\n let fileName = file.trim();\n return {\n extension: getFileExtension(fileName),\n name: stripPath(fileName),\n rawFile: null,\n size: (index + 1) * 1000,\n state: FileState.Selected\n };\n });\n return fileNames;\n }\n};\n/**\n * @hidden\n */\nconst assignGuidToFiles = (files, isUnique) => {\n const uid = guid();\n return files.map((file) => {\n file.uid = isUnique ? guid() : uid;\n return file;\n });\n};\nconst focusableRegex = /^(?:a|input|select|textarea|button|object)$/i;\n/**\n * @hidden\n */\nconst IGNORE_TARGET_CLASSES = 'k-icon k-select k-input k-multiselect-wrap';\n/**\n * @hidden\n */\nconst UPLOAD_CLASSES = 'k-upload-button k-clear-selected k-upload-selected k-upload-action';\nconst isVisible = (element) => {\n const rect = element.getBoundingClientRect();\n return !!(rect.width && rect.height) && window.getComputedStyle(element).visibility !== 'hidden';\n};\nconst toClassList = (classNames) => String(classNames).trim().split(' ');\n/**\n * @hidden\n */\nconst hasClasses = (element, classNames) => {\n const namesList = toClassList(classNames);\n return Boolean(toClassList(element.className).find((className) => namesList.indexOf(className) >= 0));\n};\n/**\n * @hidden\n */\nconst isFocusable = (element, checkVisibility = true) => {\n if (element.tagName) {\n const tagName = element.tagName.toLowerCase();\n const tabIndex = element.getAttribute('tabIndex');\n const validTabIndex = tabIndex !== null && !isNaN(tabIndex) && tabIndex > -1;\n let focusable = false;\n if (focusableRegex.test(tagName)) {\n focusable = !element.disabled;\n }\n else {\n focusable = validTabIndex;\n }\n return focusable && (!checkVisibility || isVisible(element));\n }\n return false;\n};\n/**\n * @hidden\n */\nconst getFileGroupCssClass = (fileExtension) => {\n const initial = 'k-i-file';\n for (let group in fileGroupMap) {\n if (fileGroupMap[group].indexOf(fileExtension) >= 0) {\n return `${initial}-${group}`;\n }\n }\n return initial;\n};\n\n/**\n * @hidden\n */\nclass ChunkMap {\n constructor() {\n this._files = {};\n }\n add(uid, totalChunks) {\n const initialChunkInfo = {\n index: 0,\n position: 0,\n retries: 0,\n totalChunks: totalChunks\n };\n this._files[uid] = initialChunkInfo;\n return initialChunkInfo;\n }\n remove(uid) {\n if (this.has(uid)) {\n this._files[uid] = null;\n delete this._files[uid];\n }\n }\n has(uid) {\n return uid in this._files;\n }\n get(uid) {\n return this._files[uid];\n }\n}\n\n/**\n * @hidden\n */\nclass UploadService {\n constructor(http) {\n this.http = http;\n this.cancelEvent = new EventEmitter();\n this.clearEvent = new EventEmitter();\n this.completeEvent = new EventEmitter();\n this.errorEvent = new EventEmitter();\n this.pauseEvent = new EventEmitter();\n this.removeEvent = new EventEmitter();\n this.resumeEvent = new EventEmitter();\n this.selectEvent = new EventEmitter();\n this.successEvent = new EventEmitter();\n this.uploadEvent = new EventEmitter();\n this.uploadProgressEvent = new EventEmitter();\n /**\n * Required for the `ControlValueAccessor` integration\n */\n this.changeEvent = new EventEmitter();\n /**\n * Default async settings\n */\n this.async = {\n autoUpload: true,\n batch: false,\n chunk: false,\n concurrent: true,\n removeField: \"fileNames\",\n removeHeaders: new HttpHeaders(),\n removeMethod: \"POST\",\n removeUrl: \"\",\n responseType: \"json\",\n saveField: \"files\",\n saveHeaders: new HttpHeaders(),\n saveMethod: \"POST\",\n saveUrl: \"\",\n withCredentials: true\n };\n /**\n * Default chunk settings\n */\n this.chunk = {\n autoRetryAfter: 100,\n size: 1024 * 1024,\n maxAutoRetries: 1,\n resumable: true\n };\n this.component = 'Upload';\n this.chunkMap = new ChunkMap();\n this.fileList = new FileMap();\n }\n get files() {\n return this.fileList;\n }\n setChunkSettings(settings) {\n if (settings !== false) {\n this.async.chunk = true;\n if (typeof settings === \"object\") {\n this.chunk = Object.assign({}, this.chunk, settings);\n }\n }\n }\n onChange() {\n let files = this.fileList.filesFlat.filter((file) => {\n return file.state === FileState.Initial ||\n file.state === FileState.Uploaded;\n });\n this.changeEvent.emit(files.length > 0 ? files : null);\n }\n addFiles(files) {\n let selectEventArgs = new SelectEvent(files);\n this.selectEvent.emit(selectEventArgs);\n if (!selectEventArgs.isDefaultPrevented()) {\n for (let file of files) {\n this.fileList.add(file);\n }\n if (this.async.autoUpload) {\n this.uploadFiles();\n }\n }\n if (this.component === 'FileSelect') {\n const flatFiles = this.fileList.filesFlat;\n this.changeEvent.emit(flatFiles.length > 0 ? flatFiles : null);\n }\n }\n addInitialFiles(initialFiles) {\n this.fileList.clear();\n initialFiles.forEach((file) => {\n let fakeFile = getInitialFileInfo(file);\n this.fileList.add(fakeFile);\n });\n }\n addInitialFileSelectFiles(initialFiles) {\n this.fileList.clear();\n initialFiles.forEach((file) => {\n if (file instanceof File) {\n this.fileList.add(convertFileToFileInfo(file));\n }\n else {\n this.fileList.add(getInitialFileInfo(file));\n }\n });\n }\n resumeFile(uid) {\n const fileToResume = this.fileList.get(uid);\n this.resumeEvent.emit(new ResumeEvent(fileToResume[0]));\n this.fileList.setFilesStateByUid(uid, FileState.Uploading);\n this._uploadFiles([fileToResume]);\n }\n pauseFile(uid) {\n let pausedFile = this.fileList.get(uid)[0];\n this.pauseEvent.emit(new PauseEvent(pausedFile));\n this.fileList.setFilesStateByUid(uid, FileState.Paused);\n }\n removeFiles(uid) {\n let removedFiles = this.fileList.get(uid);\n // Clone the Headers so that the default ones are not overridden\n let removeEventArgs = new RemoveEvent(removedFiles, this.cloneRequestHeaders(this.async.removeHeaders));\n this.removeEvent.emit(removeEventArgs);\n if (!removeEventArgs.isDefaultPrevented()) {\n if (this.component === 'Upload' &&\n (removedFiles[0].state === FileState.Uploaded ||\n removedFiles[0].state === FileState.Initial)) {\n this.performRemove(removedFiles, removeEventArgs);\n }\n else {\n this.fileList.remove(uid);\n if (this.component === 'FileSelect') {\n const flatFiles = this.fileList.filesFlat;\n this.changeEvent.emit(flatFiles.length > 0 ? flatFiles : null);\n }\n }\n }\n }\n cancelFiles(uid) {\n let canceledFiles = this.fileList.get(uid);\n let cancelEventArgs = new CancelEvent(canceledFiles);\n this.cancelEvent.emit(cancelEventArgs);\n for (let file of canceledFiles) {\n if (file.httpSubscription) {\n file.httpSubscription.unsubscribe();\n }\n }\n this.fileList.remove(uid);\n this.checkAllComplete();\n }\n clearFiles() {\n let clearEventArgs = new ClearEvent();\n this.clearEvent.emit(clearEventArgs);\n if (!clearEventArgs.isDefaultPrevented()) {\n let triggerChange = this.fileList.hasFileWithState([\n FileState.Initial,\n FileState.Uploaded\n ]);\n this.fileList.clear();\n if (triggerChange) {\n this.onChange();\n }\n }\n }\n uploadFiles() {\n let filesToUpload = [];\n if (this.async.concurrent) {\n filesToUpload = this.fileList.filesToUpload;\n }\n if (!this.async.concurrent && !this.fileList.hasFileWithState([FileState.Uploading])) {\n filesToUpload = [this.fileList.firstFileToUpload];\n }\n if (filesToUpload && filesToUpload.length > 0) {\n this._uploadFiles(filesToUpload);\n }\n }\n retryFiles(uid) {\n let filesToRetry = [this.fileList.get(uid)];\n if (filesToRetry) {\n this._uploadFiles(filesToRetry);\n }\n }\n _uploadFiles(allFiles) {\n for (let filesToUpload of allFiles) {\n if (filesToUpload[0].state === FileState.Paused) {\n return;\n }\n // Clone the Headers so that the default ones are not overridden\n let uploadEventArgs = new UploadEvent(filesToUpload, this.cloneRequestHeaders(this.async.saveHeaders));\n this.uploadEvent.emit(uploadEventArgs);\n if (!uploadEventArgs.isDefaultPrevented()) {\n this.fileList.setFilesState(filesToUpload, FileState.Uploading);\n let httpSubcription = this.performUpload(filesToUpload, uploadEventArgs);\n filesToUpload.forEach((file) => {\n file.httpSubscription = httpSubcription;\n });\n }\n else {\n this.fileList.remove(filesToUpload[0].uid);\n }\n }\n }\n performRemove(files, removeEventArgs) {\n const async = this.async;\n let fileNames = files.map((file) => {\n return file.name;\n });\n let formData = this.populateRemoveFormData(fileNames, removeEventArgs.data);\n let options = this.populateRequestOptions(removeEventArgs.headers);\n let removeRequest = new HttpRequest(async.removeMethod, async.removeUrl, formData, options);\n this.http.request(removeRequest)\n .subscribe(success => {\n this.onSuccess(success, files, \"remove\");\n }, error => {\n this.onError(error, files, \"remove\");\n });\n }\n performUpload(files, uploadEventArgs) {\n const async = this.async;\n let formData = this.populateUploadFormData(files, uploadEventArgs.data);\n let options = this.populateRequestOptions(uploadEventArgs.headers);\n let uploadRequest = new HttpRequest(async.saveMethod, async.saveUrl, formData, options);\n let httpSubscription = this.http.request(uploadRequest)\n .subscribe(event => {\n if (event.type === HttpEventType.UploadProgress && !this.async.chunk) {\n this.onProgress(event, files);\n }\n else if (event instanceof HttpResponse) {\n this.onSuccess(event, files, \"upload\");\n this.checkAllComplete();\n }\n }, error => {\n this.onError(error, files, \"upload\");\n this.checkAllComplete();\n });\n return httpSubscription;\n }\n onSuccess(successResponse, files, operation) {\n if (operation === \"upload\" && this.async.chunk) {\n this.onChunkProgress(files);\n if (this.isChunkUploadComplete(files[0].uid)) {\n this.removeChunkInfo(files[0].uid);\n }\n else {\n this.updateChunkInfo(files[0].uid);\n this._uploadFiles([files]);\n return;\n }\n }\n const successArgs = new SuccessEvent(files, operation, successResponse);\n this.successEvent.emit(successArgs);\n if (operation === \"upload\") {\n this.fileList.setFilesState(files, successArgs.isDefaultPrevented() ? FileState.Failed : FileState.Uploaded);\n }\n else {\n if (!successArgs.isDefaultPrevented()) {\n this.fileList.remove(files[0].uid);\n }\n }\n if (!successArgs.isDefaultPrevented()) {\n this.onChange();\n }\n }\n onError(errorResponse, files, operation) {\n if (operation === \"upload\" && this.async.chunk) {\n const maxRetries = this.chunk.maxAutoRetries;\n const chunkInfo = this.chunkMap.get(files[0].uid);\n if (chunkInfo.retries < maxRetries) {\n chunkInfo.retries += 1;\n setTimeout(() => {\n this.retryFiles(files[0].uid);\n }, this.chunk.autoRetryAfter);\n return;\n }\n }\n const errorArgs = new ErrorEvent(files, operation, errorResponse);\n this.errorEvent.emit(errorArgs);\n if (operation === \"upload\") {\n this.fileList.setFilesState(files, FileState.Failed);\n }\n }\n onProgress(event, files) {\n const percentComplete = Math.round(100 * event.loaded / event.total);\n const progressArgs = new UploadProgressEvent(files, percentComplete < 100 ? percentComplete : 100);\n this.uploadProgressEvent.emit(progressArgs);\n }\n onChunkProgress(files) {\n const chunkInfo = this.chunkMap.get(files[0].uid);\n let percentComplete = 0;\n if (chunkInfo) {\n if (chunkInfo.index === chunkInfo.totalChunks - 1) {\n percentComplete = 100;\n }\n else {\n percentComplete = Math.round(((chunkInfo.index + 1) / chunkInfo.totalChunks) * 100);\n }\n }\n const progressArgs = new UploadProgressEvent(files, percentComplete < 100 ? percentComplete : 100);\n this.uploadProgressEvent.emit(progressArgs);\n }\n checkAllComplete() {\n if (!this.fileList.hasFileWithState([\n FileState.Selected,\n FileState.Uploading,\n FileState.Paused\n ])) {\n this.completeEvent.emit();\n }\n else if (this.shouldUploadNextFile()) {\n this.uploadFiles();\n }\n }\n shouldUploadNextFile() {\n return !this.async.concurrent &&\n this.fileList.hasFileWithState([FileState.Selected]) &&\n !this.fileList.hasFileWithState([FileState.Uploading]);\n }\n cloneRequestHeaders(headers) {\n let cloned = {};\n if (headers) {\n headers.keys().forEach((key) => {\n cloned[key] = headers.get(key);\n });\n }\n return new HttpHeaders(cloned);\n }\n populateRequestOptions(headers) {\n return {\n headers: headers,\n reportProgress: true,\n responseType: this.async.responseType,\n withCredentials: this.async.withCredentials\n };\n }\n populateUploadFormData(files, clientData) {\n const saveField = this.async.saveField;\n let data = new FormData();\n this.populateClientFormData(data, clientData);\n if (this.async.chunk) {\n data.append(saveField, this.getNextChunk(files[0]));\n data.append(\"metadata\", this.getChunkMetadata(files[0]));\n }\n else {\n for (let file of files) {\n data.append(saveField, file.rawFile);\n }\n }\n return data;\n }\n populateRemoveFormData(fileNames, clientData) {\n let data = new FormData();\n this.populateClientFormData(data, clientData);\n for (let fileName of fileNames) {\n data.append(this.async.removeField, fileName);\n }\n return data;\n }\n populateClientFormData(data, clientData) {\n for (var key in clientData) {\n if (clientData.hasOwnProperty(key)) {\n data.append(key, clientData[key]);\n }\n }\n }\n /* Chunking Helper Methods Section */\n getNextChunk(file) {\n const info = this.getChunkInfo(file);\n const newPosition = info.position + this.chunk.size;\n return file.rawFile.slice(info.position, newPosition);\n }\n getChunkInfo(file) {\n let chunkInfo = this.chunkMap.get(file.uid);\n if (!chunkInfo) {\n const totalChunks = Math.ceil(file.size / this.chunk.size);\n chunkInfo = this.chunkMap.add(file.uid, totalChunks);\n }\n return chunkInfo;\n }\n updateChunkInfo(uid) {\n const chunkInfo = this.chunkMap.get(uid);\n if (chunkInfo.index < chunkInfo.totalChunks - 1) {\n chunkInfo.index += 1;\n chunkInfo.position += this.chunk.size;\n chunkInfo.retries = 0;\n }\n }\n removeChunkInfo(uid) {\n this.chunkMap.remove(uid);\n }\n getChunkMetadata(file) {\n const chunkInfo = this.chunkMap.get(file.uid);\n const chunkMetadata = {\n chunkIndex: chunkInfo.index,\n contentType: file.rawFile.type,\n fileName: file.name,\n fileSize: file.size,\n fileUid: file.uid,\n totalChunks: chunkInfo.totalChunks\n };\n return JSON.stringify(chunkMetadata);\n }\n isChunkUploadComplete(uid) {\n const chunkInfo = this.chunkMap.get(uid);\n if (chunkInfo) {\n return chunkInfo.index + 1 === chunkInfo.totalChunks;\n }\n return false;\n }\n}\nUploadService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nUploadService.ctorParameters = () => [\n { type: HttpClient }\n];\n\n/**\n * @hidden\n */\nclass NavigationService {\n constructor(uploadService) {\n this.uploadService = uploadService;\n this.onActionButtonAction = new EventEmitter();\n this.onActionButtonFocus = new EventEmitter();\n this.onFileAction = new EventEmitter();\n this.onFileFocus = new EventEmitter();\n this.onTab = new EventEmitter();\n this.onWrapperFocus = new EventEmitter();\n this.onSelectButtonFocus = new EventEmitter();\n this.actionButtonsVisible = false;\n this.focused = false;\n this._focusedIndex = -1;\n }\n action(event) {\n const key = event.keyCode;\n return this.keyBindings[key];\n }\n process(event) {\n const handler = this.action(event);\n if (handler) {\n handler(event.shiftKey);\n }\n }\n computeKeys(direction) {\n this.keyBindings = {\n [Keys.Enter]: () => this.handleEnter(),\n [Keys.Escape]: () => this.handleEscape(),\n [Keys.Delete]: () => this.handleDelete(),\n [Keys.Tab]: (shifted) => this.handleTab(shifted),\n [Keys.ArrowUp]: () => this.handleUp(),\n [Keys.ArrowDown]: () => this.handleDown(),\n [this.invertKeys(direction, Keys.ArrowLeft, Keys.ArrowRight)]: () => this.handleLeft(),\n [this.invertKeys(direction, Keys.ArrowRight, Keys.ArrowLeft)]: () => this.handleRight()\n };\n }\n invertKeys(direction, original, inverted) {\n return direction === 'rtl' ? inverted : original;\n }\n focusSelectButton() {\n this.focused = true;\n this._focusedIndex = -1;\n this.onSelectButtonFocus.emit();\n }\n handleEnter() {\n if (this.lastIndex >= 0) {\n if (this.focusedIndex <= this.lastFileIndex) {\n this.onFileAction.emit(Keys.Enter);\n return;\n }\n if (this.actionButtonsVisible && this.focusedIndex <= this.lastIndex) {\n this.onActionButtonAction.emit(this.focusedIndex < this.lastIndex ? \"clear\" : \"upload\");\n }\n }\n }\n handleDelete() {\n if (this.focusedIndex >= 0 && this.focusedIndex <= this.lastFileIndex) {\n this.onFileAction.emit(Keys.Delete);\n }\n }\n handleEscape() {\n if (this.focusedIndex >= 0 && this.focusedIndex <= this.lastFileIndex) {\n this.onFileAction.emit(Keys.Escape);\n }\n }\n handleLeft() {\n if (this.actionButtonsVisible && this.focusedIndex === this.lastIndex) {\n this.focusedIndex -= 1;\n this.onActionButtonFocus.emit(\"clear\");\n }\n }\n handleRight() {\n if (this.actionButtonsVisible && this.focusedIndex === this.lastIndex - 1) {\n this.focusedIndex += 1;\n this.onActionButtonFocus.emit(\"upload\");\n }\n }\n handleTab(shifted) {\n if (this.focusedIndex >= 0 && shifted) {\n this.focusedIndex = -1;\n return;\n }\n this.onTab.emit();\n }\n handleDown() {\n if (this.lastIndex >= 0 && this.focusedIndex < this.lastIndex) {\n if (this.focusedIndex < this.lastFileIndex) {\n this.focusedIndex += 1;\n this.onFileFocus.emit(this.focusedIndex);\n return;\n }\n if (this.actionButtonsVisible && this.focusedIndex === this.lastFileIndex) {\n this.focusedIndex += 1;\n this.onActionButtonFocus.emit(\"clear\");\n }\n }\n }\n handleUp() {\n if (this.lastIndex >= 0 && this.focusedIndex > -1) {\n this.focusedIndex -= 1;\n if (this.focusedIndex === -1) {\n this.onSelectButtonFocus.emit();\n return;\n }\n if (this.focusedIndex <= this.lastFileIndex) {\n this.onFileFocus.emit(this.focusedIndex);\n return;\n }\n if (this.actionButtonsVisible && this.focusedIndex <= this.lastIndex) {\n this.focusedIndex = this.lastFileIndex;\n this.onFileFocus.emit(this.focusedIndex);\n }\n }\n }\n get focusedIndex() {\n return this._focusedIndex;\n }\n set focusedIndex(index) {\n if (!this.focused) {\n this.onWrapperFocus.emit();\n }\n this._focusedIndex = index;\n this.focused = true;\n if (this._focusedIndex >= 0 && this._focusedIndex <= this.lastFileIndex) {\n this.onFileFocus.emit(index);\n }\n }\n get lastFileIndex() {\n return this.actionButtonsVisible ? this.lastIndex - 2 : this.lastIndex;\n }\n get lastIndex() {\n const fileCount = this.uploadService.files.count;\n return this.actionButtonsVisible ? fileCount + 1 : fileCount - 1;\n }\n}\nNavigationService.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nNavigationService.ctorParameters = () => [\n { type: UploadService }\n];\n\n/**\n * Used to customize the rendering of the files in the list ([see example]({% slug templates_upload %})).\n */\nclass FileTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nFileTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoUploadFileTemplate], [kendoFileSelectFileTemplate]' // tslint:disable-line:directive-selector-prefix\n },] },\n];\n/** @nocollapse */\nFileTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\n\n/**\n * @hidden\n */\nconst FILESELECT_VALUE_ACCESSOR = {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileSelectComponent) // tslint:disable-line:no-forward-ref\n};\nclass FileSelectComponent {\n constructor(uploadService, localization, navigation, ngZone, renderer, cdr, wrapper) {\n this.uploadService = uploadService;\n this.localization = localization;\n this.navigation = navigation;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.cdr = cdr;\n /**\n * Disables the FileSelect.\n * The default value is `false`.\n */\n this.disabled = false;\n /**\n * Enables the selection of multiple files\n * ([see example]({% slug fileprocessing_upload %}#toc-upload-of-sinlge-or-multiple-files)).\n * If set to `false`, only one file can be selected at a time.\n */\n this.multiple = true;\n /**\n * Toggles the visibility of the file list.\n */\n this.showFileList = true;\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the FileSelect.\n */\n this.tabindex = 0;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Fires when the user navigates outside the component.\n */\n this.onBlur = new EventEmitter();\n /**\n * Fires when the component is focused.\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires when files are selected. If prevented, the selected files will not be added to the list.\n */\n this.select = new EventEmitter();\n /**\n * Fires when a file is about to be removed. If prevented, the file will remain in the list.\n */\n this.remove = new EventEmitter();\n /**\n * Fires when the value of the component has changed as a result of a successful `select` or `remove` operation.\n */\n this.valueChange = new EventEmitter();\n this.hostDefaultClasses = true;\n /**\n * @hidden\n */\n this._restrictions = {\n allowedExtensions: [],\n maxFileSize: 0,\n minFileSize: 0\n };\n this.onTouchedCallback = (_) => { };\n this.onChangeCallback = (_) => { };\n this.wrapper = wrapper.nativeElement;\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.navigation.computeKeys(this.direction);\n this.fileList = this.uploadService.files;\n this.localizationChangeSubscription = localization.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n this.navigation.computeKeys(this.direction);\n });\n this.subscribeBlur();\n this.subscribeFocus();\n this.attachEventHandlers();\n this.setDefaultSettings();\n }\n /**\n * Sets the `name` attribute of the `input` element of the FileSelect.\n */\n set name(name) {\n this.uploadService.async.saveField = name;\n }\n get name() {\n return this.uploadService.async.saveField;\n }\n /**\n * Sets the restrictions for selected files.\n */\n set restrictions(restrictions) {\n let parsedRestrictions = Object.assign({}, this._restrictions, restrictions);\n this._restrictions = parsedRestrictions;\n }\n get restrictions() {\n return this._restrictions;\n }\n get hostDisabledClass() {\n return this.disabled;\n }\n get dir() {\n return this.direction;\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.wrapper, \"tabindex\");\n }\n /**\n * @hidden\n */\n textFor(key) {\n return this.localization.get(key);\n }\n /**\n * Focuses the underlying input element.\n */\n focus() {\n setTimeout(() => {\n this.fileSelectButton.nativeElement.focus();\n });\n }\n ngOnDestroy() {\n this.fileList.clear();\n if (this.blurSubscription) {\n this.blurSubscription.unsubscribe();\n }\n if (this.wrapperFocusSubscription) {\n this.wrapperFocusSubscription.unsubscribe();\n }\n if (this.selectButtonFocusSubscription) {\n this.selectButtonFocusSubscription.unsubscribe();\n }\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n handleKeydown(event) {\n if (this.disabled) {\n return;\n }\n if ((event.keyCode === Keys.Enter || event.keyCode === Keys.Space) &&\n event.target === this.fileSelectButton.nativeElement) {\n event.preventDefault();\n this.fileSelect.nativeElement.click();\n return;\n }\n if (hasClasses(event.target, UPLOAD_CLASSES) ||\n (!isFocusable(event.target) && !hasClasses(event.target, IGNORE_TARGET_CLASSES))) {\n this.navigation.process(event);\n }\n }\n /**\n * @hidden\n */\n writeValue(newValue) {\n let isValid = true;\n if (newValue instanceof Array) {\n newValue.forEach((file) => {\n if (!validateInitialFileSelectFile(file)) {\n isValid = false;\n }\n });\n if (isValid) {\n this.uploadService.addInitialFileSelectFiles(newValue);\n }\n }\n if (newValue === null) {\n this.fileList.clear();\n }\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onChangeCallback = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onTouchedCallback = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * Removes specific file from the file list.\n */\n removeFileByUid(uid) {\n this.uploadService.removeFiles(uid);\n }\n /**\n * Visually clears all files from the UI.\n */\n clearFiles() {\n this.uploadService.clearFiles();\n }\n /**\n * @hidden\n * Used to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n /**\n * @hidden\n */\n get selectButtonTabIndex() {\n return this.disabled ? undefined : this.tabindex;\n }\n /**\n * @hidden\n */\n onFileSelectButtonFocus(_event) {\n this.renderer.addClass(this.fileSelectButton.nativeElement, 'k-state-focused');\n if (!this.navigation.focused) {\n this.navigation.focusedIndex = -1;\n }\n }\n /**\n * @hidden\n */\n onFileSelectButtonBlur(_event) {\n this.renderer.removeClass(this.fileSelectButton.nativeElement, 'k-state-focused');\n }\n subscribeBlur() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n this.documentClick = fromEvent(document, 'click').pipe(filter((event) => {\n return !(this.wrapper !== event.target && this.wrapper.contains(event.target));\n }));\n this.blurSubscription = merge(this.documentClick, this.navigation.onTab).subscribe(() => {\n if (this.navigation.focused) {\n this.ngZone.run(() => {\n this.navigation.focused = false;\n this.onTouchedCallback();\n this.onBlur.emit();\n });\n }\n });\n });\n }\n subscribeFocus() {\n this.wrapperFocusSubscription = this.navigation.onWrapperFocus.subscribe(() => {\n this.onFocus.emit();\n });\n this.selectButtonFocusSubscription = this.navigation.onSelectButtonFocus.subscribe(() => {\n this.fileSelectButton.nativeElement.focus();\n });\n }\n attachEventHandlers() {\n this.subs = this.uploadService.changeEvent.subscribe((files) => {\n let model = [];\n if (files !== null) {\n files.forEach((file) => {\n if (file.state === FileState.Initial) {\n model.push(file);\n }\n if (file.state === FileState.Selected && file.rawFile && !file.validationErrors) {\n model.push(file.rawFile);\n }\n });\n }\n if (model.length === 0) {\n model = null;\n }\n this.onChangeCallback(model);\n this.valueChange.emit(model);\n });\n this.subs.add(this.uploadService.removeEvent.subscribe((args) => {\n this.remove.emit(args);\n }));\n this.subs.add(this.uploadService.selectEvent.subscribe((args) => {\n this.select.emit(args);\n }));\n }\n setDefaultSettings() {\n this.uploadService.async.autoUpload = false;\n this.uploadService.component = 'FileSelect';\n }\n}\nFileSelectComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoFileSelect',\n providers: [\n LocalizationService,\n NavigationService,\n UploadService,\n FILESELECT_VALUE_ACCESSOR,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.fileselect'\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => FileSelectComponent)\n }\n ],\n selector: 'kendo-fileselect',\n template: `\n \n \n
    \n
    \n \n {{textFor('select')}}\n
    \n
    {{textFor('dropFilesHere')}}
    \n
    \n
      0\"\n [disabled]=\"disabled\"\n [fileList]=\"fileList.files\"\n [fileTemplate]=\"fileTemplate\">\n
    \n `\n },] },\n];\n/** @nocollapse */\nFileSelectComponent.ctorParameters = () => [\n { type: UploadService },\n { type: LocalizationService },\n { type: NavigationService },\n { type: NgZone },\n { type: Renderer2 },\n { type: ChangeDetectorRef },\n { type: ElementRef }\n];\nFileSelectComponent.propDecorators = {\n accept: [{ type: Input }],\n disabled: [{ type: Input }],\n multiple: [{ type: Input }],\n name: [{ type: Input }],\n showFileList: [{ type: Input }],\n tabindex: [{ type: Input }],\n restrictions: [{ type: Input }],\n focusableId: [{ type: Input }],\n fileTemplate: [{ type: ContentChild, args: [FileTemplateDirective,] }],\n fileSelect: [{ type: ViewChild, args: ['fileSelect',] }],\n fileSelectButton: [{ type: ViewChild, args: ['fileSelectButton',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n onFocus: [{ type: Output, args: ['focus',] }],\n select: [{ type: Output }],\n remove: [{ type: Output }],\n valueChange: [{ type: Output }],\n hostDefaultClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-upload',] }, { type: HostBinding, args: ['class.k-header',] }],\n hostDisabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n handleKeydown: [{ type: HostListener, args: ['keydown', ['$event'],] }]\n};\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.propDecorators = {\n cancel: [{ type: Input }],\n clearSelectedFiles: [{ type: Input }],\n dropFilesHere: [{ type: Input }],\n headerStatusPaused: [{ type: Input }],\n headerStatusUploaded: [{ type: Input }],\n headerStatusUploading: [{ type: Input }],\n invalidFileExtension: [{ type: Input }],\n invalidFiles: [{ type: Input }],\n invalidMaxFileSize: [{ type: Input }],\n invalidMinFileSize: [{ type: Input }],\n pause: [{ type: Input }],\n remove: [{ type: Input }],\n resume: [{ type: Input }],\n retry: [{ type: Input }],\n select: [{ type: Input }],\n uploadSelectedFiles: [{ type: Input }]\n};\n\n/**\n * Custom component messages override default component messages.\n */\nclass CustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n}\nCustomMessagesComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-upload-messages, kendo-fileselect-messages',\n template: ``\n },] },\n];\n/** @nocollapse */\nCustomMessagesComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\n\nconst INVALIDMAXFILESIZE = \"invalidMaxFileSize\";\nconst INVALIDMINFILESIZE = \"invalidMinFileSize\";\nconst INVALIDFILEEXTENSION = \"invalidFileExtension\";\nconst validateFileExtension = (file, allowedExtensions) => {\n if (allowedExtensions.length > 0) {\n if (allowedExtensions.indexOf(file.extension.toLowerCase()) < 0) {\n file.validationErrors = file.validationErrors || [];\n if (file.validationErrors.indexOf(INVALIDFILEEXTENSION) < 0) {\n file.validationErrors.push(INVALIDFILEEXTENSION);\n }\n }\n }\n};\nconst validateFileSize = (file, minFileSize, maxFileSize) => {\n if (minFileSize !== 0 && file.size < minFileSize) {\n file.validationErrors = file.validationErrors || [];\n if (file.validationErrors.indexOf(INVALIDMINFILESIZE) < 0) {\n file.validationErrors.push(INVALIDMINFILESIZE);\n }\n }\n if (maxFileSize !== 0 && file.size > maxFileSize) {\n file.validationErrors = file.validationErrors || [];\n if (file.validationErrors.indexOf(INVALIDMAXFILESIZE) < 0) {\n file.validationErrors.push(INVALIDMAXFILESIZE);\n }\n }\n};\nconst parseAllowedExtensions = (extensions) => {\n const allowedExtensions = extensions.map((ext) => {\n var parsedExt = (ext.substring(0, 1) === \".\") ? ext : (\".\" + ext);\n return parsedExt.toLowerCase();\n });\n return allowedExtensions;\n};\n/**\n * @hidden\n */\nconst validateFiles = (files, restrictionInfo) => {\n const allowedExtensions = parseAllowedExtensions(restrictionInfo.allowedExtensions);\n const maxFileSize = restrictionInfo.maxFileSize;\n const minFileSize = restrictionInfo.minFileSize;\n let i;\n for (i = 0; i < files.length; i++) {\n validateFileExtension(files[i], allowedExtensions);\n validateFileSize(files[i], minFileSize, maxFileSize);\n }\n};\n\n/**\n * @hidden\n */\nclass DropZoneDirective {\n constructor(element, uploadService, _ngZone, renderer) {\n this.element = element;\n this.uploadService = uploadService;\n this._ngZone = _ngZone;\n this.renderer = renderer;\n this.hideIntervalDocument = null;\n this.hideIntervalElement = null;\n this.state = {\n active: \"k-dropzone k-dropzone-active\",\n hovered: \"k-dropzone k-dropzone-active k-dropzone-hovered\",\n inactive: \"k-dropzone\"\n };\n this.element = element;\n this.setClasses(this.state.inactive);\n if (!isDocumentAvailable()) {\n return;\n }\n this._ngZone.runOutsideAngular(() => {\n this.unsubscribeDocumentDragEnter = this.renderer.listen('document', 'dragenter', () => this.onDocumentDragEnter());\n this.unsubscribeDocumentDragOver = this.renderer.listen('document', 'dragover', () => this.onDocumentDragOver());\n });\n }\n ngOnDestroy() {\n this._ngZone.runOutsideAngular(() => {\n if (this.unsubscribeDocumentDragEnter) {\n this.unsubscribeDocumentDragEnter();\n }\n if (this.unsubscribeDocumentDragOver) {\n this.unsubscribeDocumentDragOver();\n }\n });\n }\n /**\n * @hidden\n */\n onDocumentDragEnter() {\n if (this.lastDragElement) {\n if (this.calculateTimeDiff(this.lastDragElement) > 100) {\n this.setClasses(this.state.active);\n }\n }\n else {\n this.setClasses(this.state.active);\n }\n this.lastDragDocument = new Date();\n if (!this.hideIntervalDocument) {\n this.hideIntervalDocument = setInterval(() => {\n if (this.calculateTimeDiff(this.lastDragDocument) < 100) {\n return;\n }\n this.setClasses(this.state.inactive);\n clearInterval(this.hideIntervalDocument);\n this.hideIntervalDocument = null;\n }, 100);\n }\n return false;\n }\n /**\n * @hidden\n */\n onDocumentDragOver() {\n this.lastDragDocument = new Date();\n return false;\n }\n /**\n * @hidden\n */\n onElementDragEnterListener() {\n this.setClasses(this.state.hovered);\n this.lastDragElement = new Date();\n if (!this.hideIntervalElement) {\n this.hideIntervalElement = setInterval(() => {\n if (this.calculateTimeDiff(this.lastDragElement) < 100) {\n return;\n }\n if (this.lastDrop) {\n let diff = this.calculateTimeDiff(this.lastDrop);\n this.setClasses(diff > 200 ? this.state.active : this.state.inactive);\n }\n else {\n this.setClasses(this.state.active);\n }\n clearInterval(this.hideIntervalElement);\n this.hideIntervalElement = null;\n }, 100);\n }\n return false;\n }\n /**\n * @hidden\n */\n onElementDragOverListener() {\n this.lastDragElement = new Date();\n return false;\n }\n /**\n * @hidden\n */\n onDropListener(event) {\n this.lastDrop = new Date();\n let droppedFiles = event.dataTransfer.files;\n if (droppedFiles.length > 0 && !this.disabled) {\n let files = getAllFileInfo(droppedFiles);\n files = assignGuidToFiles(files, !this.uploadService.async.batch);\n if (!this.multiple) {\n files.splice(1, files.length - 1);\n this.uploadService.clearFiles();\n }\n validateFiles(files, this.restrictions);\n this.uploadService.addFiles(files);\n }\n return false;\n }\n calculateTimeDiff(prevEvent) {\n return new Date().getTime() - prevEvent.getTime();\n }\n setClasses(classes) {\n if (!this.disabled) {\n this.element.nativeElement.className = classes;\n }\n }\n /**\n * @hidden\n */\n get initialClassName() {\n return true;\n }\n}\nDropZoneDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoUploadDropzone]'\n },] },\n];\n/** @nocollapse */\nDropZoneDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: UploadService },\n { type: NgZone },\n { type: Renderer2 }\n];\nDropZoneDirective.propDecorators = {\n disabled: [{ type: Input }],\n multiple: [{ type: Input }],\n restrictions: [{ type: Input }],\n onElementDragEnterListener: [{ type: HostListener, args: ['dragenter',] }],\n onElementDragOverListener: [{ type: HostListener, args: ['dragover',] }],\n onDropListener: [{ type: HostListener, args: ['drop', ['$event'],] }],\n initialClassName: [{ type: HostBinding, args: ['class.k-dropzone',] }]\n};\n\n/**\n * @hidden\n */\nclass FileListItemDirective {\n constructor(el, navigationService, uploadService) {\n this.navigationService = navigationService;\n this.uploadService = uploadService;\n this.fileClass = true;\n this.focused = false;\n this.element = el;\n }\n focus() {\n this.element.nativeElement.focus();\n }\n get uidAttribute() {\n return this.files[0].uid;\n }\n get tabIndex() {\n return \"-1\";\n }\n get kFileError() {\n return this.files[0].state === FileState.Failed;\n }\n get kFileInvalid() {\n return filesHaveValidationErrors(this.files);\n }\n get kFileProgress() {\n return this.files[0].state === FileState.Uploading ||\n this.files[0].state === FileState.Paused;\n }\n get kFileSuccess() {\n if (this.uploadService.component === 'Upload') {\n return this.files[0].state === FileState.Uploaded ||\n this.files[0].state === FileState.Initial;\n }\n return false;\n }\n get kStateFocused() {\n return this.focused;\n }\n onFocus() {\n this.focused = true;\n }\n onBlur() {\n this.focused = false;\n }\n onClick(event) {\n if (!isFocusable(event.target) && !hasClasses(event.target, IGNORE_TARGET_CLASSES)) {\n this.navigationService.focusedIndex = this.index;\n }\n }\n}\nFileListItemDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoUploadFileListItem]'\n },] },\n];\n/** @nocollapse */\nFileListItemDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: NavigationService },\n { type: UploadService }\n];\nFileListItemDirective.propDecorators = {\n files: [{ type: Input }],\n index: [{ type: Input }],\n fileClass: [{ type: HostBinding, args: ['class.k-file',] }],\n uidAttribute: [{ type: HostBinding, args: ['attr.data-uid',] }],\n tabIndex: [{ type: HostBinding, args: ['attr.tabIndex',] }],\n kFileError: [{ type: HostBinding, args: ['class.k-file-error',] }],\n kFileInvalid: [{ type: HostBinding, args: ['class.k-file-invalid',] }],\n kFileProgress: [{ type: HostBinding, args: ['class.k-file-progress',] }],\n kFileSuccess: [{ type: HostBinding, args: ['class.k-file-success',] }],\n kStateFocused: [{ type: HostBinding, args: ['class.k-state-focused',] }],\n onFocus: [{ type: HostListener, args: [\"focus\",] }],\n onBlur: [{ type: HostListener, args: [\"blur\",] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }]\n};\n\n/* tslint:disable:component-selector */\n/**\n * @hidden\n */\nclass FileListComponent {\n constructor(uploadService, navigation) {\n this.uploadService = uploadService;\n this.navigation = navigation;\n this.onItemFocus();\n this.onItemAction();\n }\n onItemFocus() {\n this.focusSubscription = this.navigation.onFileFocus.subscribe((index) => {\n this.fileListItems.toArray()[index].focus();\n });\n }\n onItemAction() {\n this.actionSubscription = this.navigation.onFileAction.subscribe((key) => {\n this.itemActionHandler(key);\n });\n }\n itemActionHandler(key) {\n let index = this.navigation.focusedIndex;\n let item = this.fileListItems.toArray()[index];\n let uid = item.uidAttribute;\n let files = this.uploadService.files.get(uid);\n if (key === Keys.Escape && files[0].state === FileState.Uploading) {\n this.uploadService.cancelFiles(uid);\n this.navigation.focusSelectButton();\n return;\n }\n if (key === Keys.Enter && files[0].state === FileState.Failed) {\n this.uploadService.retryFiles(uid);\n return;\n }\n if (key === Keys.Delete) {\n if (files[0].state === FileState.Uploading) {\n this.uploadService.cancelFiles(uid);\n }\n else if (this.hasDelete(item)) {\n this.uploadService.removeFiles(uid);\n }\n this.navigation.focusSelectButton();\n }\n }\n hasDelete(item) {\n return item.element.nativeElement.getElementsByClassName('k-delete').length > 0;\n }\n ngOnDestroy() {\n this.focusSubscription.unsubscribe();\n this.actionSubscription.unsubscribe();\n }\n}\nFileListComponent.decorators = [\n { type: Component, args: [{\n selector: '[kendo-upload-file-list]',\n template: `\n \n
  • \n \n \n \n \n \n
  • \n
    \n `\n },] },\n];\n/** @nocollapse */\nFileListComponent.ctorParameters = () => [\n { type: UploadService },\n { type: NavigationService }\n];\nFileListComponent.propDecorators = {\n disabled: [{ type: Input }],\n fileList: [{ type: Input }],\n fileTemplate: [{ type: Input }],\n fileListItems: [{ type: ViewChildren, args: [FileListItemDirective,] }]\n};\n\n/**\n * @hidden\n */\nclass FileListItemActionButtonComponent {\n constructor(uploadService, localization) {\n this.uploadService = uploadService;\n this.localization = localization;\n this.actionFocused = false;\n this.retryFocused = false;\n this.pauseResumeFocused = false;\n }\n onFocus(type) {\n if (type === 'action') {\n this.actionFocused = true;\n }\n if (type === 'retry') {\n this.retryFocused = true;\n }\n if (type === 'pauseResume') {\n this.pauseResumeFocused = true;\n }\n }\n onBlur(type) {\n if (type === 'retry') {\n this.retryFocused = false;\n }\n if (type === 'action') {\n this.actionFocused = false;\n }\n if (type === 'pauseResume') {\n this.pauseResumeFocused = false;\n }\n }\n onRetryClick() {\n if (this.disabled) {\n return;\n }\n this.uploadService.retryFiles(this.file.uid);\n }\n onRemoveCancelClick() {\n if (this.disabled) {\n return;\n }\n const uid = this.file.uid;\n if (this.file.state === FileState.Uploading) {\n this.uploadService.cancelFiles(uid);\n }\n else {\n this.uploadService.removeFiles(uid);\n }\n }\n onPauseResumeClick() {\n if (this.disabled) {\n return;\n }\n const uid = this.file.uid;\n if (this.file.state === FileState.Paused) {\n this.uploadService.resumeFile(uid);\n }\n else {\n this.uploadService.pauseFile(uid);\n }\n }\n get actionButtonTitle() {\n if (this.file.state === FileState.Uploading) {\n return this.localization.get('cancel');\n }\n return this.localization.get('remove');\n }\n get retryButtonTitle() {\n return this.localization.get('retry');\n }\n get pauseResumeButtonTitle() {\n if (this.file.state === FileState.Uploading) {\n return this.localization.get('pause');\n }\n return this.localization.get('resume');\n }\n get isUploading() {\n return this.file.state === FileState.Uploading;\n }\n get isFailed() {\n return this.file.state === FileState.Failed;\n }\n get isPaused() {\n return this.file.state === FileState.Paused;\n }\n get isResumable() {\n const service = this.uploadService;\n const isResumable = service.async.chunk && service.chunk.resumable;\n const isUploading = (this.file.state === FileState.Paused) || (this.file.state === FileState.Uploading);\n return isResumable && isUploading;\n }\n get isActionButtonVisible() {\n if ((this.file.state === FileState.Uploaded || this.file.state === FileState.Initial) &&\n !this.uploadService.async.removeUrl && this.uploadService.component === 'Upload') {\n return false;\n }\n return true;\n }\n}\nFileListItemActionButtonComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-upload-file-list-item-action-button',\n template: `\n \n {{progress}}%\n\n \n\n \n\n \n \n `\n },] },\n];\n/** @nocollapse */\nFileListItemActionButtonComponent.ctorParameters = () => [\n { type: UploadService },\n { type: LocalizationService }\n];\nFileListItemActionButtonComponent.propDecorators = {\n file: [{ type: Input }],\n disabled: [{ type: Input }],\n progress: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass FileListItemBase {\n constructor(uploadService) {\n this.uploadService = uploadService;\n this.progressComplete = 0;\n }\n subscribeUploadProgress(uploadProgressHandler) {\n this.uploadProgressSubscription = this.uploadService.uploadProgressEvent.subscribe(uploadProgressHandler);\n }\n fileHasValidationErrors(file) {\n return fileHasValidationErrors(file);\n }\n filesHaveValidationErrors(files) {\n return filesHaveValidationErrors(files);\n }\n ngOnDestroy() {\n this.uploadProgressSubscription.unsubscribe();\n }\n getFileValidationMessage(file) {\n let validationMessage;\n if (file.validationErrors && file.validationErrors.length > 0) {\n validationMessage = this.localization.get(file.validationErrors[0]);\n }\n return validationMessage;\n }\n getInvalidFilesMessage() {\n return this.localization.get('invalidFiles');\n }\n getTotalFilesSizeMessage(files) {\n return getTotalFilesSizeMessage(files);\n }\n}\n\n/**\n * @hidden\n */\nclass FileListMultipleItemsComponent extends FileListItemBase {\n constructor(localization, uploadService) {\n super(uploadService);\n this.localization = localization;\n this.subscribeUploadProgress((args) => {\n if (args.files[0].uid === this.files[0].uid) {\n this.progressComplete = args.percentComplete;\n }\n });\n }\n /**\n * @hidden\n */\n setFileNameClasses(file) {\n return {\n \"k-file-name\": true,\n \"k-file-name-invalid\": super.fileHasValidationErrors(file)\n };\n }\n /**\n * @hidden\n */\n get showProgress() {\n const showProgress = this.files[0].state === FileState.Uploading || this.files[0].state === FileState.Paused;\n return showProgress ? 'active' : 'inactive';\n }\n ngOnInit() {\n this.filesHaveErrors = super.filesHaveValidationErrors(this.files);\n }\n}\nFileListMultipleItemsComponent.decorators = [\n { type: Component, args: [{\n animations: [\n trigger('progressState', [\n state('active', style({ opacity: 1 })),\n state('inactive', style({ opacity: 0 })),\n transition('void => active', style({ opacity: 0 })),\n transition('inactive => active', style({ opacity: 1 })),\n transition('active => inactive', animate('1s 2s ease-out'))\n ])\n ],\n selector: 'kendo-upload-file-list-multiple-items',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n {{file.name}}\n \n Total: {{ files.length }} files, {{ getTotalFilesSizeMessage(files) }}\n {{ getInvalidFilesMessage() }}\n \n \n \n `\n },] },\n];\n/** @nocollapse */\nFileListMultipleItemsComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: UploadService }\n];\nFileListMultipleItemsComponent.propDecorators = {\n disabled: [{ type: Input }],\n files: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass FileListSingleItemComponent extends FileListItemBase {\n constructor(localization, uploadService) {\n super(uploadService);\n this.localization = localization;\n this.subscribeUploadProgress((args) => {\n if (args.files[0].uid === this.file.uid) {\n this.progressComplete = args.percentComplete;\n }\n });\n }\n /**\n * @hidden\n */\n textFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n */\n get showProgress() {\n const showProgress = this.file.state === FileState.Uploading || this.file.state === FileState.Paused;\n return showProgress ? 'active' : 'inactive';\n }\n /**\n * @hidden\n */\n get fileGroupClass() {\n return getFileGroupCssClass(this.file.extension ? this.file.extension : '');\n }\n}\nFileListSingleItemComponent.decorators = [\n { type: Component, args: [{\n animations: [\n trigger('progressState', [\n state('active', style({ opacity: 1 })),\n state('inactive', style({ opacity: 0 })),\n transition('void => active', style({ opacity: 0 })),\n transition('inactive => active', style({ opacity: 1 })),\n transition('active => inactive', animate('1s 2s ease-out'))\n ])\n ],\n selector: 'kendo-upload-file-list-single-item',\n template: `\n \n \n \n \n \n \n \n {{ file.name }}\n {{ getFileValidationMessage(file) }}\n \n \n \n \n \n \n \n \n {{ file.name }}\n {{ getTotalFilesSizeMessage([file]) }}\n \n \n \n \n `\n },] },\n];\n/** @nocollapse */\nFileListSingleItemComponent.ctorParameters = () => [\n { type: LocalizationService },\n { type: UploadService }\n];\nFileListSingleItemComponent.propDecorators = {\n disabled: [{ type: Input }],\n file: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nclass FileSelectDirective {\n constructor(uploadService, navigation, el) {\n this.uploadService = uploadService;\n this.navigation = navigation;\n this.type = \"file\";\n this.autocomplete = \"off\";\n this.tabIndex = -1;\n this.element = el;\n }\n get nameAttribute() {\n return this.uploadService.async.saveField;\n }\n get multipleAttribute() {\n return this.multiple ? \"multiple\" : null;\n }\n get dirAttribute() {\n return this.dir;\n }\n get disabledAttribute() {\n return this.disabled ? \"true\" : null;\n }\n onInputChange(event) {\n const ua = navigator.userAgent;\n const chrome = /(chrome)[ \\/]([\\w.]+)/i;\n const safari = /(webkit)[ \\/]([\\w.]+)/i;\n let selectedFiles = inputFiles(event.target);\n selectedFiles = assignGuidToFiles(selectedFiles, !this.uploadService.async.batch);\n validateFiles(selectedFiles, this.restrictions);\n if (!this.multiple) {\n this.uploadService.clearFiles();\n }\n this.uploadService.addFiles(selectedFiles);\n /*\n Chrome and Internet Explorer do not trigger a `change` event\n when a file with the same name is selected a number of consecutive times.\n As a workaround, clear the input value after handling the file.\n */\n const native = this.element.nativeElement;\n if (!(!ua.match(chrome) && ua.match(safari))) {\n native.type = \"\";\n native.type = \"file\";\n }\n setTimeout(() => {\n this.navigation.focusedIndex = -1;\n });\n }\n}\nFileSelectDirective.decorators = [\n { type: Directive, args: [{\n selector: '[kendoFileSelect]'\n },] },\n];\n/** @nocollapse */\nFileSelectDirective.ctorParameters = () => [\n { type: UploadService },\n { type: NavigationService },\n { type: ElementRef }\n];\nFileSelectDirective.propDecorators = {\n dir: [{ type: Input }],\n disabled: [{ type: Input }],\n multiple: [{ type: Input }],\n restrictions: [{ type: Input }],\n type: [{ type: HostBinding, args: [\"attr.type\",] }],\n autocomplete: [{ type: HostBinding, args: [\"attr.autocomplete\",] }],\n tabIndex: [{ type: HostBinding, args: [\"attr.tabindex\",] }],\n nameAttribute: [{ type: HostBinding, args: [\"attr.name\",] }],\n multipleAttribute: [{ type: HostBinding, args: [\"attr.multiple\",] }],\n dirAttribute: [{ type: HostBinding, args: [\"attr.dir\",] }],\n disabledAttribute: [{ type: HostBinding, args: [\"attr.disabled\",] }],\n onInputChange: [{ type: HostListener, args: [\"change\", [\"$event\"],] }]\n};\n\n/**\n * @hidden\n */\nclass LocalizedMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n}\nLocalizedMessagesDirective.decorators = [\n { type: Directive, args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoUploadLocalizedMessages]'\n },] },\n];\n/** @nocollapse */\nLocalizedMessagesDirective.ctorParameters = () => [\n { type: LocalizationService }\n];\n\n/**\n * @hidden\n */\nclass TemplateContextDirective {\n constructor(viewContainerRef) {\n this.viewContainerRef = viewContainerRef;\n }\n set templateContext(context) {\n if (this.insertedViewRef) {\n this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.insertedViewRef));\n this.insertedViewRef = undefined;\n }\n if (context.templateRef) {\n this.insertedViewRef = this.viewContainerRef.createEmbeddedView(context.templateRef, context);\n }\n }\n}\nTemplateContextDirective.decorators = [\n { type: Directive, args: [{\n selector: '[templateContext]' // tslint:disable-line:directive-selector\n },] },\n];\n/** @nocollapse */\nTemplateContextDirective.ctorParameters = () => [\n { type: ViewContainerRef }\n];\nTemplateContextDirective.propDecorators = {\n templateContext: [{ type: Input }]\n};\n\n/**\n * @hidden\n */\nconst SHARED_DECLARATIONS = [\n DropZoneDirective,\n FileListComponent,\n FileListItemDirective,\n FileListItemActionButtonComponent,\n FileListMultipleItemsComponent,\n FileListSingleItemComponent,\n FileSelectDirective,\n LocalizedMessagesDirective,\n TemplateContextDirective\n];\n/**\n * @hidden\n */\nconst PUBLIC_DIRECTIVES = [\n FileTemplateDirective,\n CustomMessagesComponent\n];\n/**\n * @hidden\n */\nclass SharedModule {\n}\nSharedModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n PUBLIC_DIRECTIVES,\n SHARED_DECLARATIONS\n ],\n exports: [\n PUBLIC_DIRECTIVES,\n SHARED_DECLARATIONS,\n CommonModule\n ],\n imports: [CommonModule]\n },] },\n];\n\nconst FILESELECT_DECLARATIONS = [\n FileSelectComponent\n];\n/**\n * Represents the [NgModule](https://angular.io/api/core/NgModule) definition for the FileSelect component.\n */\nclass FileSelectModule {\n}\nFileSelectModule.decorators = [\n { type: NgModule, args: [{\n declarations: [FILESELECT_DECLARATIONS],\n exports: [\n PUBLIC_DIRECTIVES,\n FILESELECT_DECLARATIONS\n ],\n imports: [SharedModule]\n },] },\n];\n\n/* tslint:disable: no-use-before-declare */\n/**\n * @hidden\n */\nconst UPLOAD_VALUE_ACCESSOR = {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => UploadComponent) // tslint:disable-line:no-forward-ref\n};\n/**\n * Represents the [Kendo UI Upload component for Angular]({% slug overview_upload %}).\n */\nclass UploadComponent {\n constructor(uploadService, localization, navigation, _ngZone, renderer, cdr, wrapper) {\n this.uploadService = uploadService;\n this.localization = localization;\n this.navigation = navigation;\n this._ngZone = _ngZone;\n this.renderer = renderer;\n this.cdr = cdr;\n /**\n * Enables the chunk functionality of the Upload.\n *\n * The default value is `false`.\n */\n this.chunkable = false;\n /**\n * Enables the selection of multiple files\n * ([see example]({% slug fileprocessing_upload %}#toc-upload-of-sinlge-or-multiple-files)).\n * If set to `false`, only one file can be selected at a time.\n */\n this.multiple = true;\n /**\n * Disables the Upload ([see example]({% slug disabledstate_upload %})).\n * The default value is `false`.\n */\n this.disabled = false;\n /**\n * Toggles the visibility of the file list.\n */\n this.showFileList = true;\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n */\n this.tabindex = 0;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Fires when the user navigates outside the component.\n */\n this.onBlur = new EventEmitter();\n /**\n * Fires when the upload is canceled while in progress.\n */\n this.cancel = new EventEmitter();\n /**\n * Fires when the file list is about to be cleared. If prevented, the files will not be cleared.\n */\n this.clear = new EventEmitter();\n /**\n * Fires when all active uploads are completed either successfully or with errors.\n */\n this.complete = new EventEmitter();\n /**\n * Fires when an `upload` or `remove` operation has failed.\n */\n this.error = new EventEmitter();\n /**\n * Fires when the component is focused.\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires when the upload of a file has been paused.\n */\n this.pause = new EventEmitter();\n /**\n * Fires when an uploaded file is about to be removed. If prevented, the files will remain in the list.\n */\n this.remove = new EventEmitter();\n /**\n * Fires when the upload of a file has been resumed.\n */\n this.resume = new EventEmitter();\n /**\n * Fires when files are selected. If prevented, the selected files will not be added to the list.\n */\n this.select = new EventEmitter();\n /**\n * Fires when an `upload` or `remove` operation is successfully completed.\n */\n this.success = new EventEmitter();\n /**\n * Fires when one or more files are about to be uploaded. If prevented, the files will neither be uploaded, nor added to the file list.\n */\n this.upload = new EventEmitter();\n /**\n * Fires when one or more files are being uploaded.\n */\n this.uploadProgress = new EventEmitter();\n /**\n * Fires when the value of the component has changed as a result of a successful `upload`, `remove` or `clear` operation.\n */\n this.valueChange = new EventEmitter();\n this.hostDefaultClasses = true;\n /**\n * @hidden\n */\n this._restrictions = {\n allowedExtensions: [],\n maxFileSize: 0,\n minFileSize: 0\n };\n this.onTouchedCallback = (_) => { };\n this.onChangeCallback = (_) => { };\n this.fileList = this.uploadService.files;\n this.localizationChangeSubscription = localization.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n this.navigation.computeKeys(this.direction);\n });\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.navigation.computeKeys(this.direction);\n this.wrapper = wrapper.nativeElement;\n this.subscribeBlur();\n this.subscribeFocus();\n this.attachEventHandlers();\n }\n /**\n * By default, the selected files are immediately uploaded\n * ([see example]({% slug fileprocessing_upload %}#toc-automatic-upload-of-files)).\n * To change this behavior, set `autoUpload` to `false`.\n */\n set autoUpload(autoUpload) {\n this.uploadService.async.autoUpload = autoUpload;\n }\n get autoUpload() {\n return this.uploadService.async.autoUpload;\n }\n /**\n * When enabled, all files in the selection are uploaded in one request\n * ([see example]({% slug fileprocessing_upload %}#toc-upload-of-batches-of-files)).\n * Any files that are selected one after the other are uploaded in separate requests.\n */\n set batch(batch) {\n this.uploadService.async.batch = batch;\n }\n get batch() {\n return this.uploadService.async.batch;\n }\n /**\n * Configures whether credentials (cookies, headers) will be sent for cross-site requests\n * ([see example]({% slug credentials_upload %}#toc-attaching-credentials-to-requests)).\n * The default values is `true`. Setting `withCredentials` has no effect on same-site requests.\n * To add credentials to the request, use the `saveHeaders` or `removeHeaders` property,\n * or the [`upload`]({% slug api_upload_uploadevent %}) event.\n */\n set withCredentials(withCredentials) {\n this.uploadService.async.withCredentials = withCredentials;\n }\n get withCredentials() {\n return this.uploadService.async.withCredentials;\n }\n /**\n * Sets the [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData) key which contains the files submitted to `saveUrl`.\n * The default value is `files`.\n */\n set saveField(saveField) {\n this.uploadService.async.saveField = saveField;\n }\n get saveField() {\n return this.uploadService.async.saveField;\n }\n /**\n * Configures the [`HttpHeaders`](https://angular.io/api/common/http/HttpHeaders)\n * that are attached to each upload request.\n */\n set saveHeaders(saveHeaders) {\n this.uploadService.async.saveHeaders = saveHeaders;\n }\n get saveHeaders() {\n return this.uploadService.async.saveHeaders;\n }\n /**\n * Sets the [`RequestMethod`](https://angular.io/api/http/RequestMethod) of the upload request.\n * The default value is `POST`.\n */\n set saveMethod(saveMethod) {\n this.uploadService.async.saveMethod = saveMethod;\n }\n get saveMethod() {\n return this.uploadService.async.saveMethod;\n }\n /**\n * Sets the URL of the endpoint for the upload request.\n * The request [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData) key is named after the `saveField` property.\n * It contains the list of files to be uploaded.\n */\n set saveUrl(saveUrl) {\n this.uploadService.async.saveUrl = saveUrl;\n }\n get saveUrl() {\n return this.uploadService.async.saveUrl;\n }\n /**\n * Sets the expected [`response type`](https://angular.io/api/common/http/HttpRequest#responseType) of the server.\n * It is used to parse the response appropriately.\n * The default value is `json`.\n */\n set responseType(responseType) {\n this.uploadService.async.responseType = responseType;\n }\n get responseType() {\n return this.uploadService.async.responseType;\n }\n /**\n * Sets the [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData) key\n * which contains the list of file names that are submitted to `removeUrl`.\n * The default value is `fileNames`.\n */\n set removeField(removeField) { this.uploadService.async.removeField = removeField; }\n get removeField() { return this.uploadService.async.removeField; }\n /**\n * Configures the [`HttpHeaders`](https://angular.io/api/common/http/HttpHeaders)\n * that are attached to each `remove` request.\n */\n set removeHeaders(removeHeaders) {\n this.uploadService.async.removeHeaders = removeHeaders;\n }\n get removeHeaders() {\n return this.uploadService.async.removeHeaders;\n }\n /**\n * Sets the [`RequestMethod`](https://angular.io/api/http/RequestMethod) of the `remove` request.\n * The default value is `POST`.\n */\n set removeMethod(removeMethod) {\n this.uploadService.async.removeMethod = removeMethod;\n }\n get removeMethod() {\n return this.uploadService.async.removeMethod;\n }\n /**\n * Sets the URL of the endpoint for the `remove` request.\n * The [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData) request key is named after the `removeField` property.\n * It contains the list of file names which will be removed.\n */\n set removeUrl(removeUrl) {\n this.uploadService.async.removeUrl = removeUrl;\n }\n get removeUrl() {\n return this.uploadService.async.removeUrl;\n }\n /**\n * Specifies if the selected files are uploaded simultaneously or one by one.\n *\n * The default value is `true`.\n */\n set concurrent(concurrent) {\n this.uploadService.async.concurrent = concurrent;\n }\n get concurrent() {\n return this.uploadService.async.concurrent;\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n /**\n * Sets the restrictions for selected files ([see example]({% slug api_upload_filerestrictions %})).\n */\n set restrictions(restrictions) {\n let parsedRestrictions = Object.assign({}, this._restrictions, restrictions);\n this._restrictions = parsedRestrictions;\n }\n get restrictions() {\n return this._restrictions;\n }\n get hostDisabledClass() {\n return this.disabled;\n }\n get dir() {\n return this.direction;\n }\n ngOnInit() {\n this.verifySettings();\n this.renderer.removeAttribute(this.wrapper, \"tabindex\");\n this.uploadService.setChunkSettings(this.chunkable);\n }\n ngOnChanges(changes) {\n if (isChanged(\"chunkable\", changes)) {\n const newChunkable = changes.chunkable.currentValue;\n if (typeof newChunkable === 'boolean') {\n this.uploadService.async.chunk = newChunkable;\n }\n if (typeof newChunkable === \"object\" && newChunkable !== null) {\n this.uploadService.async.chunk = true;\n this.uploadService.chunk = Object.assign({}, this.uploadService.chunk, newChunkable);\n }\n }\n }\n ngOnDestroy() {\n this.fileList.clear();\n if (this.blurSubscription) {\n this.blurSubscription.unsubscribe();\n }\n if (this.wrapperFocusSubscription) {\n this.wrapperFocusSubscription.unsubscribe();\n }\n if (this.selectButtonFocusSubscription) {\n this.selectButtonFocusSubscription.unsubscribe();\n }\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n handleKeydown(event) {\n if (this.disabled) {\n return;\n }\n if ((event.keyCode === Keys.Enter || event.keyCode === Keys.Space) &&\n event.target === this.fileSelectButton.nativeElement) {\n event.preventDefault();\n this.fileSelect.nativeElement.click();\n return;\n }\n if (hasClasses(event.target, UPLOAD_CLASSES) ||\n (!isFocusable(event.target) && !hasClasses(event.target, IGNORE_TARGET_CLASSES))) {\n this.navigation.process(event);\n }\n }\n /**\n * @hidden\n */\n writeValue(newValue) {\n let isValid = true;\n if (newValue instanceof Array) {\n newValue.forEach((file) => {\n if (!validateInitialFileInfo(file)) {\n isValid = false;\n }\n });\n if (isValid) {\n this.uploadService.addInitialFiles(newValue);\n }\n }\n if (newValue === null) {\n this.fileList.clear();\n }\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n registerOnChange(fn) {\n this.onChangeCallback = fn;\n }\n /**\n * @hidden\n */\n registerOnTouched(fn) {\n this.onTouchedCallback = fn;\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n */\n get selectButtonTabIndex() {\n return this.disabled ? undefined : this.tabIndex;\n }\n /**\n * @hidden\n */\n onFileSelectButtonFocus(_event) {\n this.renderer.addClass(this.fileSelectButton.nativeElement, 'k-state-focused');\n if (!this.navigation.focused) {\n this.navigation.focusedIndex = -1;\n }\n }\n /**\n * @hidden\n */\n onFileSelectButtonBlur(_event) {\n this.renderer.removeClass(this.fileSelectButton.nativeElement, 'k-state-focused');\n }\n /**\n * @hidden\n */\n get showActionButtons() {\n let areVisible = false;\n if (!this.autoUpload) {\n const hasFilesToUpload = this.fileList.filesToUpload.length > 0;\n const uploadingFiles = this.fileList.hasFileWithState([FileState.Uploading]);\n if (this.concurrent && hasFilesToUpload) {\n areVisible = true;\n }\n if (!this.concurrent && hasFilesToUpload && !uploadingFiles) {\n areVisible = true;\n }\n }\n this.navigation.actionButtonsVisible = areVisible;\n return areVisible;\n }\n /**\n * @hidden\n */\n get showTotalStatus() {\n const states = [\n FileState.Uploaded,\n FileState.Uploading,\n FileState.Failed,\n FileState.Paused\n ];\n if (this.fileList.hasFileWithState(states)) {\n return true;\n }\n return false;\n }\n /**\n * @hidden\n */\n textFor(key) {\n return this.localization.get(key);\n }\n /**\n * Focuses the underlying input element.\n */\n focus() {\n setTimeout(() => {\n this.fileSelectButton.nativeElement.focus();\n });\n }\n /**\n * @hidden\n * @deprecated\n */\n focusComponent() {\n this.focus();\n }\n /**\n * Blurs the Upload if it was previously focused.\n */\n blur() {\n if (this.navigation.focused) {\n this.navigation.focused = false;\n document.activeElement.blur();\n this.onBlur.emit();\n }\n }\n /**\n * @hidden\n * @deprecated\n */\n blurComponent() {\n this.blur();\n }\n /**\n * Pauses the upload process of a file that is currently uploading.\n * The `pauseFileByUid` method requires the `chunkable` option of the Upload to be enabled.\n *\n * @param uid - The `uid` of the file that will be paused.\n */\n pauseFileByUid(uid) {\n this.uploadService.pauseFile(uid);\n }\n /**\n * Resumes the upload process for a file that has been previously paused.\n * The `resumeFileByUid` method requires the `chunkable` option of the Upload to be enabled.\n *\n * @param uid - The `uid` of the file that will be resumed.\n */\n resumeFileByUid(uid) {\n this.uploadService.resumeFile(uid);\n }\n /**\n * Triggers the removal of a file or a batch of files.\n * @param uid - The `uid` of the file or a batch of files that will be removed.\n */\n removeFilesByUid(uid) {\n this.uploadService.removeFiles(uid);\n }\n /**\n * Triggers another upload attempt of an unsuccessfully uploaded file or a batch of files.\n * @param uid - The `uid` of the file or a batch of files to be retried.\n */\n retryUploadByUid(uid) {\n this.uploadService.retryFiles(uid);\n }\n /**\n * Cancels the upload of a file or a batch of files.\n * @param uid - The `uid` of the file or a batch of files that will be canceled.\n */\n cancelUploadByUid(uid) {\n this.uploadService.cancelFiles(uid);\n }\n /**\n * Uploads the currently selected files which pass the set restrictions.\n */\n uploadFiles() {\n if (this.fileList.filesToUpload.length) {\n this.uploadService.uploadFiles();\n }\n }\n /**\n * Visually clears all files from the UI without issuing requests to the remove handler.\n */\n clearFiles() {\n this.uploadService.clearFiles();\n }\n /**\n * @hidden\n * Used by the TextBoxContainer to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n verifySettings() {\n if (isDevMode()) {\n if (this.batch && this.chunkable !== false) {\n throw new Error('The file chunking functionality requires the batch setting to be disabled.');\n }\n }\n }\n subscribeBlur() {\n if (!isDocumentAvailable()) {\n return;\n }\n this._ngZone.runOutsideAngular(() => {\n this.documentClick = fromEvent(document, 'click').pipe(filter((event) => {\n return !(this.wrapper !== event.target && this.wrapper.contains(event.target));\n }));\n this.blurSubscription = merge(this.documentClick, this.navigation.onTab).subscribe(() => {\n if (this.navigation.focused) {\n this._ngZone.run(() => {\n this.navigation.focused = false;\n this.onTouchedCallback();\n this.onBlur.emit();\n });\n }\n });\n });\n }\n subscribeFocus() {\n this.wrapperFocusSubscription = this.navigation.onWrapperFocus.subscribe(() => {\n this.onFocus.emit();\n });\n this.selectButtonFocusSubscription = this.navigation.onSelectButtonFocus.subscribe(() => {\n this.fileSelectButton.nativeElement.focus();\n });\n }\n attachEventHandlers() {\n this.subs = this.uploadService.cancelEvent.subscribe((args) => {\n this.cancel.emit(args);\n });\n this.subs.add(this.uploadService.changeEvent.subscribe((files) => {\n this.onChangeCallback(files);\n this.valueChange.emit(files);\n }));\n this.subs.add(this.uploadService.clearEvent.subscribe((args) => {\n this.clear.emit(args);\n }));\n this.subs.add(this.uploadService.completeEvent.subscribe(() => {\n this.complete.emit();\n }));\n this.subs.add(this.uploadService.errorEvent.subscribe((args) => {\n this.error.emit(args);\n }));\n this.subs.add(this.uploadService.pauseEvent.subscribe((args) => {\n this.pause.emit(args);\n }));\n this.subs.add(this.uploadService.removeEvent.subscribe((args) => {\n this.remove.emit(args);\n }));\n this.subs.add(this.uploadService.resumeEvent.subscribe((args) => {\n this.resume.emit(args);\n }));\n this.subs.add(this.uploadService.selectEvent.subscribe((args) => {\n this.select.emit(args);\n }));\n this.subs.add(this.uploadService.successEvent.subscribe((args) => {\n this.success.emit(args);\n }));\n this.subs.add(this.uploadService.uploadEvent.subscribe((args) => {\n this.upload.emit(args);\n }));\n this.subs.add(this.uploadService.uploadProgressEvent.subscribe((args) => {\n this.uploadProgress.emit(args);\n }));\n }\n}\nUploadComponent.decorators = [\n { type: Component, args: [{\n exportAs: 'kendoUpload',\n providers: [\n LocalizationService,\n NavigationService,\n UploadService,\n UPLOAD_VALUE_ACCESSOR,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.upload'\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => UploadComponent)\n }\n ],\n selector: 'kendo-upload',\n template: `\n \n \n
    \n
    \n \n {{textFor('select')}}\n
    \n \n \n
    {{textFor('dropFilesHere')}}
    \n
    \n
      0\"\n class=\"k-upload-files k-reset\"\n [disabled]=\"disabled\"\n [fileList]=\"fileList.files\"\n [fileTemplate]=\"fileTemplate\">\n
    \n \n \n `\n },] },\n];\n/** @nocollapse */\nUploadComponent.ctorParameters = () => [\n { type: UploadService },\n { type: LocalizationService },\n { type: NavigationService },\n { type: NgZone },\n { type: Renderer2 },\n { type: ChangeDetectorRef },\n { type: ElementRef }\n];\nUploadComponent.propDecorators = {\n autoUpload: [{ type: Input }],\n batch: [{ type: Input }],\n withCredentials: [{ type: Input }],\n saveField: [{ type: Input }],\n saveHeaders: [{ type: Input }],\n saveMethod: [{ type: Input }],\n saveUrl: [{ type: Input }],\n responseType: [{ type: Input }],\n removeField: [{ type: Input }],\n removeHeaders: [{ type: Input }],\n removeMethod: [{ type: Input }],\n removeUrl: [{ type: Input }],\n chunkable: [{ type: Input }],\n concurrent: [{ type: Input }],\n multiple: [{ type: Input }],\n disabled: [{ type: Input }],\n showFileList: [{ type: Input }],\n tabindex: [{ type: Input }],\n tabIndex: [{ type: Input, args: ['tabIndex',] }],\n accept: [{ type: Input }],\n restrictions: [{ type: Input }],\n focusableId: [{ type: Input }],\n fileTemplate: [{ type: ContentChild, args: [FileTemplateDirective,] }],\n fileSelect: [{ type: ViewChild, args: ['fileSelect',] }],\n fileSelectButton: [{ type: ViewChild, args: ['fileSelectButton',] }],\n onBlur: [{ type: Output, args: ['blur',] }],\n cancel: [{ type: Output }],\n clear: [{ type: Output }],\n complete: [{ type: Output }],\n error: [{ type: Output }],\n onFocus: [{ type: Output, args: ['focus',] }],\n pause: [{ type: Output }],\n remove: [{ type: Output }],\n resume: [{ type: Output }],\n select: [{ type: Output }],\n success: [{ type: Output }],\n upload: [{ type: Output }],\n uploadProgress: [{ type: Output }],\n valueChange: [{ type: Output }],\n hostDefaultClasses: [{ type: HostBinding, args: ['class.k-widget',] }, { type: HostBinding, args: ['class.k-upload',] }, { type: HostBinding, args: ['class.k-header',] }],\n hostDisabledClass: [{ type: HostBinding, args: ['class.k-state-disabled',] }],\n dir: [{ type: HostBinding, args: ['attr.dir',] }],\n handleKeydown: [{ type: HostListener, args: ['keydown', ['$event'],] }]\n};\n\n/**\n * @hidden\n */\nclass UploadActionButtonsComponent {\n constructor(uploadService, localization, navigation) {\n this.uploadService = uploadService;\n this.localization = localization;\n this.navigation = navigation;\n this.onAction();\n this.onFocus();\n }\n onAction() {\n this.actionSubscription = this.navigation.onActionButtonAction.subscribe((button) => {\n if (button === \"clear\") {\n this.clearFiles();\n }\n else {\n this.performUpload();\n }\n this.navigation.focusSelectButton();\n });\n }\n onFocus() {\n this.focusSubscription = this.navigation.onActionButtonFocus.subscribe((button) => {\n this.focusButton(button);\n });\n }\n focusButton(button) {\n const el = (button === \"clear\") ? this.clearButton : this.uploadButton;\n el.nativeElement.focus();\n }\n ngOnDestroy() {\n this.actionSubscription.unsubscribe();\n this.focusSubscription.unsubscribe();\n }\n performUpload(_event) {\n if (!this.disabled) {\n this.uploadService.uploadFiles();\n }\n }\n clearFiles(_event) {\n if (!this.disabled) {\n this.uploadService.clearFiles();\n }\n }\n textFor(key) {\n return this.localization.get(key);\n }\n get className() {\n return 'k-action-buttons';\n }\n}\nUploadActionButtonsComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-upload-action-buttons',\n template: `\n \n \n `\n },] },\n];\n/** @nocollapse */\nUploadActionButtonsComponent.ctorParameters = () => [\n { type: UploadService },\n { type: LocalizationService },\n { type: NavigationService }\n];\nUploadActionButtonsComponent.propDecorators = {\n disabled: [{ type: Input }],\n clearButton: [{ type: ViewChild, args: ['clearButton',] }],\n uploadButton: [{ type: ViewChild, args: ['uploadButton',] }],\n className: [{ type: HostBinding, args: ['class',] }]\n};\n\n/**\n * @hidden\n */\nclass UploadStatusTotalComponent {\n constructor(localization) {\n this.localization = localization;\n }\n ngDoCheck() {\n this.isPaused = this.fileList.hasFileWithState([FileState.Paused]);\n this.isFailed = this.fileList.hasFileWithState([FileState.Failed]);\n this.isUploading = this.fileList.hasFileWithState([FileState.Uploading]);\n if (this.isPaused && !this.isUploading) {\n this.statusText = this.localization.get('headerStatusPaused');\n }\n else {\n this.statusText = this.isUploading ? this.localization.get('headerStatusUploading')\n : this.localization.get('headerStatusUploaded');\n }\n // this.isPaused = this.isFailed = this.isUploading = false;\n // let currentlyUploading: boolean = this.fileList.hasFileWithState([FileState.Uploading]);\n // if (this.fileList.hasFileWithState([FileState.Paused])) {\n // this.isPaused = true;\n // this.statusText = this.localization.get('headerStatusPaused');\n // }\n // if (this.isUploading !== currentlyUploading) {\n // this.isUploading = currentlyUploading;\n // this.isFailed = this.fileList.hasFileWithState([FileState.Failed]);\n // this.statusText = this.isUploading ? this.localization.get('headerStatusUploading')\n // : this.localization.get('headerStatusUploaded');\n // }\n }\n}\nUploadStatusTotalComponent.decorators = [\n { type: Component, args: [{\n selector: 'kendo-upload-status-total',\n template: `\n \n \n {{statusText}}\n `\n },] },\n];\n/** @nocollapse */\nUploadStatusTotalComponent.ctorParameters = () => [\n { type: LocalizationService }\n];\nUploadStatusTotalComponent.propDecorators = {\n fileList: [{ type: Input }]\n};\n\nconst UPLOAD_DECLARATIONS = [\n UploadComponent,\n UploadActionButtonsComponent,\n UploadStatusTotalComponent\n];\n/**\n * Represents the [NgModule](https://angular.io/api/core/NgModule) definition for the Upload component.\n */\nclass UploadModule {\n}\nUploadModule.decorators = [\n { type: NgModule, args: [{\n declarations: [UPLOAD_DECLARATIONS],\n exports: [\n PUBLIC_DIRECTIVES,\n UPLOAD_DECLARATIONS\n ],\n imports: [SharedModule]\n },] },\n];\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Uploads components.\n *\n * @example\n *\n * ```ts-no-run\n * import { UploadsModule } from '@progress/kendo-angular-upload';\n *\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { NgModule } from '@angular/core';\n *\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * declarations: [AppComponent],\n * imports: [BrowserModule, UploadsModule],\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nclass UploadsModule {\n}\nUploadsModule.decorators = [\n { type: NgModule, args: [{\n exports: [\n FileSelectModule,\n UploadModule\n ]\n },] },\n];\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PreventableEvent, FILESELECT_VALUE_ACCESSOR, LocalizedMessagesDirective, Messages, NavigationService, FileListItemDirective, FileListItemBase, PUBLIC_DIRECTIVES, SHARED_DECLARATIONS, SharedModule, UPLOAD_VALUE_ACCESSOR, UploadService, FileSelectModule, UploadModule, UploadsModule, UploadComponent, FileSelectComponent, FileSelectDirective, FileListComponent, FileListSingleItemComponent, FileListItemActionButtonComponent, FileListMultipleItemsComponent, FileTemplateDirective, TemplateContextDirective, UploadStatusTotalComponent, UploadActionButtonsComponent, DropZoneDirective, CustomMessagesComponent, CancelEvent, ClearEvent, ErrorEvent, PauseEvent, RemoveEvent, ResumeEvent, SelectEvent, SuccessEvent, UploadEvent, UploadProgressEvent, FileState };\n","const FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\n/**\n * @hidden\n */\nexport function fieldList(field) {\n const fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n return fields;\n}\n","import { fieldList } from './field-list';\nconst getterCache = {};\n// tslint:disable-next-line:no-string-literal\ngetterCache['undefined'] = obj => obj;\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n const fields = fieldList(field);\n getterCache[field] = function (obj) {\n let result = obj;\n for (let idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { fieldList } from './field-list';\nconst setterCache = {};\n// tslint:disable-next-line:no-string-literal\nsetterCache['undefined'] = obj => obj;\nconst defaultValue = (nextField, options) => options && options.arrays && !isNaN(Number(nextField)) ? [] : {};\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n const fields = fieldList(field);\n setterCache[field] = (obj, value, options) => {\n let root = obj;\n const depth = fields.length - 1;\n for (let idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || defaultValue(fields[idx + 1], options);\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","export { detectMobileOS, detectDesktopBrowser, browser, mobileOS, touch, msPointers, pointers, touchEnabled } from './support';\nexport { getter } from './accessors/getter';\nexport { setter } from './accessors/setter';\n","/* tslint:disable:object-literal-sort-keys max-line-length */\nimport { isWindowAvailable } from './util';\nconst agentRxs = {\n wp: /(Windows Phone(?: OS)?)\\s(\\d+)\\.(\\d+(\\.\\d+)?)/,\n fire: /(Silk)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n android: /(Android|Android.*(?:Opera|Firefox).*?\\/)\\s*(\\d+)(\\.(\\d+(\\.\\d+)?))?/,\n iphone: /(iPhone|iPod).*OS\\s+(\\d+)[\\._]([\\d\\._]+)/,\n ipad: /(iPad).*OS\\s+(\\d+)[\\._]([\\d_]+)/,\n meego: /(MeeGo).+NokiaBrowser\\/(\\d+)\\.([\\d\\._]+)/,\n webos: /(webOS)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n blackberry: /(BlackBerry|BB10).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n playbook: /(PlayBook).*?Tablet\\s*OS\\s*(\\d+)\\.(\\d+(\\.\\d+)?)/,\n windows: /(MSIE)\\s+(\\d+)\\.(\\d+(\\.\\d+)?)/,\n tizen: /(tizen).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/i,\n sailfish: /(sailfish).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*firefox/i,\n ffos: /(Mobile).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*Firefox/\n};\nconst osRxs = {\n ios: /^i(phone|pad|pod)$/i,\n android: /^android|fire$/i,\n blackberry: /^blackberry|playbook/i,\n windows: /windows/,\n wp: /wp/,\n flat: /sailfish|ffos|tizen/i,\n meego: /meego/\n};\nconst desktopBrowserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\nconst mobileBrowserRxs = {\n omini: /Opera\\sMini/i,\n omobile: /Opera\\sMobi/i,\n firefox: /Firefox|Fennec/i,\n mobilesafari: /version\\/.*safari/i,\n ie: /MSIE|Windows\\sPhone/i,\n chrome: /chrome|crios/i,\n webkit: /webkit/i\n};\nconst testRx = (agent, rxs, dflt) => {\n for (let rx in rxs) {\n if (rxs.hasOwnProperty(rx) && rxs[rx].test(agent)) {\n return rx;\n }\n }\n return dflt !== undefined ? dflt : agent;\n};\n/**\n * A function that detects the mobile browser based on the given UserAgent.\n *\n * @param ua - The user agent string.\n * @returns - A browser info object containing the browser type and version.\n *\n * @example\n * ```ts-no-run\n * const userAgent = 'Mozilla/5.0 (Linux; Android 8.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.3 Chrome/61.0.3163.81 Mobile Safari/537.36';\n * detectMobileOS(userAgent); // { android: true };\n * ```\n */\nexport const detectMobileOS = (ua) => {\n let minorVersion;\n let match = [];\n for (let agent in agentRxs) {\n if (agentRxs.hasOwnProperty(agent)) {\n match = ua.match(agentRxs[agent]);\n if (!match) {\n continue;\n }\n if (agent === 'windows' && 'plugins' in window.navigator) {\n return null;\n } // Break if not Metro/Mobile Windows\n const os = {};\n os.device = agent;\n os.browser = testRx(ua, mobileBrowserRxs, 'default');\n os.name = testRx(agent, osRxs);\n os[os.name] = true;\n os.majorVersion = match[2];\n os.minorVersion = match[3] ? match[3].replace('_', '.') : '.0';\n minorVersion = os.minorVersion.replace('.', '').substr(0, 2);\n os.flatVersion = os.majorVersion + minorVersion +\n (new Array(3 - (minorVersion.length < 3 ? minorVersion.length : 2)).join('0'));\n os.cordova = typeof window.PhoneGap !== undefined\n || typeof window.cordova !== undefined; // Use file protocol to detect appModes.\n os.appMode = window.navigator.standalone\n || (/file|local|wmapp/).test(window.location.protocol)\n || os.cordova; // Use file protocol to detect appModes.\n return os;\n }\n }\n return null;\n};\n/**\n * A function that detects the desktop browser based on the given UserAgent.\n *\n * @param ua - The user agent string.\n * @returns - A browser info object containing the browser type and version.\n *\n * @example\n * ```ts-no-run\n * const userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19';\n * detectDesktopBrowser(userAgent); // { chrome: true, webkit: true };\n * ```\n */\nexport const detectDesktopBrowser = (ua) => {\n let browserInfo = null;\n let match = [];\n for (let agent in desktopBrowserRxs) {\n if (desktopBrowserRxs.hasOwnProperty(agent)) {\n match = ua.match(desktopBrowserRxs[agent]);\n if (match) {\n browserInfo = {};\n browserInfo[agent] = true;\n browserInfo[match[1].toLowerCase().split(' ')[0].split('/')[0]] = true;\n browserInfo.version = parseInt(document.documentMode || match[2], 10);\n break;\n }\n }\n }\n return browserInfo;\n};\nconst userAgent = isWindowAvailable() && window.navigator ? window.navigator.userAgent : null;\n/**\n * A constant holding the desktop browser info. The variable persists the result of the detectDesktopBrowser(window.navigator.userAgent) call.\n * If no desktop browser is detected, the constant will be `null`.\n */\nexport const browser = userAgent ? detectDesktopBrowser(userAgent) : null;\n/**\n * A constant holding the mobile OS info. The variable persists the result of the detectMobileOS(window.navigator.userAgent) call.\n * If no mobile OS is detected, the constant will be `null`.\n */\nexport const mobileOS = userAgent ? detectMobileOS(userAgent) : null;\n/**\n * A constant reporting the browser `touch` events support.\n */\nexport const touch = isWindowAvailable() && 'ontouchstart' in window;\n/**\n * @hidden\n * A constant reporting the browser `msPointers` events support.\n */\nexport const msPointers = browser && !browser.chrome && window.MSPointerEvent;\n/**\n * A constant reporting the browser `pointers` events support.\n */\nexport const pointers = browser && !browser.chrome && window.PointerEvent;\n/**\n * A constant reporting whether the browser is touch enabled.\n */\nexport const touchEnabled = mobileOS && (touch || msPointers || pointers);\n","/**\n * @hidden\n */\nexport const isWindowAvailable = () => {\n return typeof window !== 'undefined';\n};\n","import { isPresent } from './utils';\nconst getterCache = {};\nconst FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\n// tslint:disable-next-line:no-string-literal\ngetterCache['undefined'] = obj => obj;\n/**\n * @hidden\n */\nexport const getter = (field, safe) => {\n const key = field + safe;\n if (getterCache[key]) {\n return getterCache[key];\n }\n const fields = [];\n field.replace(FIELD_REGEX, (_, index, indexAccessor, field) => {\n fields.push(isPresent(index) ? index : (indexAccessor || field));\n return undefined;\n });\n getterCache[key] = obj => {\n let result = obj;\n for (let idx = 0; idx < fields.length; idx++) {\n result = result[fields[idx]];\n if (!isPresent(result) && safe) {\n return result;\n }\n }\n return result;\n };\n return getterCache[key];\n};\n","import { isPresent, isString } from './utils';\nimport { composeSortDescriptors } from './sorting/sort-array.operator';\nimport { groupBy, normalizeGroups } from './grouping/group.operators';\nimport { normalizeFilters } from './filtering/filter.operators';\nimport { compileFilter } from './filtering/filter-expression.factory';\nimport { exec, skip, take, filter, concat } from './transducers';\nimport { getter } from './accessor';\nimport { compose } from './funcs';\nimport { sort } from './sorting/sort';\n/**\n * Orders the specified array according to the provided sort descriptors.\n *\n * @param {T[]} data - The data to be sorted.\n * @param {SortDescriptor[]} descriptors - The descriptors by which the data will be sorted.\n * @returns {T[]} - The sorted data.\n *\n * @example\n * ```ts-no-run\n * import { orderBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = orderBy(data, [{ field: \"name\", dir: \"asc\" }]);\n * ```\n */\nexport const orderBy = (data, descriptors) => {\n if (descriptors.some(x => isPresent(x.dir))) {\n data = data.slice(0);\n const comparer = composeSortDescriptors(descriptors);\n sort(data, 0, data.length, comparer);\n }\n return data;\n};\nconst defaultComparer = (a, b) => a === b;\nconst normalizeComparer = (comparer) => {\n if (isString(comparer)) {\n const accessor = getter(comparer);\n comparer = (a, b) => accessor(a) === accessor(b);\n }\n return comparer;\n};\nconst _distinct = (data, comparer) => data.filter((x, idx, xs) => xs.findIndex(comparer.bind(null, x)) === idx);\n/**\n * Reduces the provided array so it contains only unique values.\n *\n * @param {T[]} data - The array that will be reduced.\n * @param {(Comparer | string)} comparer - An optional custom comparer function or the field name that will be used for comparison.\n * @returns {T[]} - The reduced data.\n *\n * @example\n * ```ts-no-run\n * import { distinct } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = distinct(data, \"subcategory\");\n *\n * // output:\n * // result => [\n * // { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * // { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" }\n * // ];\n * ```\n */\nexport const distinct = (data, comparer = defaultComparer) => _distinct(data, normalizeComparer(comparer));\n/**\n * @hidden\n */\nexport const count = (data, predicate) => {\n let counter = 0;\n for (let idx = 0, length = data.length; idx < length; idx++) {\n if (predicate(data[idx])) {\n counter++;\n }\n }\n return counter;\n};\n/**\n * @hidden\n */\nexport const limit = (data, predicate) => {\n if (predicate) {\n return data.filter(predicate);\n }\n return data;\n};\n/**\n * Applies the specified operation descriptors to the data.\n *\n * @param {T[]} data - The data to be processed.\n * @param {State} state - The operation descriptors that will be applied to the data.\n * @returns {DataResult} - The processed data.\n *\n * @example\n * ```ts-no-run\n *\n * const result = process(data, {\n * skip: 10,\n * take: 20,\n * group: [{\n * field: 'category.categoryName',\n * aggregates: [\n * { aggregate: \"sum\", field: \"unitPrice\" },\n * { aggregate: \"sum\", field: \"unitsInStock\" }\n * ]\n * }],\n * sort: [{ field: 'productName', dir: 'desc' }],\n * filter: {\n * logic: \"or\",\n * filters: [\n * { field: \"discontinued\", operator: \"eq\", value: true },\n * { field: \"unitPrice\", operator: \"lt\", value: 22 }\n * ]\n * }\n * });\n *\n * ```\n */\nexport const process = (data, state) => {\n const { skip: skipCount, take: takeCount, filter: filterDescriptor, sort, group } = state;\n const sortDescriptors = [...normalizeGroups(group || []), ...sort || []];\n if (sortDescriptors.length) {\n data = orderBy(data, sortDescriptors);\n }\n const hasFilters = isPresent(filterDescriptor) && filter.length;\n const hasGroups = isPresent(group) && group.length;\n if (!hasFilters && !hasGroups) {\n return {\n data: takeCount ? data.slice(skipCount, skipCount + takeCount) : data,\n total: data.length\n };\n }\n let total;\n const transformers = [];\n let predicate;\n if (hasFilters) {\n predicate = compileFilter(normalizeFilters(filterDescriptor));\n total = count(data, predicate);\n transformers.push(filter(predicate));\n }\n else {\n total = data.length;\n }\n if (isPresent(skipCount) && isPresent(takeCount)) {\n transformers.push(skip(skipCount));\n transformers.push(take(takeCount));\n }\n if (transformers.length) {\n const transform = compose(...transformers);\n const result = hasGroups ?\n groupBy(data, group, transform, limit(data, predicate)) :\n exec(transform(concat), [], data);\n return { data: result, total: total };\n }\n return {\n data: hasGroups ? groupBy(data, group) : data,\n total: total\n };\n};\n","import { isString, isDate } from './utils';\n/**\n * @hidden\n * Creates a single arity function which wraps the value based on the provided predicate.\n * @example\n * ```\n * wrapIf(() => ignoreCase) `tolower(${field})`\n * //ignoreCase=true -> tolower(${field})`\n * //ignoreCase=false -> ${field}`\n * ```\n */\nexport const wrapIf = predicate => (str, ...args) => predicate() ? `${str[0]}${args[0]}${str[1]}` : args[0];\n/**\n * @hidden\n */\nexport const toUTC = (date) => new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n/**\n * @hidden\n */\nexport const quote = ({ field, value, ignoreCase, operator }) => ({\n value: `'${value.replace(/'/g, \"''\")}'`,\n field,\n ignoreCase,\n operator\n});\n/**\n * @hidden\n */\nexport const encodeValue = ({ field, value, ignoreCase, operator }) => ({\n value: `${encodeURIComponent(value)}`,\n field,\n ignoreCase,\n operator\n});\n/**\n * @hidden\n */\nexport const toLower = ({ field, value, ignoreCase, operator }) => ({\n field: wrapIf(() => ignoreCase) `tolower(${field})`,\n value,\n ignoreCase,\n operator\n});\n/**\n * @hidden\n */\nexport const normalizeField = ({ field, value, ignoreCase, operator }) => ({\n value,\n field: field.replace(/\\./g, \"/\"),\n ignoreCase,\n operator\n});\n/**\n * @hidden\n */\nexport const isStringValue = x => isString(x.value);\n/**\n * @hidden\n */\nexport const isDateValue = x => isDate(x.value);\n/**\n * @hidden\n */\nexport const serializeFilters = (map, join) => (filter) => {\n const brackets = wrapIf(() => filter.filters.length > 1);\n return brackets `(${filter.filters\n .map(map)\n .join(join(filter))})`;\n};\n","import { isPresent } from '../utils';\n// tslint:enable:max-line-length\n/**\n * @hidden\n * Type guard for `CompositeFilterDescriptor`.\n */\nexport const isCompositeFilterDescriptor = (source) => {\n return isPresent(source.filters);\n};\n","import { isPresent } from '../utils';\nimport { isCompositeFilterDescriptor } from './filter-descriptor.interface';\nimport { normalizeFilters } from './filter.operators';\nimport { transformCompositeFilter } from \"./filter-no-eval\";\n// tslint:disable:max-line-length\n/**\n * Creates a [`Predicate`]({% slug api_kendo-data-query_predicate %}) function for the specified [`CompositeFilterDescriptor`]({% slug api_kendo-data-query_compositefilterdescriptor %}).\n *\n * @param {CompositeFilterDescriptor} descriptor - The descriptor for which the predicate is created.\n * @returns {Predicate} - The created function instance.\n *\n * @example\n * ```ts-no-run\n * import { compileFilter } from '@progress/kendo-data-query';\n *\n * const data = [{ name: \"Pork\" }, { name: \"Pepper\" }, { name: \"Beef\" } ];\n * const predicate = compileFilter({ logic: \"and\", filters: [{ field: \"name\", operator: \"startswith\", value: \"P\" }] });\n * const result = data.filter(predicate);\n *\n * ```\n */\n// tslint:enable:max-line-length\nexport const compileFilter = (descriptor) => {\n if (!descriptor || descriptor.filters.length === 0) {\n return () => true;\n }\n return transformCompositeFilter(descriptor);\n};\n// tslint:disable:max-line-length\n/**\n * Filters the provided array according to the specified [`CompositeFilterDescriptor`]({% slug api_kendo-data-query_compositefilterdescriptor %}).\n *\n * @param {T[]} data - The data that will be filtered.\n * @param {(CompositeFilterDescriptor | FilterDescriptor)} descriptor - The filter criteria that will be applied.\n * @returns {T[]} - The filtered data.\n *\n * @example\n * ```ts-no-run\n * import { filterBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = filterBy(data, {\n * logic: 'and',\n * filters: [\n * { field: \"name\", operator: \"startswith\", value: \"p\", ignoreCase: true },\n * { field: \"subcategory\", operator: \"eq\", value: \"Meat\" },\n * ]\n * });\n *\n * // output:\n * // [{ \"name\": \"Pork\", \"category\": \"Food\", \"subcategory\": \"Meat\" }]\n * ```\n */\n// tslint:enable:max-line-length\nexport const filterBy = (data, descriptor) => {\n if (!isPresent(descriptor) || (isCompositeFilterDescriptor(descriptor) && descriptor.filters.length === 0)) {\n return data;\n }\n return data.filter(compileFilter(normalizeFilters(descriptor)));\n};\n","import { isCompositeFilterDescriptor } from \"./filter-descriptor.interface\";\nimport { getter } from \"../accessor\";\nimport { isFunction, isPresent, isDate, isString, isBlank, isNumeric } from \"../utils\";\nconst logic = {\n \"or\": {\n concat: (acc, fn) => a => acc(a) || fn(a),\n identity: () => false\n },\n \"and\": {\n concat: (acc, fn) => a => acc(a) && fn(a),\n identity: () => true\n }\n};\nconst operatorsMap = {\n contains: (a, b) => (a || \"\").indexOf(b) >= 0,\n doesnotcontain: (a, b) => (a || \"\").indexOf(b) === -1,\n doesnotendwith: (a, b) => (a || \"\").indexOf(b, (a || \"\").length - (b || \"\").length) < 0,\n doesnotstartwith: (a, b) => (a || \"\").lastIndexOf(b, 0) === -1,\n endswith: (a, b) => (a || \"\").indexOf(b, (a || \"\").length - (b || \"\").length) >= 0,\n eq: (a, b) => a === b,\n gt: (a, b) => a > b,\n gte: (a, b) => a >= b,\n isempty: (a) => a === '',\n isnotempty: (a) => a !== '',\n isnotnull: (a) => isPresent(a),\n isnull: (a) => isBlank(a),\n lt: (a, b) => a < b,\n lte: (a, b) => a <= b,\n neq: (a, b) => a != b,\n startswith: (a, b) => (a || \"\").lastIndexOf(b, 0) === 0\n};\nconst dateRegExp = /^\\/Date\\((.*?)\\)\\/$/;\nconst convertValue = (value, ignoreCase) => {\n if (value != null && isString(value)) {\n const date = dateRegExp.exec(value);\n if (date) {\n return new Date(+date[1]).getTime();\n }\n else if (ignoreCase) {\n return value.toLowerCase();\n }\n }\n else if (value != null && isDate(value)) {\n return value.getTime();\n }\n return value;\n};\nconst typedGetter = (prop, value, ignoreCase) => {\n if (!isPresent(value)) {\n return prop;\n }\n let acc = prop;\n if (isString(value)) {\n const date = dateRegExp.exec(value);\n if (date) {\n value = new Date(+date[1]);\n }\n else {\n acc = a => {\n const x = prop(a);\n if (typeof x === 'string' && ignoreCase) {\n return x.toLowerCase();\n }\n else {\n return isNumeric(x) ? x + \"\" : x;\n }\n };\n }\n }\n if (isDate(value)) {\n return a => {\n const x = acc(a);\n return isDate(x) ? x.getTime() : x;\n };\n }\n return acc;\n};\nconst transformFilter = ({ field, ignoreCase, value, operator }) => {\n field = !isPresent(field) ? a => a : field;\n ignoreCase = isPresent(ignoreCase) ? ignoreCase : true;\n const itemProp = typedGetter(isFunction(field) ? field : getter(field, true), value, ignoreCase);\n value = convertValue(value, ignoreCase);\n const op = isFunction(operator) ? operator : operatorsMap[operator];\n return a => op(itemProp(a), value, ignoreCase);\n};\n/**\n * @hidden\n */\nexport const transformCompositeFilter = (filter) => {\n const combiner = logic[filter.logic];\n return filter.filters\n .filter(isPresent)\n .map(x => isCompositeFilterDescriptor(x) ? transformCompositeFilter(x) : transformFilter(x))\n .reduce(combiner.concat, combiner.identity);\n};\n","import { isPresent, isString, isArray } from '../utils';\nimport { isCompositeFilterDescriptor } from './filter-descriptor.interface';\nconst operatorMap = (key) => ({\n \"!=\": \"neq\",\n \"<\": \"lt\",\n \"<=\": \"lte\",\n \"==\": \"eq\",\n \">\": \"gt\",\n \">=\": \"gte\",\n equal: \"eq\",\n equals: \"eq\",\n equalto: \"eq\",\n ge: \"gte\",\n greater: \"gt\",\n greaterthan: \"gt\",\n greaterthanequal: \"gte\",\n isempty: \"isempty\",\n isequalto: \"eq\",\n isgreaterthan: \"gt\",\n isgreaterthanorequalto: \"gte\",\n islessthan: \"lt\",\n islessthanorequalto: \"lte\",\n isnotempty: \"isnotempty\",\n isnotequalto: \"neq\",\n isnull: \"isnull\",\n le: \"lte\",\n less: \"lt\",\n lessthan: \"lt\",\n lessthanequal: \"lte\",\n ne: \"neq\",\n notequal: \"neq\",\n notequals: \"neq\",\n notequalto: \"neq\",\n notsubstringof: \"doesnotcontain\"\n}[key.toLowerCase()] || key);\nconst normalizeOperator = (descriptor) => {\n if (descriptor.filters) {\n descriptor.filters = descriptor.filters.map(filter => {\n const result = Object.assign({}, filter);\n if (!isCompositeFilterDescriptor(filter) && isString(filter.operator)) {\n result.operator = operatorMap(filter.operator);\n }\n if (isCompositeFilterDescriptor(filter)) {\n normalizeOperator(result);\n }\n return result;\n });\n }\n};\nconst normalizeDescriptor = (descriptor) => {\n if (!isCompositeFilterDescriptor(descriptor)) {\n return {\n filters: isArray(descriptor) ? descriptor : [descriptor],\n logic: \"and\"\n };\n }\n return Object.assign({}, descriptor);\n};\n// tslint:disable:max-line-length\n/**\n * Converts a [`FilterDescriptor`]({% slug api_kendo-data-query_filterdescriptor %}) into a [`CompositeFilterDescriptor`]({% slug api_kendo-data-query_compositefilterdescriptor %}). If a `CompositeFilterDescriptor` is passed, no modifications will be made.\n *\n * @param {CompositeFilterDescriptor | FilterDescriptor} descriptor - The descriptor that will be normalized.\n * @returns {CompositeFilterDescriptor} - The normalized descriptor.\n */\n// tslint:enable:max-line-length\nexport const normalizeFilters = (descriptor) => {\n if (isPresent(descriptor)) {\n descriptor = normalizeDescriptor(descriptor);\n normalizeOperator(descriptor);\n }\n return descriptor;\n};\n","/**\n * @hidden\n */\nexport const ifElse = (predicate, right, left) => value => predicate(value) ? right(value) : left(value);\n/**\n * @hidden\n * Performs the right-to-left function composition. Functions should have a unary.\n */\nexport const compose = (...args) => (data) => args.reduceRight((acc, curr) => curr(acc), data);\n/**\n * @hidden\n */\nexport const constant = x => () => x;\n/**\n * @hidden\n */\nexport const identity = x => x;\n","import { exec, map, aggregatesCombinator, expandAggregates } from '../transducers';\nconst identity = map(x => x);\n// tslint:disable:max-line-length\n/**\n * Applies the specified [`AggregateDescriptors`]({% slug api_kendo-data-query_aggregatedescriptor %}) to the data. Returns an [`AggregateResult`]({% slug api_kendo-data-query_aggregateresult %}) instance.\n *\n * @example\n * ```ts-no-run\n * const data = [\n * { unitPrice: 23, unitsInStock: 21 },\n * { unitPrice: 10, unitsInStock: 12 },\n * { unitPrice: 20, unitsInStock: 33 }\n * ];\n *\n * const result = aggregateBy(data, [\n * { aggregate: \"sum\", field: \"unitPrice\" },\n * { aggregate: \"sum\", field: \"unitsInStock\" }\n * ]);\n *\n * //output:\n * // {\n * // \"unitPrice\": { \"sum\": 53 },\n * // \"unitsInStock\": { \"sum\": 66 }\n * // }\n * ```\n * @param {T[]} data - The data on which the calculation will be executed.\n * @param {AggregateDescriptor[]} descriptors - The aggregate operations that will be executed.\n * @param {any} transformers - For internal use.\n * @returns {AggregateResult} - The aggregated result.\n * For more information, refer to the [`aggregateresult`]({% slug api_kendo-data-query_aggregateresult %}) configuration.\n */\n// tslint:enable:max-line-length\nexport const aggregateBy = (data, descriptors = [], transformers = identity) => {\n const initialValue = {};\n if (!descriptors.length) {\n return initialValue;\n }\n const result = exec(transformers(aggregatesCombinator(descriptors)), initialValue, data);\n return expandAggregates(result);\n};\n","import { exec, map, groupCombinator } from '../transducers';\nimport { isArray, isPresent } from '../utils';\nimport { aggregateBy } from './aggregate.operators';\nimport { filterBy } from '../filtering/filter-expression.factory';\n/**\n * @hidden\n */\nexport const normalizeGroups = (descriptors) => {\n descriptors = isArray(descriptors) ? descriptors : [descriptors];\n return descriptors.map(x => Object.assign({ dir: \"asc\" }, x));\n};\nconst identity = map(x => x);\n/**\n * Groups the provided data according to the specified descriptors.\n *\n * @param {Array} data - The data that will be grouped.\n * @param {GroupDescriptor[]} descriptors - The descriptors.\n * @param {any} transformers - For internal use.\n * @param {Array} originalData - For internal use.\n * @returns {(Array> | T[])} - The grouped data.\n *\n * @example\n * ```ts-no-run\n *\n * import { groupBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = groupBy(data, [{ field: \"subcategory\" }]);\n * ```\n */\nexport const groupBy = (data, descriptors = [], transformers = identity, originalData = data) => {\n descriptors = normalizeGroups(descriptors);\n if (!descriptors.length) {\n return data;\n }\n const descriptor = descriptors[0];\n const initialValue = {};\n const view = exec(transformers(groupCombinator(descriptor.field)), initialValue, data);\n const result = [];\n Object.keys(view).forEach(field => {\n Object.keys(view[field]).forEach(value => {\n const group = view[field][value];\n let aggregateResult = {};\n let filteredData = originalData;\n if (isPresent(descriptor.aggregates)) {\n filteredData = filterBy(originalData, {\n field: descriptor.field,\n ignoreCase: false,\n operator: 'eq',\n value: group.value\n });\n aggregateResult = aggregateBy(filteredData, descriptor.aggregates);\n }\n result[group.__position] = {\n aggregates: aggregateResult,\n field: field,\n items: descriptors.length > 1 ?\n groupBy(group.items, descriptors.slice(1), identity, filteredData)\n : group.items,\n value: group.value\n };\n });\n });\n return result;\n};\n","export { isCompositeFilterDescriptor } from './filtering/filter-descriptor.interface';\nexport { toODataString } from './odata.operators';\nexport { toDataSourceRequestString, toDataSourceRequest } from './mvc/operators';\nexport { translateDataSourceResultGroups, translateAggregateResults } from './mvc/deserialization';\nexport { orderBy, process, distinct } from './array.operators';\nexport { getter } from './accessor';\nexport { filterBy, compileFilter } from './filtering/filter-expression.factory';\nexport { groupBy } from './grouping/group.operators';\nexport { composeSortDescriptors } from './sorting/sort-array.operator';\nexport { normalizeFilters } from './filtering/filter.operators';\nexport { normalizeGroups } from './grouping/group.operators';\nexport { aggregateBy } from './grouping/aggregate.operators';\n","import { isPresent } from '../utils';\nimport { compose } from '../funcs';\n// tslint:enable:max-line-length\nconst set = (field, target, value) => {\n target[field] = value;\n return target;\n};\nconst toCamelCase = str => str.replace(/(^[A-Z])/g, (_, g1) => g1.toLowerCase());\nconst prop = (fieldName) => (obj) => {\n const value = obj[fieldName];\n if (isPresent(value)) {\n return value;\n }\n return obj[toCamelCase(fieldName)];\n};\nconst member = prop(\"Member\");\nconst aggregateMethodName = prop(\"AggregateMethodName\");\nconst value = prop(\"Value\");\nconst convert = mapper => values => Object.keys(values).reduce(mapper.bind(null, values), {});\nconst translateAggregate = convert((source, acc, field) => set(field.toLowerCase(), acc, source[field]));\nconst translateAggregates = convert((source, acc, field) => set(field, acc, translateAggregate(source[field])));\nconst valueOrDefault = (value, defaultValue) => isPresent(value) ? value : defaultValue;\nconst normalizeGroup = group => ({\n aggregates: group.Aggregates || group.aggregates,\n field: group.Member || group.member || group.field,\n hasSubgroups: group.HasSubgroups || group.hasSubgroups || false,\n items: group.Items || group.items,\n value: valueOrDefault(group.Key, valueOrDefault(group.key, group.value))\n});\nconst translateGroup = compose(({ field, hasSubgroups, value, aggregates, items }) => ({\n aggregates: translateAggregates(aggregates),\n field,\n items: hasSubgroups ? items.map(translateGroup) : items,\n value\n}), normalizeGroup);\n// tslint:disable:max-line-length\n/**\n * Converts the grouped result, which is returned into the `Data` field of the UI for ASP.NET MVC `ToDataSourceResult` method, to a comparable format.\n * @param data - The value of the `Data` field of the response.\n * @returns {GroupResult[]} - The converted result.\n */\nexport const translateDataSourceResultGroups = (data) => data.map(translateGroup);\n/**\n * Converts the `AggregateResults` field content, which is returned by the UI for ASP.NET MVC `ToDataSourceResult` method, to a comparable format.\n * @param data - The value of the `AggregateResults` field of the response.\n * @returns {AggregateResult} - The converted result.\n */\n// tslint:enable:max-line-length\nexport const translateAggregateResults = (data) => ((data || []).reduce((acc, x) => set(member(x), acc, set(aggregateMethodName(x).toLowerCase(), acc[member(x)] || {}, value(x))), {}));\n","import { isCompositeFilterDescriptor } from '../filtering/filter-descriptor.interface';\nimport { isPresent, isNotNullOrEmptyString, isArray } from '../utils';\nimport { getter } from '../accessor';\nimport { compose, ifElse, identity } from '../funcs';\nimport { isStringValue, isDateValue, quote, serializeFilters, toUTC, encodeValue } from '../filter-serialization.common';\nconst toQueryString = values => values.reduce((acc, [key, value]) => [...acc, `${key}=${value}`], []);\nconst toObject = values => values.reduce((acc, [key, value]) => (Object.assign({}, acc, { [key]: value })), {});\nconst pairwise = key => value => [key, value];\nconst empty = () => null;\nconst isNotEmptyArray = value => isPresent(value) && isArray(value) && value.length > 0;\nconst has = accessor => value => isPresent(accessor(value));\nconst isNotEmpty = accessor => value => isNotEmptyArray(accessor(value));\nconst runOrEmpty = (predicate, fn) => ifElse(predicate, fn, empty);\nconst calcPage = ({ skip, take }) => Math.floor((skip || 0) / take) + 1;\nconst formatDescriptors = (accessor, formatter) => state => (accessor(state).map(formatter).join(\"~\"));\nconst removeAfter = (what) => (str) => str.slice(0, str.indexOf(what));\nconst replace = (patterns) => compose(...patterns.map(([left, right]) => (s) => s.replace(new RegExp(left, \"g\"), right)));\nconst sanitizeDateLiterals = replace([[\"\\\"\", \"\"], [\":\", \"-\"]]);\nconst removeAfterDot = removeAfter(\".\");\nconst directionFormatter = ({ field, dir = \"asc\" }) => `${field}-${dir}`;\nconst aggregateFormatter = ({ field, aggregate }) => `${field}-${aggregate}`;\nconst take = getter(\"take\");\nconst aggregates = getter(\"aggregates\");\nconst skip = getter(\"skip\");\nconst group = getter(\"group\");\nconst sort = getter(\"sort\", true);\nconst formatSort = formatDescriptors(sort, directionFormatter);\nconst formatGroup = formatDescriptors(group, directionFormatter);\nconst formatAggregates = formatDescriptors(aggregates, aggregateFormatter);\nconst prefixDateValue = value => `datetime'${value}'`;\nconst formatDateValue = compose(prefixDateValue, removeAfterDot, sanitizeDateLiterals, JSON.stringify, toUTC);\nconst formatDate = ({ field, value, ignoreCase, operator }) => ({\n value: formatDateValue(value),\n field,\n ignoreCase,\n operator\n});\nconst normalizeSort = (state) => Object.assign({}, state, {\n sort: (sort(state) || []).filter(({ dir }) => isNotNullOrEmptyString(dir))\n});\nconst transformSkip = compose(pairwise('page'), calcPage);\nconst transformTake = compose(pairwise('pageSize'), take);\nconst transformGroup = compose(pairwise('group'), formatGroup);\nconst transformSort = compose(pairwise('sort'), formatSort);\nconst transformAggregates = compose(pairwise('aggregate'), formatAggregates);\nconst serializePage = runOrEmpty(has(skip), transformSkip);\nconst serializePageSize = runOrEmpty(has(take), transformTake);\nconst serializeGroup = runOrEmpty(isNotEmpty(group), transformGroup);\nconst serializeAggregates = runOrEmpty(has(aggregates), transformAggregates);\nconst serializeSort = compose(runOrEmpty(isNotEmpty(sort), transformSort), normalizeSort);\nconst hasField = ({ field }) => isNotNullOrEmptyString(field);\nconst filterFormatter = ({ field, operator, value }) => `${field}~${operator}~${value}`;\nconst dateFormatter = ifElse(isDateValue, compose(filterFormatter, formatDate), filterFormatter);\nconst typedFormatter = encode => runOrEmpty(hasField, ifElse(isStringValue, compose(filterFormatter, quote, encode ? encodeValue : identity), dateFormatter));\nconst join = ({ logic }) => `~${logic}~`;\nconst serialize = encode => serializeFilters(filter => ifElse(isCompositeFilterDescriptor, serialize(encode), typedFormatter(encode))(filter), join);\nconst serializeFilter = ({ filter }, encode) => {\n if (filter && filter.filters) {\n const filters = serialize(encode)(filter);\n if (filters.length) {\n return ['filter', filters];\n }\n }\n return null;\n};\nconst rules = (state, encode = true) => key => ({\n \"aggregates\": serializeAggregates(state),\n \"filter\": serializeFilter(state, encode),\n \"group\": serializeGroup(state),\n \"skip\": serializePage(state),\n \"sort\": serializeSort(state),\n \"take\": serializePageSize(state)\n}[key]);\n/**\n * Converts a [`DataSourceRequestState`]({% slug api_kendo-data-query_datasourcerequeststate %}) into a string\n * that is comparable with the `DataSourceRequest` format in UI for ASP.NET MVC.\n *\n * @param {DataRequestState} state - The state that will be serialized.\n * @returns {string} - The serialized state.\n *\n * @example\n * {% platform_content angular %}\n * ```ts-no-run\n * import {\n * toDataSourceRequestString,\n * translateDataSourceResultGroups,\n * translateAggregateResults\n * } from '@progress/kendo-data-query';\n *\n * export class Service {\n * private BASE_URL: string = '...';\n *\n * constructor(private http: Http) { }\n *\n * // Omitted for brevity...\n *\n * private fetch(state: DataSourceRequestState): Observable {\n * const queryStr = `${toDataSourceRequestString(state)}`; //serialize the state\n * const hasGroups = state.group && state.group.length;\n *\n * return this.http\n * .get(`${this.BASE_URL}?${queryStr}`) //send the state to the server\n * .map(response => response.json())\n * .map(({Data, Total, AggregateResults}) => // process the response\n * ({\n * //if there are groups convert them to compatible format\n * data: hasGroups ? translateDataSourceResultGroups(Data) : Data,\n * total: Total,\n * // convert the aggregates if such exists\n * aggregateResult: translateAggregateResults(AggregateResults)\n * })\n * );\n * }\n * }\n * ```\n * {% endplatform_content %}\n *\n * {% platform_content react %}\n * ```jsx-no-run\n * import React from 'react';\n * import { toDataSourceRequestString, translateDataSourceResultGroups } from '@progress/kendo-data-query';\n *\n * export function withState(WrappedGrid) {\n * return class StatefullGrid extends React.Component {\n * constructor(props) {\n * super(props);\n * this.state = { dataState: { skip: 0, take: 20 } };\n * }\n *\n * render() {\n * return (\n * \n * );\n * }\n *\n * componentDidMount() {\n * this.fetchData(this.state.dataState);\n * }\n *\n * dataStateChange = (changeEvent) => {\n * this.setState({ dataState: changeEvent.data });\n * this.fetchData(changeEvent.data);\n * }\n *\n * fetchData(dataState) {\n * const queryStr = `${toDataSourceRequestString(dataState)}`; // Serialize the state\n * const hasGroups = dataState.group && dataState.group.length;\n *\n * const base_url = 'api/Products';\n * const init = { method: 'GET', accept: 'application/json', headers: {} };\n *\n * fetch(`${base_url}?${queryStr}`, init)\n * .then(response => response.json())\n * .then(({ data, total }) => {\n * this.setState({\n * data: hasGroups ? translateDataSourceResultGroups(data) : data,\n * total,\n * dataState\n * });\n * });\n * }\n * }\n * }\n * ```\n * {% endplatform_content %}\n */\nexport const toDataSourceRequestString = (state) => (toQueryString(Object.keys(state)\n .map(rules(state))\n .filter(isPresent)).join('&'));\n/**\n * Converts a [`DataSourceRequestState`]({% slug api_kendo-data-query_datasourcerequeststate %}) into an object\n * that is compatible with the `DataSourceRequest` format in UI for ASP.NET MVC.\n *\n * @param {DataRequestState} state - The state that will be serialized.\n * @returns {any} - The serialized state.\n */\nexport const toDataSourceRequest = (state) => (toObject(Object.keys(state)\n .map(rules(state, false))\n .filter(isPresent)));\n","import { isCompositeFilterDescriptor } from './filtering/filter-descriptor.interface';\nimport { compose, ifElse } from './funcs';\nimport { normalizeField, quote, toLower, isDateValue, isStringValue, serializeFilters, encodeValue, toUTC } from './filter-serialization.common';\nconst formatDate = ({ utcDates }) => ({ field, value, ignoreCase, operator }) => ({\n value: JSON.stringify(!utcDates ? toUTC(value) : value).replace(/\"/g, \"\"),\n field,\n ignoreCase,\n operator\n});\nconst fnFormatter = ({ operator }) => ({ field, value }) => `${operator}(${field},${value})`;\nconst singleOperatorFormatter = ({ operator }) => ({ field, value }) => `${field} ${operator} ${value}`;\nconst stringFormat = formatter => compose(formatter, encodeValue, quote, toLower, normalizeField);\nconst stringFnOperator = settings => stringFormat(fnFormatter(settings));\nconst stringOperator = settings => stringFormat(singleOperatorFormatter(settings));\nconst numericOperator = settings => compose(singleOperatorFormatter(settings), normalizeField);\nconst dateOperator = settings => compose(singleOperatorFormatter(settings), normalizeField, formatDate(settings));\nconst ifDate = settings => ifElse(isDateValue, dateOperator(settings), numericOperator(settings));\nconst typedOperator = settings => ifElse(isStringValue, stringOperator(settings), ifDate(settings));\nconst appendEqual = str => `${str} eq -1`;\nconst nonValueExpression = formatter => compose(formatter, normalizeField);\nconst filterOperators = (operator, settings) => ({\n contains: stringFnOperator(Object.assign({}, settings, { operator: \"contains\" })),\n doesnotcontain: compose(appendEqual, stringFnOperator(Object.assign({}, settings, { operator: \"indexof\" }))),\n endswith: stringFnOperator(Object.assign({}, settings, { operator: \"endswith\" })),\n eq: typedOperator(Object.assign({}, settings, { operator: \"eq\" })),\n gt: typedOperator(Object.assign({}, settings, { operator: \"gt\" })),\n gte: typedOperator(Object.assign({}, settings, { operator: \"ge\" })),\n isempty: nonValueExpression(({ field }) => `${field} eq ''`),\n isnotempty: nonValueExpression(({ field }) => `${field} ne ''`),\n isnotnull: nonValueExpression(({ field }) => `${field} ne null`),\n isnull: nonValueExpression(({ field }) => `${field} eq null`),\n lt: typedOperator(Object.assign({}, settings, { operator: \"lt\" })),\n lte: typedOperator(Object.assign({}, settings, { operator: \"le\" })),\n neq: typedOperator(Object.assign({}, settings, { operator: \"ne\" })),\n startswith: stringFnOperator(Object.assign({}, settings, { operator: \"startswith\" }))\n}[operator]);\nconst join = x => ` ${x.logic} `;\nconst serialize = settings => x => filterOperators(x.operator, settings)(x);\nconst serializeAll = settings => serializeFilters(filter => ifElse(isCompositeFilterDescriptor, serializeAll(settings), serialize(settings))(filter), join);\n/**\n * @hidden\n */\nexport const serializeFilter = (filter, settings = {}) => {\n if (filter.filters && filter.filters.length) {\n return \"$filter=\" + serializeAll(settings)(filter);\n }\n return \"\";\n};\n","import { isPresent, isNotNullOrEmptyString } from './utils';\nimport { serializeFilter } from './odata-filtering.operators';\nimport { ifElse, constant } from './funcs';\nconst serializeSort = (orderby) => {\n const str = orderby\n .filter(sort => isPresent(sort.dir))\n .map(sort => {\n const order = sort.field.replace(/\\./g, \"/\");\n return sort.dir === \"desc\" ? order + \" desc\" : order;\n }).join(\",\");\n return str ? `$orderby=${str}` : str;\n};\nconst emptyString = constant('');\nconst concat = a => b => a + b;\nconst serializeKey = (strings, val) => ifElse(isPresent, concat(strings[0]), emptyString)(val);\nconst rules = (settings, state) => (key) => ({\n \"filter\": serializeFilter(state.filter || {}, settings),\n \"skip\": serializeKey `$skip=${state.skip}`,\n \"sort\": serializeSort(state.sort || []),\n \"take\": serializeKey `$top=${state.take}`\n}[key]);\n// tslint:enable:max-line-length\n/**\n * Converts a [`State`]({% slug api_kendo-data-query_state %}) into an OData v4 compatible string.\n *\n * @param {State} state - The state that will be serialized.\n * @param {ODataSettings} settings - The settings that are used during the serialization.\n * @returns {string} - The serialized state.\n */\nexport const toODataString = (state, settings = {}) => (Object.keys(state)\n .map(rules(settings, state))\n .filter(isNotNullOrEmptyString)\n .join('&'));\n","import { isPresent, isBlank } from '../utils';\nimport { getter } from '../accessor';\nconst compare = (a, b) => {\n if (isBlank(a)) {\n return a === b ? 0 : -1;\n }\n if (isBlank(b)) {\n return 1;\n }\n if (a.localeCompare) {\n return a.localeCompare(b);\n }\n return a > b ? 1 : (a < b ? -1 : 0);\n};\nconst compareDesc = (a, b) => compare(b, a);\nconst descriptorAsFunc = (descriptor) => {\n const prop = getter(descriptor.field, true);\n return (a, b) => (descriptor.dir === 'asc' ? compare : compareDesc)(prop(a), prop(b));\n};\nconst initial = (_a, _b) => 0;\n// tslint:disable:max-line-length\n/**\n * Converts the `SortDescriptors` into a [`Comparer`]({% slug api_kendo-data-query_comparer %}) function that can be used through `Array.sort`. If multiple descriptors are provided, sorting is applied in a right-to-left order.\n * @param {SortDescriptor[]} descriptors - The descriptors which will be converted.\n * @returns {Comparer} - The produced function.\n *\n * @example\n * ```ts-no-run\n * import { composeSortDescriptors } from '@progress/kendo-data-query';\n *\n * const data = [{ name: \"Pork\" }, { name: \"Pepper\" }, { name: \"Beef\" } ];\n * const comparer = composeSortDescriptors([{ field: \"name\", dir: \"asc\" }]);\n * const result = data.sort(comparer);\n * // output: [{ name: \"Beef\" }, { name: \"Pepper\" }, { name: \"Pork\" }];\n * ```\n */\n// tslint:enable:max-line-length\nexport const composeSortDescriptors = (descriptors) => (descriptors\n .filter(x => isPresent(x.dir))\n .map((descriptor) => descriptorAsFunc(descriptor))\n .reduce((acc, curr) => (a, b) => acc(a, b) || curr(a, b), initial));\n","const merge = (data, left, middle, right, compare) => {\n let leftLength = middle - left;\n let rightLength = right - middle;\n const temp = [];\n for (let idx = 0; idx < leftLength; idx++) {\n temp.push(data[left + idx]);\n }\n let cursor1 = 0;\n let cursor2 = middle;\n let dest = left;\n do {\n if (compare(data[cursor2], temp[cursor1]) < 0) {\n data[dest++] = data[cursor2++];\n rightLength--;\n }\n else {\n data[dest++] = temp[cursor1++];\n leftLength--;\n }\n } while (rightLength > 0 && leftLength > 0);\n while (leftLength) {\n data[dest++] = temp[cursor1++];\n leftLength--;\n }\n while (rightLength) {\n data[dest++] = data[cursor2++];\n rightLength--;\n }\n};\n/**\n * @hidden\n */\nexport const sort = (data, start, end, compare) => {\n if (end - start < 2) {\n return;\n }\n const mid = (start + end) >>> 1; // tslint:disable-line:no-bitwise\n sort(data, start, mid, compare);\n sort(data, mid, end, compare);\n merge(data, start, mid, end, compare);\n};\n","import { isPresent, isNumeric, isDate } from './utils';\nimport { getter } from './accessor';\nconst valueToString = (value) => {\n value = isPresent(value) && value.getTime ? value.getTime() : value;\n return value + \"\";\n};\n/**\n * @hidden\n */\nexport const groupCombinator = (field) => {\n const prop = getter(field, true);\n let position = 0;\n return (agg, value) => {\n agg[field] = agg[field] || {};\n const groupValue = prop(value);\n const key = valueToString(groupValue);\n const values = agg[field][key] || { __position: position++, aggregates: {}, items: [], value: groupValue };\n values.items.push(value);\n agg[field][key] = values;\n return agg;\n };\n};\n/**\n * @hidden\n */\nexport const expandAggregates = (result = {}) => {\n Object.keys(result).forEach(field => {\n const aggregates = result[field];\n Object.keys(aggregates).forEach(aggregate => {\n aggregates[aggregate] = aggregates[aggregate].result();\n });\n });\n return result;\n};\nconst aggregatesFuncs = (name) => ({\n average: () => {\n let value = 0;\n let count = 0;\n return {\n calc: (curr) => {\n if (isNumeric(curr)) {\n value += curr;\n count++;\n }\n else {\n value = curr;\n }\n },\n result: () => isNumeric(value) ? value / count : value\n };\n },\n count: () => {\n let state = 0;\n return {\n calc: () => state++,\n result: () => state\n };\n },\n max: () => {\n let state = Number.NEGATIVE_INFINITY;\n return {\n calc: (value) => {\n state = isNumeric(state) || isDate(state) ? state : value;\n if (state < value && (isNumeric(value) || isDate(value))) {\n state = value;\n }\n },\n result: () => state\n };\n },\n min: () => {\n let state = Number.POSITIVE_INFINITY;\n return {\n calc: (value) => {\n state = isNumeric(state) || isDate(state) ? state : value;\n if (state > value && (isNumeric(value) || isDate(value))) {\n state = value;\n }\n },\n result: () => state\n };\n },\n sum: () => {\n let state = 0;\n return {\n calc: (value) => state += value,\n result: () => state\n };\n }\n}[name]());\n/**\n * @hidden\n */\nexport const aggregatesCombinator = (descriptors) => {\n const functions = descriptors.map(descriptor => {\n const fieldAccessor = getter(descriptor.field, true);\n const aggregateName = (descriptor.aggregate || \"\").toLowerCase();\n const aggregateAccessor = getter(aggregateName, true);\n return (state, value) => {\n const fieldAggregates = state[descriptor.field] || {};\n const aggregateFunction = aggregateAccessor(fieldAggregates)\n || aggregatesFuncs(aggregateName);\n aggregateFunction.calc(fieldAccessor(value));\n fieldAggregates[descriptor.aggregate] = aggregateFunction;\n state[descriptor.field] = fieldAggregates;\n return state;\n };\n });\n return (state, value) => functions.reduce((agg, calc) => calc(agg, value), state);\n};\n/**\n * @hidden\n * Adds the value to the `arr` and produces a new array.\n *\n * > The original array will be modified.\n */\nexport const concat = (arr, value) => {\n arr.push(value);\n return arr;\n};\n/**\n * @hidden\n * Returns a reducer that will apply the specified transformation to the value.\n */\nexport const map = (transform) => ((reduce) => ((acc, curr, index) => reduce(acc, transform(curr, index))));\n/**\n * @hidden\n * Returns a reducer that will filter out items which do not match the `Predicate`.\n */\nexport const filter = (predicate) => ((reduce) => ((acc, curr) => predicate(curr) ? reduce(acc, curr) : acc));\n/**\n * @hidden\n */\nexport const isTransformerResult = (source) => {\n return isPresent(source.__value);\n};\nconst reduced = (x) => {\n if (isTransformerResult(x)) {\n return x;\n }\n return {\n __value: x,\n reduced: true\n };\n};\n/**\n * @hidden\n * Returns a reducer that will take the specified number of items.\n */\nexport const take = (count) => ((reduce) => ((acc, curr) => count-- > 0 ? reduce(acc, curr) : reduced(acc)));\n/**\n * @hidden\n * Returns a reducer that will take the specified number of items.\n */\nexport const takeWhile = (predicate) => ((reduce) => ((acc, curr) => predicate(curr) ? reduce(acc, curr) : reduced(acc)));\n/**\n * @hidden\n * Returns a reducer that will skip the specified number of items.\n */\nexport const skip = (count) => ((reduce) => ((acc, curr) => count-- <= 0 ? reduce(acc, curr) : acc));\n/**\n * @hidden\n * Transforms the data by applying the supplied transformer.\n */\nexport const exec = (transform, initialValue, data) => {\n let result = initialValue;\n for (let idx = 0, length = data.length; idx < length; idx++) {\n result = transform(result, data[idx], idx);\n if (isTransformerResult(result)) {\n result = result.__value;\n break;\n }\n }\n return result;\n};\n","/**\n * @hidden\n */\nexport const isPresent = (value) => value !== null && value !== undefined;\n/**\n * @hidden\n */\nexport const isBlank = (value) => value === null || value === undefined;\n/**\n * @hidden\n */\nexport const isArray = (value) => Array.isArray(value);\n/**\n * @hidden\n */\nexport const isFunction = (value) => typeof value === 'function';\n/**\n * @hidden\n */\nexport const isString = (value) => typeof value === 'string';\n/**\n * @hidden\n */\nexport const isTruthy = (value) => !!value;\n/**\n * @hidden\n */\nexport const isNullOrEmptyString = (value) => isBlank(value) || value.trim().length === 0;\n/**\n * @hidden\n */\nexport const isNotNullOrEmptyString = (value) => !isNullOrEmptyString(value);\n/**\n * @hidden\n */\nexport const isNumeric = (value) => !isNaN(value - parseFloat(value));\n/**\n * @hidden\n */\nexport const isDate = (value) => value && value.getTime;\n","import { addYears } from './add-years';\n/**\n * A function that adds and subtracts centuries from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of centuries to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addCenturies(new Date(2016, 5, 1), 5); // 2516-6-1\n * addCenturies(new Date(2016, 5, 1), -5); // 1516-6-1\n * ```\n */\nexport const addCenturies = (value, offset) => {\n return addYears(value, 100 * offset);\n};\n","import { adjustDST } from './adjust-dst';\nimport { cloneDate } from './clone-date';\n/**\n * A function that adds and subtracts days from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of days to add and subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addDays(new Date(2016, 0, 1), 5); // 2016-1-6\n * addDays(new Date(2016, 0, 1), -5); // 2015-12-26\n * ```\n */\nexport const addDays = (date, offset) => {\n const newDate = cloneDate(date);\n newDate.setDate(newDate.getDate() + offset);\n return adjustDST(newDate, date.getHours());\n};\n","import { addYears } from './add-years';\n/**\n * A function that adds and subtracts decades from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of decades to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addDecades(new Date(2016, 5, 1), 5); // 2066-6-1\n * addDecades(new Date(2016, 5, 1), -5); // 1966-6-1\n * ```\n */\nexport const addDecades = (value, offset) => {\n return addYears(value, 10 * offset);\n};\n","import { adjustDST } from './adjust-dst';\nimport { cloneDate } from './clone-date';\nimport { lastDayOfMonth } from './last-day-of-month';\nconst MONTHS_LENGTH = 12;\nconst normalize = (date, expectedMonth) => (date.getMonth() !== expectedMonth ? lastDayOfMonth(addMonths(date, -1)) : date //tslint:disable-line:no-use-before-declare\n);\n/**\n * A function that adds and subtracts months from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of months to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addMonths(new Date(2016, 5, 1), 5); // 2016-11-1\n * addMonths(new Date(2016, 5, 1), -5); // 2015-1-1\n * ```\n */\nexport const addMonths = (date, offset) => {\n const newDate = cloneDate(date);\n const diff = (newDate.getMonth() + offset) % MONTHS_LENGTH;\n const expectedMonth = (MONTHS_LENGTH + diff) % MONTHS_LENGTH;\n newDate.setMonth(newDate.getMonth() + offset);\n return normalize(adjustDST(newDate, date.getHours()), expectedMonth);\n};\n","import { addDays } from './add-days';\n/**\n * A function that adds and subtracts weeks from a Date object.\n *\n * @param date - The initial date value.\n * @param offset - The number of weeks to add/subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addWeeks(new Date(2016, 5, 1), 3); // 2016-6-22\n * addWeeks(new Date(2016, 5, 1), -3); // 2015-5-11\n * ```\n */\nexport const addWeeks = (date, offset) => {\n return addDays(date, offset * 7);\n};\n","import { adjustDST } from './adjust-dst';\nimport { setYear } from './set-year';\n/**\n * A function that adds and subtracts years from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of years to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addYears(new Date(2016, 5, 1), 5); // 2011-6-1\n * addYears(new Date(2016, 5, 1), -5); // 2021-6-1\n * ```\n */\nexport const addYears = (value, offset) => {\n return adjustDST(setYear(value, value.getFullYear() + offset), value.getHours());\n};\n","import { cloneDate } from './clone-date';\n/**\n * @hidden\n */\nexport const adjustDST = (date, hour) => {\n const newDate = cloneDate(date);\n if (hour === 0 && newDate.getHours() === 23) {\n newDate.setHours(newDate.getHours() + 2);\n }\n return newDate;\n};\n","/**\n * A function that clones the passed date. The parameter could be `null`.\n *\n * @param date - The initial date value.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * cloneDate(new Date(2016, 0, 1)); // returns new Date(2016, 0, 1);\n * cloneDate(null); // returns null\n * ```\n */\nexport const cloneDate = (date) => date ? new Date(date.getTime()) : null;\n","/**\n * The number of milliseconds in one minute.\n */\nexport const MS_PER_MINUTE = 60000;\n/**\n * The number of milliseconds in one hour.\n */\nexport const MS_PER_HOUR = 3600000;\n/**\n * The number of milliseconds in one standard day.\n */\nexport const MS_PER_DAY = 86400000;\n","import { adjustDST } from './adjust-dst';\n/**\n * A function which returns a new `Date` instance.\n *\n * @param year - The year value.\n * @param month - The month value.\n * @param day - The day value.\n * @param hours - The hours value.\n * @param minutes - The minutes value.\n * @param seconds - The seconds value.\n * @param milliseconds - milliseconds value.\n * @returns The date instance.\n *\n * @example\n * ```ts-no-run\n * createDate(2016, 0, 15); // 2016-01-15 00:00:00\n * createDate(2016, 0, 15, 22, 22, 20); // 2016-01-15 22:22:20\n * ```\n */\nexport const createDate = (year, month, day, hours = 0, minutes = 0, seconds = 0, milliseconds = 0) => {\n const date = new Date(year, month, day, hours, minutes, seconds, milliseconds);\n if (year > -1 && year < 100) {\n date.setFullYear(date.getFullYear() - 1900);\n }\n return adjustDST(date, hours);\n};\n","import { Direction } from \"./direction.enum\";\nimport { adjustDST } from \"./adjust-dst\";\nimport { cloneDate } from './clone-date';\n/**\n * @hidden\n *\n * A function which returns the next or previous date for a specific week day. For example, `Day.Monday`.\n *\n * @param date - The date to calculate from.\n * @param weekDay - The `Day` enum specifying the desired week day.\n * @param direction - The `Direction` enum specifying the calculation direction.\n * @returns - A `Date` instance.\n *\n * @example\n * ```ts-no-run\n * dayOfWeek(new Date(2016, 0, 1), Day.Wednesday, Direction.Forward); // 2016-01-06, Wednesday\n * dayOfWeek(new Date(2016, 0, 1), Day.Wednesday, Direction.Backward); // 2015-12-30, Wednesday\n * ```\n */\nexport const dayOfWeek = (date, weekDay, direction = Direction.Forward) => {\n const newDate = cloneDate(date);\n const newDay = ((weekDay - newDate.getDay()) + (7 * direction)) % 7;\n newDate.setDate(newDate.getDate() + newDay);\n return adjustDST(newDate, date.getHours());\n};\n","/**\n * Enumeration which represents the week days.\n */\nexport var Day;\n(function (Day) {\n /**\n * The Sunday value with an underlying `0` number value.\n */\n Day[Day[\"Sunday\"] = 0] = \"Sunday\";\n /**\n * The Monday value with an underlying `1` number value.\n */\n Day[Day[\"Monday\"] = 1] = \"Monday\";\n /**\n * The Tuesday value with an underlying `2` number value.\n */\n Day[Day[\"Tuesday\"] = 2] = \"Tuesday\";\n /**\n * The Wednesday value with an underlying `3` number value.\n */\n Day[Day[\"Wednesday\"] = 3] = \"Wednesday\";\n /**\n * The Thursday value with an underlying `4` number value.\n */\n Day[Day[\"Thursday\"] = 4] = \"Thursday\";\n /**\n * The Friday value with an underlying `5` number value.\n */\n Day[Day[\"Friday\"] = 5] = \"Friday\";\n /**\n * The Saturday value with an underlying `6` number value.\n */\n Day[Day[\"Saturday\"] = 6] = \"Saturday\";\n})(Day || (Day = {}));\n","// tslint:disable:max-line-length\n/**\n * An enumeration which represents the horizontal direction. The `Forward` option moves forward. The `Backward` option moves backward.\n */\nexport var Direction;\n(function (Direction) {\n /**\n * The `Forward` value with an underlying `1` number value.\n */\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n /**\n * The `Backward` value with an underlying `-1` (minus one) number value.\n */\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n// tslint:enable:max-line-length\n","import { firstDecadeOfCentury } from './first-decade-of-century';\n/**\n * A function that calculates duration in centuries between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInCenturies(new Date(2016, 0, 1), new Date(3216, 0, 1)); // 12\n * durationInCenturies(new Date(2016, 6, 1), new Date(2617, 0, 1)); // 6\n * durationInCenturies(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport const durationInCenturies = (start, end) => ((firstDecadeOfCentury(end).getFullYear() - firstDecadeOfCentury(start).getFullYear()) / 100);\n","import { firstYearOfDecade } from './first-year-of-decade';\n/**\n * A function that calculates duration in decades between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInDecades(new Date(2016, 0, 1), new Date(2136, 0, 1)); // 12\n * durationInDecades(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport const durationInDecades = (start, end) => ((firstYearOfDecade(end).getFullYear() - firstYearOfDecade(start).getFullYear()) / 10);\n","/**\n * A function that calculates duration in months between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInMonths(new Date(2016, 0, 1), new Date(2017, 0, 1)); // 12\n * durationInMonths(new Date(2016, 6, 1), new Date(2017, 0, 1)); // 6\n * durationInMonths(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport const durationInMonths = (start, end) => (((end.getFullYear() - start.getFullYear())) * 12 + (end.getMonth() - start.getMonth()));\n","/**\n * A function that calculates duration in years between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in years.\n *\n * @example\n * ```ts-no-run\n * durationInYears(new Date(2016, 0, 1), new Date(2028, 0, 1)); // 12\n * durationInYears(new Date(2016, 0, 1), new Date(2022, 0, 1)); // 6\n * durationInYears(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport const durationInYears = (start, end) => (end.getFullYear() - start.getFullYear());\n","import { createDate } from './create-date';\n/**\n * A function which returns the first date of the month.\n *\n * @param date - The initial date.\n * @returns - The first date of the initial date month.\n *\n * @example\n * ```ts-no-run\n * firstDayOfMonth(new Date(2016, 0, 15)); // 2016-01-01\n * ```\n */\nexport const firstDayOfMonth = (date) => {\n return createDate(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n};\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the first decade in a century.\n *\n * @param date - The start date value.\n * @returns - The first year in a century.\n *\n * @example\n * ```ts-no-run\n * firstDecadeOfCentury(new Date(2017, 0, 1)); // 2000-1-1\n * firstDecadeOfCentury(new Date(2007, 10, 22)); // 2000-11-22\n * firstDecadeOfCentury(new Date(2126, 0, 1)); // 2100-1-1\n * ```\n */\nexport const firstDecadeOfCentury = (value) => (normalizeYear(value, (y) => y - (y % 100)));\n","import { setMonth } from './set-month';\n/**\n * A function that returns a `Date` object of the first month in a year.\n *\n * @param date - The start date value.\n * @returns - The first month in a year.\n *\n * @example\n * ```ts-no-run\n * firstMonthOfYear(new Date(2017, 11, 1)); // 2017-1-1\n * firstMonthOfYear(new Date(2017, 0, 1)); // 2017-1-1\n * ```\n */\nexport const firstMonthOfYear = (value) => setMonth(value, 0);\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the first year in a decade.\n *\n * @param date - The start date value.\n * @returns - The first year in a decade.\n *\n * @example\n * ```ts-no-run\n * firstYearOfDecade(new Date(2017, 0, 1)); // 2010-1-1\n * firstYearOfDecade(new Date(2007, 10, 22)); // 2000-11-22\n * firstYearOfDecade(new Date(2026, 0, 1)); // 2020-1-1\n * ```\n */\nexport const firstYearOfDecade = (value) => (normalizeYear(value, (y) => y - (y % 10)));\n","import { createDate } from './create-date';\n/**\n * A function which returns the passed date with a midnight time portion.\n *\n * @param date - The initial date.\n * @returns - The date with a midnight time portion.\n *\n * @example\n * ```ts-no-run\n * getDate(new Date(2016, 0, 15, 14, 30, 30)); // 2016-01-15 00:00:00\n * ```\n */\nexport const getDate = (date) => {\n return createDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n};\n","/**\n * A function that compares two dates. The comparison also includes the time portion.\n *\n * @param candidate - The candidate date.\n * @param expected - The expected date.\n * @returns - A Boolean value indicating whether the values are equal.\n *\n * @example\n * ```ts-no-run\n * isEqual(new Date(2016, 0, 1), new Date(2016, 0, 1)); // true\n * isEqual(new Date(2016, 0, 1), new Date(2016, 0, 2)); // false\n * isEqual(new Date(2016, 0, 1, 10), new Date(2016, 0, 1, 20)); // false\n * ```\n */\nexport const isEqual = (candidate, expected) => {\n if (!candidate && !expected) {\n return true;\n }\n return candidate && expected && candidate.getTime() === expected.getTime();\n};\n","import { addDays } from './add-days';\nimport { createDate } from './create-date';\n/**\n * A function which returns the last date of the month.\n *\n * @param date - The initial date.\n * @returns - The last date of the initial date month.\n *\n * @example\n * ```ts-no-run\n * lastDayOfMonth(new Date(2016, 0, 15)); // 2016-01-31\n * ```\n */\nexport const lastDayOfMonth = (date) => {\n const newDate = createDate(date.getFullYear(), date.getMonth() + 1, 1, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n return addDays(newDate, -1);\n};\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the last decade in a century.\n *\n * @param date - The start date value.\n * @returns - The last year in a decade.\n *\n * @example\n * ```ts-no-run\n * lastDecadeOfCentury(new Date(2017, 0, 1)); // 2090-1-1\n * lastDecadeOfCentury(new Date(2007, 10, 22)); // 2090-11-22\n * lastDecadeOfCentury(new Date(2126, 0, 1)); // 2190-1-1\n * ```\n */\nexport const lastDecadeOfCentury = (value) => (normalizeYear(value, (y) => y - (y % 100) + 90));\n","import { setMonth } from './set-month';\n/**\n * A function that returns a `Date` object of the last month in a year.\n *\n * @param date - The start date value.\n * @returns - The last month in a year.\n *\n * @example\n * ```ts-no-run\n * lastMonthOfYear(new Date(2017, 5, 3)); // 2017-12-3\n * lastMonthOfYear(new Date(2017, 11, 3)); // 2017-12-3\n * ```\n */\nexport const lastMonthOfYear = (value) => setMonth(value, 11);\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the last year in a decade.\n *\n * @param date - The start date value.\n * @returns - The last year in a decade.\n *\n * @example\n * ```ts-no-run\n * lastYearOfDecade(new Date(2017, 0, 1)); // 2019-1-1\n * lastYearOfDecade(new Date(2007, 10, 22)); // 2009-11-22\n * lastYearOfDecade(new Date(2026, 0, 1)); // 2029-1-1\n * ```\n */\nexport const lastYearOfDecade = (value) => (normalizeYear(value, (y) => y - (y % 10) + 9));\n","import { setYear } from './set-year';\n/**\n * @hidden\n */\nexport const normalizeYear = (value, year) => (setYear(value, year(value.getFullYear())));\n","import { Direction } from \"./direction.enum\";\nimport { dayOfWeek } from './day-of-week';\n/**\n * A function which returns a date by a specific week name. For example, `Day.Monday`.\n *\n * @param date - The date to calculate from.\n * @param weekDay - The `Day` enum specifying the desired week day.\n * @returns - A `Date` instance.\n *\n * @example\n * ```ts-no-run\n * prevDayOfWeek(new Date(2016, 0, 1), Day.Wednesday); // 2015-12-30, Wednesday\n * ```\n */\nexport const prevDayOfWeek = (date, weekDay) => {\n return dayOfWeek(date, weekDay, Direction.Backward);\n};\n","import { addMonths } from './add-months';\nimport { createDate } from './create-date';\nimport { lastDayOfMonth } from './last-day-of-month';\n/**\n * @hidden\n */\nexport const setMonth = (value, month) => {\n const day = value.getDate();\n const candidate = createDate(value.getFullYear(), month, day, value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds());\n return candidate.getDate() === day ? candidate : lastDayOfMonth(addMonths(candidate, -1));\n};\n","import { addMonths } from './add-months';\nimport { createDate } from './create-date';\nimport { lastDayOfMonth } from './last-day-of-month';\n/**\n * @hidden\n */\nexport const setYear = (value, year) => {\n const month = value.getMonth();\n const candidate = createDate(year, month, value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds());\n return candidate.getMonth() === month ? candidate : lastDayOfMonth(addMonths(candidate, -1));\n};\n","import { Day } from './day.enum';\nimport { addDays } from './add-days';\nimport { createDate } from './create-date';\nimport { prevDayOfWeek } from './prev-day-of-week';\nimport { MS_PER_DAY } from './constants';\nconst moveDateToWeekStart = (date, weekStartDay) => {\n if (weekStartDay !== Day.Monday) {\n return addDays(prevDayOfWeek(date, weekStartDay), 4);\n }\n return addDays(date, (4 - (date.getDay() || 7)));\n};\nconst calcWeekInYear = (date, weekStartDay) => {\n const firstWeekInYear = createDate(date.getFullYear(), 0, 1, -6);\n const newDate = moveDateToWeekStart(date, weekStartDay);\n const diffInMS = newDate.getTime() - firstWeekInYear.getTime();\n const days = Math.floor(diffInMS / MS_PER_DAY);\n return 1 + Math.floor(days / 7);\n};\n/**\n * A function that returns the number of the week within a year, which is calculated in relation to the date.\n *\n * For more information, refer to the [**ISO week date**](https://en.wikipedia.org/wiki/ISO_week_date) article.\n *\n * @param date - The date used for the week number calculation.\n * @param weekStartDay - The first day of the week. By default, the first week day is Monday.\n * @returns - The number of the week within the year.\n *\n * @example\n * ```ts-no-run\n * weekInYear(new Date(2016, 0, 1)); // Week 53, 2015\n * weekInYear(new Date(2016, 0, 5)); // Week 1, 2016\n * weekInYear(new Date(2017, 0, 1)); // Week 52, 2016\n * weekInYear(new Date(2017, 0, 2)); // Week 1, 2017\n * ```\n */\nexport const weekInYear = (date, weekStartDay = Day.Monday) => {\n const prevWeekDate = addDays(date, -7);\n const nextWeekDate = addDays(date, 7);\n const weekNumber = calcWeekInYear(date, weekStartDay);\n if (weekNumber === 0) {\n return calcWeekInYear(prevWeekDate, weekStartDay) + 1;\n }\n if (weekNumber === 53 && calcWeekInYear(nextWeekDate, weekStartDay) > 1) {\n return 1;\n }\n return weekNumber;\n};\n","export default class Class {\n // Empty base class needed for compatibility with Kendo UI for jQuery\n}\n","import Class from '../class';\nimport namedColors from './named-colors';\nimport { Bytes, RGB, HSV, HSL } from './parse-color';\n\nconst DARK_TRESHOLD = 180;\n\nclass Color extends Class {\n constructor(value) {\n super();\n\n if (arguments.length === 1) {\n const formats = Color.formats;\n const resolvedColor = this.resolveColor(value);\n\n for (let idx = 0; idx < formats.length; idx++) {\n const formatRegex = formats[idx].re;\n const processor = formats[idx].process;\n const parts = formatRegex.exec(resolvedColor);\n\n if (parts) {\n const channels = processor(parts);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n }\n }\n } else {\n this.r = arguments[0];\n this.g = arguments[1];\n this.b = arguments[2];\n }\n\n this.r = this.normalizeByte(this.r);\n this.g = this.normalizeByte(this.g);\n this.b = this.normalizeByte(this.b);\n }\n\n toHex() {\n const pad = this.padDigit;\n const r = this.r.toString(16);\n const g = this.g.toString(16);\n const b = this.b.toString(16);\n\n return \"#\" + pad(r) + pad(g) + pad(b);\n }\n\n resolveColor(value) {\n let color = value || \"black\";\n\n if (color.charAt(0) === \"#\") {\n color = color.substr(1, 6);\n }\n\n color = color.replace(/ /g, \"\");\n color = color.toLowerCase();\n color = Color.namedColors[color] || color;\n\n return color;\n }\n\n normalizeByte(value) {\n if (value < 0 || isNaN(value)) {\n return 0;\n }\n\n return value > 255 ? 255 : value;\n }\n\n padDigit(value) {\n return (value.length === 1) ? \"0\" + value : value;\n }\n\n brightness(value) {\n const round = Math.round;\n\n this.r = round(this.normalizeByte(this.r * value));\n this.g = round(this.normalizeByte(this.g * value));\n this.b = round(this.normalizeByte(this.b * value));\n\n return this;\n }\n\n percBrightness() {\n return Math.sqrt(0.241 * this.r * this.r + 0.691 * this.g * this.g + 0.068 * this.b * this.b);\n }\n\n isDark() {\n return this.percBrightness() < DARK_TRESHOLD;\n }\n\n static fromBytes(r, g, b, a) {\n return new Bytes(r, g, b, a != null ? a : 1);\n }\n\n static fromRGB(r, g, b, a) {\n return new RGB(r, g, b, a != null ? a : 1);\n }\n\n static fromHSV(h, s, v, a) {\n return new HSV(h, s, v, a != null ? a : 1);\n }\n\n static fromHSL(h, s, l, a) {\n return new HSL(h, s, l, a != null ? a : 1);\n }\n}\n\nColor.formats = [ {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n process: function(parts) {\n return [\n parseInt(parts[1], 10), parseInt(parts[2], 10), parseInt(parts[3], 10)\n ];\n }\n}, {\n re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n process: function(parts) {\n return [\n parseInt(parts[1], 16), parseInt(parts[2], 16), parseInt(parts[3], 16)\n ];\n }\n}, {\n re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n process: function(parts) {\n return [\n parseInt(parts[1] + parts[1], 16),\n parseInt(parts[2] + parts[2], 16),\n parseInt(parts[3] + parts[3], 16)\n ];\n }\n} ];\n\nColor.namedColors = namedColors;\n\nexport default Color;","const namedColors = {\n aliceblue: \"f0f8ff\", antiquewhite: \"faebd7\", aqua: \"00ffff\",\n aquamarine: \"7fffd4\", azure: \"f0ffff\", beige: \"f5f5dc\",\n bisque: \"ffe4c4\", black: \"000000\", blanchedalmond: \"ffebcd\",\n blue: \"0000ff\", blueviolet: \"8a2be2\", brown: \"a52a2a\",\n burlywood: \"deb887\", cadetblue: \"5f9ea0\", chartreuse: \"7fff00\",\n chocolate: \"d2691e\", coral: \"ff7f50\", cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\", crimson: \"dc143c\", cyan: \"00ffff\",\n darkblue: \"00008b\", darkcyan: \"008b8b\", darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\", darkgrey: \"a9a9a9\", darkgreen: \"006400\",\n darkkhaki: \"bdb76b\", darkmagenta: \"8b008b\", darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\", darkorchid: \"9932cc\", darkred: \"8b0000\",\n darksalmon: \"e9967a\", darkseagreen: \"8fbc8f\", darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\", darkslategrey: \"2f4f4f\", darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\", deeppink: \"ff1493\", deepskyblue: \"00bfff\",\n dimgray: \"696969\", dimgrey: \"696969\", dodgerblue: \"1e90ff\",\n firebrick: \"b22222\", floralwhite: \"fffaf0\", forestgreen: \"228b22\",\n fuchsia: \"ff00ff\", gainsboro: \"dcdcdc\", ghostwhite: \"f8f8ff\",\n gold: \"ffd700\", goldenrod: \"daa520\", gray: \"808080\",\n grey: \"808080\", green: \"008000\", greenyellow: \"adff2f\",\n honeydew: \"f0fff0\", hotpink: \"ff69b4\", indianred: \"cd5c5c\",\n indigo: \"4b0082\", ivory: \"fffff0\", khaki: \"f0e68c\",\n lavender: \"e6e6fa\", lavenderblush: \"fff0f5\", lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\", lightblue: \"add8e6\", lightcoral: \"f08080\",\n lightcyan: \"e0ffff\", lightgoldenrodyellow: \"fafad2\", lightgray: \"d3d3d3\",\n lightgrey: \"d3d3d3\", lightgreen: \"90ee90\", lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\", lightseagreen: \"20b2aa\", lightskyblue: \"87cefa\",\n lightslategray: \"778899\", lightslategrey: \"778899\", lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\", lime: \"00ff00\", limegreen: \"32cd32\",\n linen: \"faf0e6\", magenta: \"ff00ff\", maroon: \"800000\",\n mediumaquamarine: \"66cdaa\", mediumblue: \"0000cd\", mediumorchid: \"ba55d3\",\n mediumpurple: \"9370d8\", mediumseagreen: \"3cb371\", mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\", mediumturquoise: \"48d1cc\", mediumvioletred: \"c71585\",\n midnightblue: \"191970\", mintcream: \"f5fffa\", mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\", navajowhite: \"ffdead\", navy: \"000080\",\n oldlace: \"fdf5e6\", olive: \"808000\", olivedrab: \"6b8e23\",\n orange: \"ffa500\", orangered: \"ff4500\", orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\", palegreen: \"98fb98\", paleturquoise: \"afeeee\",\n palevioletred: \"d87093\", papayawhip: \"ffefd5\", peachpuff: \"ffdab9\",\n peru: \"cd853f\", pink: \"ffc0cb\", plum: \"dda0dd\",\n powderblue: \"b0e0e6\", purple: \"800080\", red: \"ff0000\",\n rosybrown: \"bc8f8f\", royalblue: \"4169e1\", saddlebrown: \"8b4513\",\n salmon: \"fa8072\", sandybrown: \"f4a460\", seagreen: \"2e8b57\",\n seashell: \"fff5ee\", sienna: \"a0522d\", silver: \"c0c0c0\",\n skyblue: \"87ceeb\", slateblue: \"6a5acd\", slategray: \"708090\",\n slategrey: \"708090\", snow: \"fffafa\", springgreen: \"00ff7f\",\n steelblue: \"4682b4\", tan: \"d2b48c\", teal: \"008080\",\n thistle: \"d8bfd8\", tomato: \"ff6347\", turquoise: \"40e0d0\",\n violet: \"ee82ee\", wheat: \"f5deb3\", white: \"ffffff\",\n whitesmoke: \"f5f5f5\", yellow: \"ffff00\", yellowgreen: \"9acd32\"\n};\n\nexport default namedColors;","import Class from '../class';\nimport support from '../support';\nimport namedColors from './named-colors';\n\nconst browser = support.browser;\n\nlet matchNamedColor = (color) => {\n const colorNames = Object.keys(namedColors);\n colorNames.push(\"transparent\");\n\n const regexp = new RegExp(\"^(\" + colorNames.join(\"|\") + \")(\\\\W|$)\", \"i\");\n matchNamedColor = (color) => regexp.exec(color);\n\n return regexp.exec(color);\n};\n\nclass BaseColor extends Class {\n constructor() { super(); }\n toHSV() { return this; }\n\n toRGB() { return this; }\n\n toHex(options) { return this.toBytes().toHex(options); }\n\n toBytes() { return this; }\n\n toCss(options) { return \"#\" + this.toHex(options); }\n\n toCssRgba() {\n const rgb = this.toBytes();\n return `rgba(${ rgb.r }, ${ rgb.g }, ${ rgb.b }, ${ parseFloat((Number(this.a)).toFixed(3)) })`;\n }\n\n toDisplay() {\n if (browser.msie && browser.version < 9) {\n return this.toCss(); // no RGBA support; does it support any opacity in colors?\n }\n return this.toCssRgba();\n }\n\n equals(c) {\n return c === this || c !== null && this.toCssRgba() === parseColor(c).toCssRgba();\n }\n\n diff(other) {\n if (other === null) {\n return NaN;\n }\n\n const c1 = this.toBytes();\n const c2 = other.toBytes();\n\n return Math.sqrt(Math.pow((c1.r - c2.r) * 0.30, 2) +\n Math.pow((c1.g - c2.g) * 0.59, 2) +\n Math.pow((c1.b - c2.b) * 0.11, 2));\n }\n\n clone() {\n let c = this.toBytes();\n if (c === this) {\n c = new Bytes(c.r, c.g, c.b, c.a);\n }\n\n return c;\n }\n}\n\nclass RGB extends BaseColor {\n constructor(r, g, b, a) {\n super();\n\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n }\n\n toHSV() {\n const { r, g, b } = this;\n const min = Math.min(r, g, b);\n const max = Math.max(r, g, b);\n const delta = max - min;\n const v = max;\n let h, s;\n\n if (delta === 0) {\n return new HSV(0, 0, v, this.a);\n }\n\n if (max !== 0) {\n s = delta / max;\n if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else {\n h = 4 + (r - g) / delta;\n }\n\n h *= 60;\n if (h < 0) {\n h += 360;\n }\n } else {\n s = 0;\n h = -1;\n }\n\n return new HSV(h, s, v, this.a);\n }\n\n toHSL() {\n const { r, g, b } = this;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h, s, l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n default: break;\n }\n }\n\n return new HSL(h * 60, s * 100, l * 100, this.a);\n }\n\n toBytes() {\n return new Bytes(this.r * 255, this.g * 255, this.b * 255, this.a);\n }\n}\n\nclass Bytes extends RGB {\n constructor(r, g, b, a) {\n super(Math.round(r), Math.round(g), Math.round(b), a);\n }\n\n toRGB() {\n return new RGB(this.r / 255, this.g / 255, this.b / 255, this.a);\n }\n\n toHSV() {\n return this.toRGB().toHSV();\n }\n\n toHSL() {\n return this.toRGB().toHSL();\n }\n\n toHex(options) {\n let value = hex(this.r, 2) + hex(this.g, 2) + hex(this.b, 2);\n\n if (options && options.alpha) {\n value += hex(Math.round(this.a * 255), 2);\n }\n\n return value;\n }\n\n toBytes() {\n return this;\n }\n}\n\nfunction hex(n, width, pad = \"0\") {\n let result = n.toString(16);\n while (width > result.length) {\n result = pad + result;\n }\n\n return result;\n}\n\nclass HSV extends BaseColor {\n constructor(h, s, v, a) {\n super();\n\n this.h = h;\n this.s = s;\n this.v = v;\n this.a = a;\n }\n\n toRGB() {\n let { h, s, v } = this;\n let r, g, b;\n\n if (s === 0) {\n r = g = b = v;\n } else {\n h /= 60;\n\n const i = Math.floor(h);\n const f = h - i;\n const p = v * (1 - s);\n const q = v * (1 - s * f);\n const t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0: r = v; g = t; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = t; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = t; g = p; b = v; break;\n default: r = v; g = p; b = q; break;\n }\n }\n\n return new RGB(r, g, b, this.a);\n }\n\n toHSL() {\n return this.toRGB().toHSL();\n }\n\n toBytes() {\n return this.toRGB().toBytes();\n }\n}\n\nclass HSL extends BaseColor {\n constructor(h, s, l, a) {\n super();\n\n this.h = h;\n this.s = s;\n this.l = l;\n this.a = a;\n }\n\n toRGB() {\n let h = this.h / 360;\n let s = this.s / 100;\n let l = this.l / 100;\n let r, g, b;\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return new RGB(r, g, b, this.a);\n }\n\n toHSV() {\n return this.toRGB().toHSV();\n }\n\n toBytes() {\n return this.toRGB().toBytes();\n }\n}\n\nfunction hue2rgb(p, q, s) {\n let t = s;\n\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n}\n\nfunction alphaFromHex(a) {\n return parseFloat(parseFloat(parseInt(a, 16) / 255 ).toFixed(3));\n}\n\nexport { RGB, Bytes, HSV, HSL };\n\nexport default function parseColor(value, safe) {\n let m, ret;\n\n if (value == null || value === \"none\") {\n return null;\n }\n\n if (value instanceof BaseColor) {\n return value;\n }\n\n let color = value.toLowerCase();\n if ((m = matchNamedColor(color))) {\n if (m[1] === \"transparent\") {\n color = new RGB(1, 1, 1, 0);\n } else {\n color = parseColor(namedColors[m[1]], safe);\n }\n color.match = [ m[1] ];\n return color;\n }\n if ((m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\\b/i.exec(color))) {\n ret = new Bytes(parseInt(m[1], 16),\n parseInt(m[2], 16),\n parseInt(m[3], 16), 1);\n } else if ((m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])\\b/i.exec(color))) {\n ret = new Bytes(parseInt(m[1] + m[1], 16),\n parseInt(m[2] + m[2], 16),\n parseInt(m[3] + m[3], 16), 1);\n } else if ((m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])\\b/i.exec(color))) { // Parse 4 digit hex color\n ret = new Bytes(parseInt(m[1] + m[1], 16),\n parseInt(m[2] + m[2], 16),\n parseInt(m[3] + m[3], 16),\n alphaFromHex(m[4] + m[4]));\n } else if ((m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\\b/i.exec(color))) { // Parse 8 digit hex color\n ret = new Bytes(parseInt(m[1], 16),\n parseInt(m[2], 16),\n parseInt(m[3], 16),\n alphaFromHex(m[4]));\n } else if ((m = /^rgb\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/.exec(color))) {\n ret = new Bytes(parseInt(m[1], 10),\n parseInt(m[2], 10),\n parseInt(m[3], 10), 1);\n } else if ((m = /^rgba\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color))) {\n ret = new Bytes(parseInt(m[1], 10),\n parseInt(m[2], 10),\n parseInt(m[3], 10), parseFloat(m[4]));\n } else if ((m = /^rgb\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*\\)/.exec(color))) {\n ret = new RGB(parseFloat(m[1]) / 100,\n parseFloat(m[2]) / 100,\n parseFloat(m[3]) / 100, 1);\n } else if ((m = /^rgba\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color))) {\n ret = new RGB(parseFloat(m[1]) / 100,\n parseFloat(m[2]) / 100,\n parseFloat(m[3]) / 100, parseFloat(m[4]));\n }\n\n if (ret) {\n ret.match = m;\n } else if (!safe) {\n throw new Error(\"Cannot parse color: \" + color);\n }\n\n return ret;\n}\n","// XXX: the following will not work with IE9 (requires server proxy).\nexport default function saveAs(options) {\n const { dataURI, fileName } = options;\n let data = dataURI;\n\n if (typeof data == \"string\" && window.Blob) {\n const parts = data.split(\";base64,\");\n const contentType = parts[0];\n const base64 = atob(parts[1]);\n const array = new Uint8Array(base64.length);\n for (let idx = 0; idx < base64.length; idx++) {\n array[idx] = base64.charCodeAt(idx);\n }\n data = new Blob([ array.buffer ], { type: contentType });\n }\n if (navigator.msSaveBlob) {\n navigator.msSaveBlob(data, fileName);\n } else {\n const link = document.createElement(\"a\");\n link.download = fileName;\n data = link.href = URL.createObjectURL(data);\n const e = document.createEvent(\"MouseEvents\");\n e.initMouseEvent(\"click\", true, false, window,\n 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n link.dispatchEvent(e);\n setTimeout(function() {\n URL.revokeObjectURL(data);\n });\n }\n}","function matchUserAgent(userAgent) {\n const browserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+))/i\n };\n\n let browser = {};\n\n for (let agent in browserRxs) {\n if (browserRxs.hasOwnProperty(agent)) {\n const match = userAgent.match(browserRxs[agent]);\n if (match) {\n browser[agent] = true;\n browser[match[1].toLowerCase().split(\" \")[0].split(\"/\")[0]] = true;\n browser.version = parseInt(document.documentMode || match[2], 10);\n\n break;\n }\n }\n }\n\n return browser;\n}\n\nlet browser = null;\n\nconst support = {\n get browser() {\n if (typeof window === 'undefined' || browser) {\n return browser;\n }\n\n browser = matchUserAgent(window.navigator.userAgent);\n return browser;\n }\n};\n\nexport default support;\n","export default function template() {\n throw new Error(\"Template implementation missing.\");\n}\n","import { Class } from '../common';\n\nclass HasObservers extends Class {\n observers() {\n this._observers = this._observers || [];\n return this._observers;\n }\n\n addObserver(element) {\n if (!this._observers) {\n this._observers = [ element ];\n } else {\n this._observers.push(element);\n }\n return this;\n }\n\n removeObserver(element) {\n const observers = this.observers();\n const index = observers.indexOf(element);\n if (index !== -1) {\n observers.splice(index, 1);\n }\n return this;\n }\n\n trigger(methodName, event) {\n const observers = this._observers;\n\n if (observers && !this._suspended) {\n for (let idx = 0; idx < observers.length; idx++) {\n let observer = observers[idx];\n if (observer[methodName]) {\n observer[methodName](event);\n }\n }\n }\n return this;\n }\n\n optionsChange(e = {}) {\n e.element = this;\n this.trigger(\"optionsChange\", e);\n }\n\n geometryChange() {\n this.trigger(\"geometryChange\", {\n element: this\n });\n }\n\n suspend() {\n this._suspended = (this._suspended || 0) + 1;\n return this;\n }\n\n resume() {\n this._suspended = Math.max((this._suspended || 0) - 1, 0);\n return this;\n }\n\n _observerField(field, value) {\n if (this[field]) {\n this[field].removeObserver(this);\n }\n this[field] = value;\n value.addObserver(this);\n }\n}\n\nexport default HasObservers;\n\n","import { Class } from '../common';\nimport HasObservers from './has-observers';\nimport { defined } from '../util';\n\n\nconst toString = {}.toString;\n\nclass OptionsStore extends HasObservers {\n constructor(options, prefix = \"\") {\n super();\n\n this.prefix = prefix;\n\n for (let field in options) {\n let member = options[field];\n member = this._wrap(member, field);\n this[field] = member;\n }\n }\n\n get(field) {\n const parts = field.split(\".\");\n let result = this;\n\n while (parts.length && result) {\n let part = parts.shift();\n result = result[part];\n }\n\n return result;\n }\n\n set(field, value) {\n const current = this.get(field);\n\n if (current !== value) {\n this._set(field, this._wrap(value, field));\n this.optionsChange({\n field: this.prefix + field,\n value: value\n });\n }\n }\n\n _set(field, value) {\n const composite = field.indexOf(\".\") >= 0;\n let parentObj = this;\n let fieldName = field;\n\n if (composite) {\n const parts = fieldName.split(\".\");\n let prefix = this.prefix;\n\n while (parts.length > 1) {\n fieldName = parts.shift();\n prefix += fieldName + \".\";\n\n let obj = parentObj[fieldName];\n\n if (!obj) {\n obj = new OptionsStore({}, prefix);\n obj.addObserver(this);\n parentObj[fieldName] = obj;\n }\n parentObj = obj;\n }\n fieldName = parts[0];\n }\n\n parentObj._clear(fieldName);\n parentObj[fieldName] = value;\n }\n\n _clear(field) {\n const current = this[field];\n if (current && current.removeObserver) {\n current.removeObserver(this);\n }\n }\n\n _wrap(object, field) {\n const type = toString.call(object);\n let wrapped = object;\n\n if (wrapped !== null && defined(wrapped) && type === \"[object Object]\") {\n if (!(object instanceof OptionsStore) && !(object instanceof Class)) {\n wrapped = new OptionsStore(wrapped, this.prefix + field + \".\");\n }\n\n wrapped.addObserver(this);\n }\n\n return wrapped;\n }\n}\n\nexport default OptionsStore;\n","import HasObservers from '../core/has-observers';\nimport { deg, rad, round } from '../util';\nimport withAccessors from '../mixins/with-accessors';\n\nimport closeOrLess from './math/close-or-less';\nimport lineIntersection from './math/line-intersection';\nimport ellipseExtremeAngles from './math/ellipse-extreme-angles';\n\nimport { PRECISION } from './constants';\nimport Point from './point';\nimport Rect from './rect';\nimport transform from './transform';\n\n\nconst MAX_INTERVAL = 45;\nconst pow = Math.pow;\nconst accessors = [ \"radiusX\", \"radiusY\", \"startAngle\", \"endAngle\", \"anticlockwise\" ];\n\nclass Arc extends withAccessors(HasObservers, accessors) {\n constructor(center = new Point(), options = {}) {\n super();\n\n this.setCenter(center);\n\n this.radiusX = options.radiusX;\n this.radiusY = options.radiusY || options.radiusX;\n this.startAngle = options.startAngle;\n this.endAngle = options.endAngle;\n this.anticlockwise = options.anticlockwise || false;\n this.xRotation = options.xRotation;\n }\n\n clone() {\n return new Arc(this.center, {\n radiusX: this.radiusX,\n radiusY: this.radiusY,\n startAngle: this.startAngle,\n endAngle: this.endAngle,\n anticlockwise: this.anticlockwise\n });\n }\n\n setCenter(value) {\n this._observerField(\"center\", Point.create(value));\n this.geometryChange();\n return this;\n }\n\n getCenter() {\n return this.center;\n }\n\n pointAt(angle) {\n const center = this.center;\n const radian = rad(angle);\n\n return new Point(\n center.x + this.radiusX * Math.cos(radian),\n center.y + this.radiusY * Math.sin(radian)\n );\n }\n\n curvePoints() {\n const startAngle = this.startAngle;\n const dir = this.anticlockwise ? -1 : 1;\n const curvePoints = [ this.pointAt(startAngle) ];\n const interval = this._arcInterval();\n const intervalAngle = interval.endAngle - interval.startAngle;\n const subIntervalsCount = Math.ceil(intervalAngle / MAX_INTERVAL);\n const subIntervalAngle = intervalAngle / subIntervalsCount;\n let currentAngle = startAngle;\n let transformation;\n if (this.xRotation) {\n transformation = transform().rotate(this.xRotation, this.center);\n }\n\n for (let i = 1; i <= subIntervalsCount; i++) {\n const nextAngle = currentAngle + dir * subIntervalAngle;\n const points = this._intervalCurvePoints(currentAngle, nextAngle, transformation);\n\n curvePoints.push(points.cp1, points.cp2, points.p2);\n currentAngle = nextAngle;\n }\n\n return curvePoints;\n }\n\n bbox(matrix) {\n const interval = this._arcInterval();\n const startAngle = interval.startAngle;\n const endAngle = interval.endAngle;\n const extremeAngles = ellipseExtremeAngles(this.center, this.radiusX, this.radiusY, matrix);\n const extremeX = deg(extremeAngles.x);\n const extremeY = deg(extremeAngles.y);\n const endPoint = this.pointAt(endAngle).transformCopy(matrix);\n let currentAngleX = bboxStartAngle(extremeX, startAngle);\n let currentAngleY = bboxStartAngle(extremeY, startAngle);\n let currentPoint = this.pointAt(startAngle).transformCopy(matrix);\n let minPoint = Point.min(currentPoint, endPoint);\n let maxPoint = Point.max(currentPoint, endPoint);\n\n while (currentAngleX < endAngle || currentAngleY < endAngle) {\n let currentPointX;\n if (currentAngleX < endAngle) {\n currentPointX = this.pointAt(currentAngleX).transformCopy(matrix);\n currentAngleX += 90;\n }\n\n let currentPointY;\n if (currentAngleY < endAngle) {\n currentPointY = this.pointAt(currentAngleY).transformCopy(matrix);\n currentAngleY += 90;\n }\n\n currentPoint = new Point(currentPointX.x, currentPointY.y);\n minPoint = Point.min(minPoint, currentPoint);\n maxPoint = Point.max(maxPoint, currentPoint);\n }\n\n return Rect.fromPoints(minPoint, maxPoint);\n }\n\n _arcInterval() {\n let { startAngle, endAngle, anticlockwise } = this;\n\n if (anticlockwise) {\n let oldStart = startAngle;\n startAngle = endAngle;\n endAngle = oldStart;\n }\n\n if (startAngle > endAngle || (anticlockwise && startAngle === endAngle)) {\n endAngle += 360;\n }\n\n return {\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n\n _intervalCurvePoints(startAngle, endAngle, transformation) {\n const p1 = this.pointAt(startAngle);\n const p2 = this.pointAt(endAngle);\n const p1Derivative = this._derivativeAt(startAngle);\n const p2Derivative = this._derivativeAt(endAngle);\n const t = (rad(endAngle) - rad(startAngle)) / 3;\n const cp1 = new Point(p1.x + t * p1Derivative.x, p1.y + t * p1Derivative.y);\n const cp2 = new Point(p2.x - t * p2Derivative.x, p2.y - t * p2Derivative.y);\n if (transformation) {\n p1.transform(transformation);\n p2.transform(transformation);\n cp1.transform(transformation);\n cp2.transform(transformation);\n }\n\n return {\n p1: p1,\n cp1: cp1,\n cp2: cp2,\n p2: p2\n };\n }\n\n _derivativeAt(angle) {\n const radian = rad(angle);\n\n return new Point(-this.radiusX * Math.sin(radian), this.radiusY * Math.cos(radian));\n }\n\n containsPoint(point) {\n const interval = this._arcInterval();\n const intervalAngle = interval.endAngle - interval.startAngle;\n const { center, radiusX, radiusY } = this;\n const distance = center.distanceTo(point);\n const angleRad = Math.atan2(point.y - center.y, point.x - center.x);\n const pointRadius = (radiusX * radiusY) /\n Math.sqrt(pow(radiusX, 2) * pow(Math.sin(angleRad), 2) + pow(radiusY, 2) * pow(Math.cos(angleRad), 2));\n const startPoint = this.pointAt(this.startAngle).round(PRECISION);\n const endPoint = this.pointAt(this.endAngle).round(PRECISION);\n const intersection = lineIntersection(center, point.round(PRECISION), startPoint, endPoint);\n let containsPoint;\n\n if (intervalAngle < 180) {\n containsPoint = intersection && closeOrLess(center.distanceTo(intersection), distance) && closeOrLess(distance, pointRadius);\n } else {\n let angle = calculateAngle(center.x, center.y, radiusX, radiusY, point.x, point.y);\n if (angle !== 360) {\n angle = (360 + angle) % 360;\n }\n\n let inAngleRange = interval.startAngle <= angle && angle <= interval.endAngle;\n containsPoint = (inAngleRange && closeOrLess(distance, pointRadius)) || (!inAngleRange && (!intersection || intersection.equals(point)));\n }\n return containsPoint;\n }\n\n _isOnPath(point, width) {\n const interval = this._arcInterval();\n const center = this.center;\n let angle = calculateAngle(center.x, center.y, this.radiusX, this.radiusY, point.x, point.y);\n if (angle !== 360) {\n angle = (360 + angle) % 360;\n }\n\n const inAngleRange = interval.startAngle <= angle && angle <= interval.endAngle;\n\n return inAngleRange && this.pointAt(angle).distanceTo(point) <= width;\n }\n\n static fromPoints(start, end, rx, ry, largeArc, swipe, rotation) {// eslint-disable-line max-params\n const arcParameters = normalizeArcParameters({\n x1: start.x,\n y1: start.y,\n x2: end.x,\n y2: end.y,\n rx: rx,\n ry: ry,\n largeArc: largeArc,\n swipe: swipe,\n rotation: rotation\n });\n\n return new Arc(arcParameters.center, {\n startAngle: arcParameters.startAngle,\n endAngle: arcParameters.endAngle,\n radiusX: arcParameters.radiusX,\n radiusY: arcParameters.radiusY,\n xRotation: arcParameters.xRotation,\n anticlockwise: swipe === 0\n });\n }\n}\n\nfunction calculateAngle(cx, cy, rx, ry, x, y) {\n const cos = round((x - cx) / rx, 3);\n const sin = round((y - cy) / ry, 3);\n\n return round(deg(Math.atan2(sin, cos)));\n}\n\nfunction normalizeArcParameters(parameters) {\n let { x1, y1, x2, y2, rx, ry, largeArc, swipe, rotation = 0 } = parameters;\n\n const radians = rad(rotation);\n const cosine = Math.cos(radians);\n const sine = Math.sin(radians);\n\n const xT = cosine * (x1 - x2) / 2 + sine * (y1 - y2) / 2;\n const yT = -sine * (x1 - x2) / 2 + cosine * (y1 - y2) / 2;\n\n const sign = largeArc !== swipe ? 1 : -1;\n\n const xt2 = Math.pow(xT, 2);\n const yt2 = Math.pow(yT, 2);\n let rx2 = Math.pow(rx, 2);\n let ry2 = Math.pow(ry, 2);\n\n let delta = xt2 / rx2 + yt2 / ry2;\n\n if (delta > 1) {\n delta = Math.sqrt(xt2 / rx2 + yt2 / ry2);\n rx = delta * rx;\n rx2 = Math.pow(rx, 2);\n\n ry = delta * ry;\n ry2 = Math.pow(ry, 2);\n }\n\n let constT = sign * Math.sqrt((rx2 * ry2 - rx2 * yt2 - ry2 * xt2) / (rx2 * yt2 + ry2 * xt2));\n // due to rounding errors the value could become NaN even after radii correction\n if (isNaN(constT)) {\n constT = 0;\n }\n\n const cxT = constT * (rx * yT) / ry;\n const cyT = - constT * (ry * xT) / rx;\n\n const cx = cosine * cxT - sine * cyT + (x1 + x2) / 2;\n const cy = sine * cxT + cosine * cyT + (y1 + y2) / 2;\n\n\n const uX = (xT - cxT) / rx;\n const uY = (yT - cyT) / ry;\n const vX = -(xT + cxT) / rx;\n const vY = -(yT + cyT) / ry;\n\n const startAngle = (uY >= 0 ? 1 : -1) * deg(Math.acos(uX / Math.sqrt(uX * uX + uY * uY)));\n\n const angleCosine = round((uX * vX + uY * vY) / (Math.sqrt(uX * uX + uY * uY) * Math.sqrt(vX * vX + vY * vY)), 10);\n let angle = (uX * vY - uY * vX >= 0 ? 1 : -1) * deg(Math.acos(angleCosine));\n\n if (!swipe && angle > 0) {\n angle -= 360;\n }\n\n if (swipe && angle < 0) {\n angle += 360;\n }\n let endAngle = startAngle + angle;\n const signEndAngle = endAngle >= 0 ? 1 : -1;\n endAngle = (Math.abs(endAngle) % 360) * signEndAngle;\n\n return {\n center: new Point(cx, cy),\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: rx,\n radiusY: ry,\n xRotation: rotation\n };\n}\n\nfunction bboxStartAngle(angle, start) {\n let startAngle = angle;\n\n while (startAngle < start) {\n startAngle += 90;\n }\n\n return startAngle;\n}\n\nexport default Arc;\n","import withAccessors from '../mixins/with-accessors';\nimport Point from './point';\nimport Rect from './rect';\nimport ellipseExtremeAngles from './math/ellipse-extreme-angles';\nimport HasObservers from '../core/has-observers';\nimport { rad } from '../util';\n\n\nconst PI_DIV_2 = Math.PI / 2;\n\nclass Circle extends withAccessors(HasObservers, [ \"radius\" ]) {\n constructor(center = new Point(), radius = 0) {\n super();\n\n this.setCenter(center);\n this.setRadius(radius);\n }\n\n setCenter(value) {\n this._observerField(\"center\", Point.create(value));\n this.geometryChange();\n return this;\n }\n\n getCenter() {\n return this.center;\n }\n\n equals(other) {\n return other &&\n other.center.equals(this.center) &&\n other.radius === this.radius;\n }\n\n clone() {\n return new Circle(this.center.clone(), this.radius);\n }\n\n pointAt(angle) {\n return this._pointAt(rad(angle));\n }\n\n bbox(matrix) {\n const extremeAngles = ellipseExtremeAngles(this.center, this.radius, this.radius, matrix);\n let minPoint = Point.maxPoint();\n let maxPoint = Point.minPoint();\n\n for (let i = 0; i < 4; i++) {\n let currentPointX = this._pointAt(extremeAngles.x + i * PI_DIV_2).transformCopy(matrix);\n let currentPointY = this._pointAt(extremeAngles.y + i * PI_DIV_2).transformCopy(matrix);\n let currentPoint = new Point(currentPointX.x, currentPointY.y);\n\n minPoint = Point.min(minPoint, currentPoint);\n maxPoint = Point.max(maxPoint, currentPoint);\n }\n\n return Rect.fromPoints(minPoint, maxPoint);\n }\n\n _pointAt(angle) {\n const { center, radius } = this;\n\n return new Point(\n center.x + radius * Math.cos(angle),\n center.y + radius * Math.sin(angle)\n );\n }\n\n containsPoint(point) {\n const { center, radius } = this;\n const inCircle = Math.pow(point.x - center.x, 2) +\n Math.pow(point.y - center.y, 2) <= Math.pow(radius, 2);\n return inCircle;\n }\n\n _isOnPath(point, width) {\n const { center, radius } = this;\n const pointDistance = center.distanceTo(point);\n\n return radius - width <= pointDistance && pointDistance <= radius + width;\n }\n}\n\nexport default Circle;\n","const PRECISION = 10;\n\nexport { PRECISION };","export default function calculateCurveAt(t, field, points) {\n const t1 = 1 - t;\n return Math.pow(t1, 3) * points[0][field] +\n 3 * Math.pow(t1, 2) * t * points[1][field] +\n 3 * Math.pow(t, 2) * t1 * points[2][field] +\n Math.pow(t, 3) * points[3][field];\n}","import close from './close';\n\nexport default function closeOrLess(a, b, tolerance) {\n return a < b || close(a, b, tolerance);\n}","import { PRECISION } from '../constants';\n\nimport { round } from '../../util';\n\nexport default function close(a, b, tolerance = PRECISION) {\n return round(Math.abs(a - b), tolerance) === 0;\n}","import { PRECISION } from '../constants';\nimport { Class } from '../../common';\nimport { round } from '../../util';\n\nclass ComplexNumber extends Class {\n\n constructor(real = 0, img = 0) {\n super();\n\n this.real = real;\n this.img = img;\n }\n\n add(cNumber) {\n return new ComplexNumber(round(this.real + cNumber.real, PRECISION), round(this.img + cNumber.img, PRECISION));\n }\n\n addConstant(value) {\n return new ComplexNumber(this.real + value, this.img);\n }\n\n negate() {\n return new ComplexNumber(-this.real, -this.img);\n }\n\n multiply(cNumber) {\n return new ComplexNumber(this.real * cNumber.real - this.img * cNumber.img,\n this.real * cNumber.img + this.img * cNumber.real);\n }\n\n multiplyConstant(value) {\n return new ComplexNumber(this.real * value, this.img * value);\n }\n\n nthRoot(n) {\n const rad = Math.atan2(this.img, this.real);\n const r = Math.sqrt(Math.pow(this.img, 2) + Math.pow(this.real, 2));\n const nthR = Math.pow(r, 1 / n);\n\n return new ComplexNumber(nthR * Math.cos(rad / n), nthR * Math.sin(rad / n)); //Moivre's formula\n }\n\n equals(cNumber) {\n return this.real === cNumber.real && this.img === cNumber.img;\n }\n\n isReal() {\n return this.img === 0;\n }\n}\n\nexport default ComplexNumber;","import toCubicPolynomial from './to-cubic-polynomial';\nimport solveCubicEquation from './solve-cubic-equation';\nimport calculateCurveAt from './calculate-curve-at';\nimport close from './close';\n\nexport default function curveIntersectionsCount(points, point, bbox) {\n const polynomial = toCubicPolynomial(points, \"x\");\n const roots = solveCubicEquation(polynomial[0], polynomial[1], polynomial[2], polynomial[3] - point.x);\n let rayIntersection, intersectsRay;\n let count = 0;\n for (let i = 0; i < roots.length; i++) {\n rayIntersection = calculateCurveAt(roots[i], \"y\", points);\n intersectsRay = close(rayIntersection, point.y) || rayIntersection > point.y;\n if (intersectsRay && (((roots[i] === 0 || roots[i] === 1) && bbox.bottomRight().x > point.x) || (0 < roots[i] && roots[i] < 1))) {\n count++;\n }\n }\n\n return count;\n}","export default function ellipseExtremeAngles(center, rx, ry, matrix) {\n let extremeX = 0;\n let extremeY = 0;\n\n if (matrix) {\n extremeX = Math.atan2(matrix.c * ry, matrix.a * rx);\n if (matrix.b !== 0) {\n extremeY = Math.atan2(matrix.d * ry, matrix.b * rx);\n }\n }\n\n return {\n x: extremeX,\n y: extremeY\n };\n}","import toCubicPolynomial from './to-cubic-polynomial';\nimport solveCubicEquation from './solve-cubic-equation';\nimport calculateCurveAt from './calculate-curve-at';\n\nexport default function hasRootsInRange(points, point, field, rootField, range) {\n const polynomial = toCubicPolynomial(points, rootField);\n const roots = solveCubicEquation(polynomial[0], polynomial[1], polynomial[2], polynomial[3] - point[rootField]);\n let intersection;\n\n for (let idx = 0; idx < roots.length; idx++) {\n if (0 <= roots[idx] && roots[idx] <= 1) {\n intersection = calculateCurveAt(roots[idx], field, points);\n if (Math.abs(intersection - point[field]) <= range) {\n return true;\n }\n }\n }\n}","import { deg } from '../../util';\nimport transform from '../transform';\n\nexport default function isOutOfEndPoint(endPoint, controlPoint, point) {\n const angle = deg(Math.atan2(controlPoint.y - endPoint.y, controlPoint.x - endPoint.x));\n const rotatedPoint = point.transformCopy(transform().rotate(-angle, endPoint));\n\n return rotatedPoint.x < endPoint.x;\n}","import Point from '../point';\n\nexport default function lineIntersection(p0, p1, p2, p3) {\n const s1x = p1.x - p0.x;\n const s2x = p3.x - p2.x;\n const s1y = p1.y - p0.y;\n const s2y = p3.y - p2.y;\n const nx = p0.x - p2.x;\n const ny = p0.y - p2.y;\n const d = s1x * s2y - s2x * s1y;\n const s = (s1x * ny - s1y * nx) / d;\n const t = (s2x * ny - s2y * nx) / d;\n\n if (s >= 0 && s <= 1 && t >= 0 && t <= 1) {\n return new Point(p0.x + t * s1x, p0.y + t * s1y);\n }\n}","export default function lineIntersectionsCount(a, b, point) {\n let intersects;\n if (a.x !== b.x) {\n const minX = Math.min(a.x, b.x);\n const maxX = Math.max(a.x, b.x);\n const minY = Math.min(a.y, b.y);\n const maxY = Math.max(a.y, b.y);\n const inRange = minX <= point.x && point.x < maxX;\n\n if (minY === maxY) {\n intersects = point.y <= minY && inRange;\n } else {\n intersects = inRange && (((maxY - minY) * ((a.x - b.x) * (a.y - b.y) > 0 ? point.x - minX : maxX - point.x)) / (maxX - minX) + minY - point.y) >= 0;\n }\n }\n\n return intersects ? 1 : 0;\n}","import ComplexNumber from './complex-number';\nimport { PRECISION } from '../constants';\nimport { round } from '../../util';\n\nfunction numberSign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction solveQuadraticEquation(a, b, c) {\n const squareRoot = Math.sqrt(Math.pow(b, 2) - 4 * a * c);\n return [\n (-b + squareRoot) / (2 * a),\n (-b - squareRoot) / (2 * a)\n ];\n}\n\n//Cardano's formula\nexport default function solveCubicEquation(a, b, c, d) {\n if (a === 0) {\n return solveQuadraticEquation(b, c, d);\n }\n\n const p = (3 * a * c - Math.pow(b, 2)) / (3 * Math.pow(a, 2));\n const q = (2 * Math.pow(b, 3) - 9 * a * b * c + 27 * Math.pow(a, 2) * d) / (27 * Math.pow(a, 3));\n const Q = Math.pow(p / 3, 3) + Math.pow(q / 2, 2);\n const i = new ComplexNumber(0,1);\n const b3a = -b / (3 * a);\n let x1, x2, y1, y2, y3, z1, z2;\n\n if (Q < 0) {\n x1 = new ComplexNumber(-q / 2, Math.sqrt(-Q)).nthRoot(3);\n x2 = new ComplexNumber(-q / 2, - Math.sqrt(-Q)).nthRoot(3);\n } else {\n x1 = -q / 2 + Math.sqrt(Q);\n x1 = new ComplexNumber(numberSign(x1) * Math.pow(Math.abs(x1), 1 / 3));\n x2 = -q / 2 - Math.sqrt(Q);\n x2 = new ComplexNumber(numberSign(x2) * Math.pow(Math.abs(x2), 1 / 3));\n }\n\n y1 = x1.add(x2);\n\n z1 = x1.add(x2).multiplyConstant(-1 / 2);\n z2 = x1.add(x2.negate()).multiplyConstant(Math.sqrt(3) / 2);\n\n y2 = z1.add(i.multiply(z2));\n y3 = z1.add(i.negate().multiply(z2));\n\n const result = [];\n\n if (y1.isReal()) {\n result.push(round(y1.real + b3a, PRECISION));\n }\n if (y2.isReal()) {\n result.push(round(y2.real + b3a, PRECISION));\n }\n if (y3.isReal()) {\n result.push(round(y3.real + b3a, PRECISION));\n }\n\n return result;\n}","export default function toCubicPolynomial(points, field) {\n return [ -points[0][field] + 3 * points[1][field] - 3 * points[2][field] + points[3][field],\n 3 * (points[0][field] - 2 * points[1][field] + points[2][field]),\n 3 * (-points[0][field] + points[1][field]),\n points[0][field]\n ];\n}","import { Class } from '../common';\nimport defined from '../util/defined';\nimport rad from '../util/rad';\nimport round from '../util/round';\n\nclass Matrix extends Class {\n\n constructor(a = 0, b = 0, c = 0, d = 0, e = 0, f = 0) {\n super();\n\n this.a = a;\n this.b = b;\n this.c = c;\n this.d = d;\n this.e = e;\n this.f = f;\n }\n\n multiplyCopy(matrix) {\n return new Matrix(\n this.a * matrix.a + this.c * matrix.b,\n this.b * matrix.a + this.d * matrix.b,\n this.a * matrix.c + this.c * matrix.d,\n this.b * matrix.c + this.d * matrix.d,\n this.a * matrix.e + this.c * matrix.f + this.e,\n this.b * matrix.e + this.d * matrix.f + this.f\n );\n }\n\n invert() {\n const { a, b, c: d, d: e, e: g, f: h } = this;\n const det = a * e - b * d;\n\n if (det === 0) {\n return null;\n }\n\n return new Matrix(e / det, -b / det, -d / det, a / det,\n (d * h - e * g) / det, (b * g - a * h) / det);\n }\n\n clone() {\n return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n }\n\n equals(other) {\n if (!other) {\n return false;\n }\n\n return this.a === other.a && this.b === other.b &&\n this.c === other.c && this.d === other.d &&\n this.e === other.e && this.f === other.f;\n }\n\n round(precision) {\n this.a = round(this.a, precision);\n this.b = round(this.b, precision);\n this.c = round(this.c, precision);\n this.d = round(this.d, precision);\n this.e = round(this.e, precision);\n this.f = round(this.f, precision);\n\n return this;\n }\n\n toArray(precision) {\n const result = [ this.a, this.b, this.c, this.d, this.e, this.f ];\n\n if (defined(precision)) {\n for (let i = 0; i < result.length; i++) {\n result[i] = round(result[i], precision);\n }\n }\n\n return result;\n }\n\n toString(precision, separator = \",\") {\n return this.toArray(precision).join(separator);\n }\n\n static translate(x, y) {\n return new Matrix(1, 0, 0, 1, x, y);\n }\n\n static unit() {\n return new Matrix(1, 0, 0, 1, 0, 0);\n }\n\n static rotate(angle, x, y) {\n const matrix = new Matrix();\n matrix.a = Math.cos(rad(angle));\n matrix.b = Math.sin(rad(angle));\n matrix.c = -matrix.b;\n matrix.d = matrix.a;\n matrix.e = (x - x * matrix.a + y * matrix.b) || 0;\n matrix.f = (y - y * matrix.a - x * matrix.b) || 0;\n\n return matrix;\n }\n\n static scale(scaleX, scaleY) {\n return new Matrix(scaleX, 0, 0, scaleY, 0, 0);\n }\n}\n\nMatrix.IDENTITY = Matrix.unit();\n\nexport default Matrix;\n","import withAccessors from '../mixins/with-accessors';\nimport HasObservers from '../core/has-observers';\nimport { defined, MIN_NUM, MAX_NUM, round } from '../util';\nimport Matrix from './matrix';\nimport toMatrix from './to-matrix';\n\n\nclass Point extends withAccessors(HasObservers, [ \"x\", \"y\" ]) {\n constructor(x, y) {\n super();\n\n this.x = x || 0;\n this.y = y || 0;\n }\n\n equals(other) {\n return other && other.x === this.x && other.y === this.y;\n }\n\n clone() {\n return new Point(this.x, this.y);\n }\n\n rotate(angle, origin) {\n const originPoint = Point.create(origin) || Point.ZERO;\n\n return this.transform(Matrix.rotate(angle, originPoint.x, originPoint.y));\n }\n\n translate(x, y) {\n this.x += x;\n this.y += y;\n\n this.geometryChange();\n\n return this;\n }\n\n translateWith(point) {\n return this.translate(point.x, point.y);\n }\n\n move(x, y) {\n this.x = this.y = 0;\n return this.translate(x, y);\n }\n\n scale(scaleX, scaleY = scaleX) {\n this.x *= scaleX;\n this.y *= scaleY;\n\n this.geometryChange();\n\n return this;\n }\n\n scaleCopy(scaleX, scaleY) {\n return this.clone().scale(scaleX, scaleY);\n }\n\n transform(transformation) {\n const matrix = toMatrix(transformation);\n const { x, y } = this;\n\n this.x = matrix.a * x + matrix.c * y + matrix.e;\n this.y = matrix.b * x + matrix.d * y + matrix.f;\n\n this.geometryChange();\n\n return this;\n }\n\n transformCopy(transformation) {\n const point = this.clone();\n\n if (transformation) {\n point.transform(transformation);\n }\n\n return point;\n }\n\n distanceTo(point) {\n const dx = this.x - point.x;\n const dy = this.y - point.y;\n\n return Math.sqrt(dx * dx + dy * dy);\n }\n\n round(digits) {\n this.x = round(this.x, digits);\n this.y = round(this.y, digits);\n\n this.geometryChange();\n\n return this;\n }\n\n toArray(digits) {\n const doRound = defined(digits);\n const x = doRound ? round(this.x, digits) : this.x;\n const y = doRound ? round(this.y, digits) : this.y;\n\n return [ x, y ];\n }\n\n toString(digits, separator = \" \") {\n let { x, y } = this;\n\n if (defined(digits)) {\n x = round(x, digits);\n y = round(y, digits);\n }\n\n return x + separator + y;\n }\n\n static create(arg0, arg1) {\n if (defined(arg0)) {\n if (arg0 instanceof Point) {\n return arg0;\n } else if (arguments.length === 1 && arg0.length === 2) {\n return new Point(arg0[0], arg0[1]);\n }\n\n return new Point(arg0, arg1);\n }\n }\n\n static min() {\n let minX = MAX_NUM;\n let minY = MAX_NUM;\n\n for (let i = 0; i < arguments.length; i++) {\n let point = arguments[i];\n minX = Math.min(point.x, minX);\n minY = Math.min(point.y, minY);\n }\n\n return new Point(minX, minY);\n }\n\n static max() {\n let maxX = MIN_NUM;\n let maxY = MIN_NUM;\n\n for (let i = 0; i < arguments.length; i++) {\n const point = arguments[i];\n maxX = Math.max(point.x, maxX);\n maxY = Math.max(point.y, maxY);\n }\n\n return new Point(maxX, maxY);\n }\n\n static minPoint() {\n return new Point(MIN_NUM, MIN_NUM);\n }\n\n static maxPoint() {\n return new Point(MAX_NUM, MAX_NUM);\n }\n\n static get ZERO() {\n return new Point(0, 0);\n }\n}\n\nexport default Point;\n","import HasObservers from '../core/has-observers';\nimport Point from './point';\nimport Size from './size';\n\nclass Rect extends HasObservers {\n constructor(origin = new Point(), size = new Size(), cornerRadius = 0) {\n super();\n\n this.setOrigin(origin);\n this.setSize(size);\n this.setCornerRadius(cornerRadius);\n }\n\n clone() {\n return new Rect(\n this.origin.clone(),\n this.size.clone()\n );\n }\n\n equals(other) {\n return other &&\n other.origin.equals(this.origin) &&\n other.size.equals(this.size);\n }\n\n setOrigin(value) {\n this._observerField(\"origin\", Point.create(value));\n this.geometryChange();\n return this;\n }\n\n getOrigin() {\n return this.origin;\n }\n\n setCornerRadius(radius) {\n this.cornerRadius = Array.isArray(radius) ? radius : [ radius, radius ];\n\n this.geometryChange();\n return this;\n }\n\n getCornerRadius() {\n return this.cornerRadius;\n }\n\n setSize(value) {\n this._observerField(\"size\", Size.create(value));\n this.geometryChange();\n return this;\n }\n\n getSize() {\n return this.size;\n }\n\n width() {\n return this.size.width;\n }\n\n height() {\n return this.size.height;\n }\n\n topLeft() {\n return this.origin.clone();\n }\n\n bottomRight() {\n return this.origin.clone().translate(this.width(), this.height());\n }\n\n topRight() {\n return this.origin.clone().translate(this.width(), 0);\n }\n\n bottomLeft() {\n return this.origin.clone().translate(0, this.height());\n }\n\n center() {\n return this.origin.clone().translate(this.width() / 2, this.height() / 2);\n }\n\n bbox(matrix) {\n const tl = this.topLeft().transformCopy(matrix);\n const tr = this.topRight().transformCopy(matrix);\n const br = this.bottomRight().transformCopy(matrix);\n const bl = this.bottomLeft().transformCopy(matrix);\n\n return Rect.fromPoints(tl, tr, br, bl);\n }\n\n transformCopy(m) {\n return Rect.fromPoints(\n this.topLeft().transform(m),\n this.bottomRight().transform(m)\n );\n }\n\n expand(x, y = x) {\n\n this.size.width += 2 * x;\n this.size.height += 2 * y;\n\n this.origin.translate(-x, -y);\n\n return this;\n }\n\n expandCopy(x, y) {\n return this.clone().expand(x, y);\n }\n\n containsPoint(point) {\n const origin = this.origin;\n const bottomRight = this.bottomRight();\n return !(point.x < origin.x || point.y < origin.y || bottomRight.x < point.x || bottomRight.y < point.y);\n }\n\n _isOnPath(point, width) {\n const rectOuter = this.expandCopy(width, width);\n const rectInner = this.expandCopy(-width, -width);\n\n return rectOuter.containsPoint(point) && !rectInner.containsPoint(point);\n }\n\n static fromPoints() {\n const topLeft = Point.min.apply(null, arguments);\n const bottomRight = Point.max.apply(null, arguments);\n const size = new Size(\n bottomRight.x - topLeft.x,\n bottomRight.y - topLeft.y\n );\n\n return new Rect(topLeft, size);\n }\n\n static union(a, b) {\n return Rect.fromPoints(\n Point.min(a.topLeft(), b.topLeft()),\n Point.max(a.bottomRight(), b.bottomRight())\n );\n }\n\n static intersect(a, b) {\n const rect1 = {\n left: a.topLeft().x,\n top: a.topLeft().y,\n right: a.bottomRight().x,\n bottom: a.bottomRight().y\n };\n\n const rect2 = {\n left: b.topLeft().x,\n top: b.topLeft().y,\n right: b.bottomRight().x,\n bottom: b.bottomRight().y\n };\n\n if (rect1.left <= rect2.right &&\n rect2.left <= rect1.right &&\n rect1.top <= rect2.bottom &&\n rect2.top <= rect1.bottom) {\n return Rect.fromPoints(\n new Point(Math.max(rect1.left, rect2.left), Math.max(rect1.top, rect2.top)),\n new Point(Math.min(rect1.right, rect2.right), Math.min(rect1.bottom, rect2.bottom))\n );\n }\n }\n}\n\nexport default Rect;\n","import HasObservers from '../core/has-observers';\nimport Rect from './rect';\nimport Point from './point';\nimport transform from './transform';\nimport { deg, MIN_NUM, MAX_NUM } from '../util';\nimport isOutOfEndPoint from './math/is-out-of-end-point';\nimport calculateCurveAt from './math/calculate-curve-at';\nimport hasRootsInRange from './math/has-roots-in-range';\nimport curveIntersectionsCount from './math/curve-intersections-count';\nimport lineIntersectionsCount from './math/line-intersections-count';\nimport withPoints from '../mixins/with-points';\n\n\nconst points = [ \"anchor\", \"controlIn\", \"controlOut\" ];\n\nclass Segment extends withPoints(HasObservers, points) {\n constructor(anchor, controlIn, controlOut) {\n super();\n\n this.anchor(anchor || new Point());\n this.controlIn(controlIn);\n this.controlOut(controlOut);\n }\n\n bboxTo(toSegment, matrix) {\n const segmentAnchor = this.anchor().transformCopy(matrix);\n const toSegmentAnchor = toSegment.anchor().transformCopy(matrix);\n let rect;\n\n if (this.controlOut() && toSegment.controlIn()) {\n rect = this._curveBoundingBox(\n segmentAnchor, this.controlOut().transformCopy(matrix),\n toSegment.controlIn().transformCopy(matrix), toSegmentAnchor\n );\n } else {\n rect = this._lineBoundingBox(segmentAnchor, toSegmentAnchor);\n }\n\n return rect;\n }\n\n _lineBoundingBox(p1, p2) {\n return Rect.fromPoints(p1, p2);\n }\n\n _curveBoundingBox(p1, cp1, cp2, p2) {\n const points = [ p1, cp1, cp2, p2 ];\n const extremesX = this._curveExtremesFor(points, \"x\");\n const extremesY = this._curveExtremesFor(points, \"y\");\n const xLimits = arrayLimits([ extremesX.min, extremesX.max, p1.x, p2.x ]);\n const yLimits = arrayLimits([ extremesY.min, extremesY.max, p1.y, p2.y ]);\n\n return Rect.fromPoints(new Point(xLimits.min, yLimits.min), new Point(xLimits.max, yLimits.max));\n }\n\n _curveExtremesFor(points, field) {\n const extremes = this._curveExtremes(\n points[0][field], points[1][field],\n points[2][field], points[3][field]\n );\n\n return {\n min: calculateCurveAt(extremes.min, field, points),\n max: calculateCurveAt(extremes.max, field, points)\n };\n }\n\n _curveExtremes(x1, x2, x3, x4) {\n const a = x1 - 3 * x2 + 3 * x3 - x4;\n const b = - 2 * (x1 - 2 * x2 + x3);\n const c = x1 - x2;\n const sqrt = Math.sqrt(b * b - 4 * a * c);\n let t1 = 0;\n let t2 = 1;\n\n if (a === 0) {\n if (b !== 0) {\n t1 = t2 = -c / b;\n }\n } else if (!isNaN(sqrt)) {\n t1 = (- b + sqrt) / (2 * a);\n t2 = (- b - sqrt) / (2 * a);\n }\n\n let min = Math.max(Math.min(t1, t2), 0);\n if (min < 0 || min > 1) {\n min = 0;\n }\n\n let max = Math.min(Math.max(t1, t2), 1);\n if (max > 1 || max < 0) {\n max = 1;\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n _intersectionsTo(segment, point) {\n let intersectionsCount;\n if (this.controlOut() && segment.controlIn()) {\n intersectionsCount = curveIntersectionsCount([ this.anchor(), this.controlOut(), segment.controlIn(), segment.anchor() ], point, this.bboxTo(segment));\n } else {\n intersectionsCount = lineIntersectionsCount(this.anchor(), segment.anchor(), point);\n }\n return intersectionsCount;\n }\n\n _isOnCurveTo(segment, point, width, endSegment) {\n const bbox = this.bboxTo(segment).expand(width, width);\n if (bbox.containsPoint(point)) {\n const p1 = this.anchor();\n const p2 = this.controlOut();\n const p3 = segment.controlIn();\n const p4 = segment.anchor();\n\n if (endSegment === \"start\" && p1.distanceTo(point) <= width) {\n return !isOutOfEndPoint(p1, p2, point);\n } else if (endSegment === \"end\" && p4.distanceTo(point) <= width) {\n return !isOutOfEndPoint(p4, p3, point);\n }\n\n //the approach is not entirely correct but is close and the alternatives are solving a 6th degree polynomial or testing the segment points\n const points = [ p1, p2, p3, p4 ];\n if (hasRootsInRange(points, point, \"x\", \"y\", width) || hasRootsInRange(points, point, \"y\", \"x\", width)) {\n return true;\n }\n const rotation = transform().rotate(45, point);\n const rotatedPoints = [ p1.transformCopy(rotation), p2.transformCopy(rotation), p3.transformCopy(rotation), p4.transformCopy(rotation) ];\n return hasRootsInRange(rotatedPoints, point, \"x\", \"y\", width) || hasRootsInRange(rotatedPoints, point, \"y\", \"x\", width);\n }\n }\n\n _isOnLineTo(segment, point, width) {\n const p1 = this.anchor();\n const p2 = segment.anchor();\n const angle = deg(Math.atan2(p2.y - p1.y, p2.x - p1.x));\n const rect = new Rect([ p1.x, p1.y - width / 2 ], [ p1.distanceTo(p2), width ]);\n return rect.containsPoint(point.transformCopy(transform().rotate(-angle, p1)));\n }\n\n _isOnPathTo(segment, point, width, endSegment) {\n let isOnPath;\n if (this.controlOut() && segment.controlIn()) {\n isOnPath = this._isOnCurveTo(segment, point, width / 2, endSegment);\n } else {\n isOnPath = this._isOnLineTo(segment, point, width);\n }\n return isOnPath;\n }\n}\n\nfunction arrayLimits(arr) {\n let length = arr.length;\n let min = MAX_NUM;\n let max = MIN_NUM;\n\n for (let i = 0; i < length; i ++) {\n max = Math.max(max, arr[i]);\n min = Math.min(min, arr[i]);\n }\n\n return {\n min: min,\n max: max\n };\n}\n\nexport default Segment;\n","import HasObservers from '../core/has-observers';\nimport withAccessors from '../mixins/with-accessors';\nimport { defined, round } from '../util';\n\n\nclass Size extends withAccessors(HasObservers, [ \"width\", \"height\" ]) {\n constructor(width, height) {\n super();\n\n this.width = width || 0;\n this.height = height || 0;\n }\n\n equals(other) {\n return other && other.width === this.width && other.height === this.height;\n }\n\n clone() {\n return new Size(this.width, this.height);\n }\n\n toArray(digits) {\n const doRound = defined(digits);\n const width = doRound ? round(this.width, digits) : this.width;\n const height = doRound ? round(this.height, digits) : this.height;\n\n return [ width, height ];\n }\n\n static create(arg0, arg1) {\n if (defined(arg0)) {\n if (arg0 instanceof Size) {\n return arg0;\n } else if (arguments.length === 1 && arg0.length === 2) {\n return new Size(arg0[0], arg0[1]);\n }\n\n return new Size(arg0, arg1);\n }\n }\n\n static get ZERO() {\n return new Size(0, 0);\n }\n}\n\nexport default Size;\n","export default function toMatrix(transformation) {\n if (transformation && typeof transformation.matrix === \"function\") {\n return transformation.matrix();\n }\n\n return transformation;\n}","import Transformation from './transformation';\n\nexport default function transform(matrix) {\n if (matrix === null) {\n return null;\n }\n\n if (matrix instanceof Transformation) {\n return matrix;\n }\n\n return new Transformation(matrix);\n}","import HasObservers from '../core/has-observers';\nimport toMatrix from './to-matrix';\nimport Matrix from './matrix';\nimport Point from './point';\n\nclass Transformation extends HasObservers {\n constructor(matrix = Matrix.unit()) {\n super();\n\n this._matrix = matrix;\n }\n\n clone() {\n return new Transformation(\n this._matrix.clone()\n );\n }\n\n equals(other) {\n return other &&\n other._matrix.equals(this._matrix);\n }\n\n translate(x, y) {\n this._matrix = this._matrix.multiplyCopy(Matrix.translate(x, y));\n\n this._optionsChange();\n return this;\n }\n\n scale(scaleX, scaleY = scaleX, origin = null) {\n let originPoint = origin;\n\n if (originPoint) {\n originPoint = Point.create(originPoint);\n this._matrix = this._matrix.multiplyCopy(Matrix.translate(originPoint.x, originPoint.y));\n }\n\n this._matrix = this._matrix.multiplyCopy(Matrix.scale(scaleX, scaleY));\n\n if (originPoint) {\n this._matrix = this._matrix.multiplyCopy(Matrix.translate(-originPoint.x, -originPoint.y));\n }\n\n this._optionsChange();\n return this;\n }\n\n rotate(angle, origin) {\n const originPoint = Point.create(origin) || Point.ZERO;\n\n this._matrix = this._matrix.multiplyCopy(Matrix.rotate(angle, originPoint.x, originPoint.y));\n\n this._optionsChange();\n return this;\n }\n\n multiply(transformation) {\n const matrix = toMatrix(transformation);\n\n this._matrix = this._matrix.multiplyCopy(matrix);\n\n this._optionsChange();\n return this;\n }\n\n matrix(value) {\n if (value) {\n this._matrix = value;\n this._optionsChange();\n return this;\n }\n\n return this._matrix;\n }\n\n _optionsChange() {\n this.optionsChange({\n field: \"transform\",\n value: this\n });\n }\n}\n\nexport default Transformation;\n","import OptionsStore from '../core/options-store';\nimport withOptions from '../mixins/with-options';\nimport HasObservers from '../core/has-observers';\nimport { defined } from '../util';\n\n\nconst options = [ \"offset\", \"color\", \"opacity\" ];\n\nclass GradientStop extends withOptions(HasObservers, options) {\n constructor(offset, color, opacity) {\n super();\n\n this.options = new OptionsStore({\n offset: offset,\n color: color,\n opacity: defined(opacity) ? opacity : 1\n });\n\n this.options.addObserver(this);\n }\n\n static create(arg) {\n if (defined(arg)) {\n let stop;\n if (arg instanceof GradientStop) {\n stop = arg;\n } else if (arg.length > 1) {\n stop = new GradientStop(arg[0], arg[1], arg[2]);\n } else {\n stop = new GradientStop(arg.offset, arg.color, arg.opacity);\n }\n\n return stop;\n }\n }\n}\n\nexport default GradientStop;\n","import StopsArray from './stops-array';\nimport GradientStop from './gradient-stop';\nimport HasObservers from '../core/has-observers';\nimport { defined, definitionId } from '../util';\n\nclass Gradient extends HasObservers {\n get nodeType() {\n return \"Gradient\";\n }\n\n constructor(options = {}) {\n super();\n\n this.stops = new StopsArray(this._createStops(options.stops));\n this.stops.addObserver(this);\n this._userSpace = options.userSpace;\n this.id = definitionId();\n }\n\n userSpace(value) {\n if (defined(value)) {\n this._userSpace = value;\n this.optionsChange();\n return this;\n }\n\n return this._userSpace;\n }\n\n _createStops(stops = []) {\n const result = [];\n for (let idx = 0; idx < stops.length; idx++) {\n result.push(GradientStop.create(stops[idx]));\n }\n\n return result;\n }\n\n addStop(offset, color, opacity) {\n this.stops.push(new GradientStop(offset, color, opacity));\n }\n\n removeStop(stop) {\n const index = this.stops.indexOf(stop);\n if (index >= 0) {\n this.stops.splice(index, 1);\n }\n }\n\n optionsChange(e) {\n this.trigger(\"optionsChange\", {\n field: \"gradient\" + (e ? \".\" + e.field : \"\"),\n value: this\n });\n }\n\n geometryChange() {\n this.optionsChange();\n }\n}\n\nexport default Gradient;\n","import withPoints from '../mixins/with-points';\nimport Point from '../geometry/point';\nimport Gradient from './gradient';\n\n\nconst points = [ \"start\", \"end\" ];\n\nclass LinearGradient extends withPoints(Gradient, points) {\n constructor(options = {}) {\n super(options);\n\n this.start(options.start || new Point());\n this.end(options.end || new Point(1, 0));\n }\n}\n\nexport default LinearGradient;\n","import withPoints from '../mixins/with-points';\nimport Point from '../geometry/point';\nimport Gradient from './gradient';\nimport { defined } from '../util';\n\n\nclass RadialGradient extends withPoints(Gradient, [ \"center\" ]) {\n constructor(options = {}) {\n super(options);\n\n this.center(options.center || new Point());\n this._radius = defined(options.radius) ? options.radius : 1;\n this._fallbackFill = options.fallbackFill;\n }\n\n radius(value) {\n if (defined(value)) {\n this._radius = value;\n this.geometryChange();\n return this;\n }\n\n return this._radius;\n }\n\n fallbackFill(value) {\n if (defined(value)) {\n this._fallbackFill = value;\n this.optionsChange();\n return this;\n }\n\n return this._fallbackFill;\n }\n}\n\nexport default RadialGradient;\n","import ElementsArray from '../shapes/elements-array';\n\nclass StopsArray extends ElementsArray {\n _change() {\n this.optionsChange({\n field: \"stops\"\n });\n }\n}\n\nexport default StopsArray;","/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty, yoda */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\nimport * as geo from \"../geometry\";\nimport * as PDF from \"../pdf\";\nimport { arabicToRoman, createPromise, measureText, mergeSort } from '../util';\nimport { parseColor as utils_parseColor, support, template as compileTemplate } from \"../common\";\nimport { Path, Text, Group, Image, Circle, LinearGradient } from \"../drawing\";\nimport { encodeBase64 } from \"../util\";\n\nconst browser = support.browser || {};\n/*\n\n XXX: to test:\n\n - cloneNodes function:\n - drawing document containing canvas with page breaking\n - drawing document with named radio -s (should not clear selection)\n - IE9/IE10 don't support el.dataset; do they copy user data?\n\n - repeating table headers/footers on page breaking\n\n - forceBreak, keepTogether\n\n - avoidLinks\n\n */\n\n/* -----[ local vars ]----- */\n\nfunction slice(thing) {\n return Array.prototype.slice.call(thing);\n}\n\nvar KENDO_PSEUDO_ELEMENT = \"KENDO-PSEUDO-ELEMENT\";\n\nvar IMAGE_CACHE = {};\n\nvar nodeInfo = {};\nnodeInfo._root = nodeInfo;\n\n/* -----[ Custom Text node to speed up rendering in PDF ]----- */\n\nconst inBrowser = typeof window !== 'undefined';\nconst microsoft = inBrowser ? browser.msie || browser.edge : false;\n\nclass TextRect extends Text {\n constructor(str, rect, options) {\n super(str, rect.getOrigin(), options);\n this._pdfRect = rect;\n }\n rect() {\n // this is the crux of it: we can avoid a call to\n // measure(), which is what the base class does, since we\n // already know the rect. measure() is s-l-o-w.\n return this._pdfRect;\n }\n rawBBox() {\n // also let's avoid creating a new rectangle.\n return this._pdfRect;\n }\n}\n\nfunction addClass(el, cls) {\n if (el.classList) {\n el.classList.add(cls);\n } else {\n el.className += \" \" + cls;\n }\n}\n\nfunction removeClass(el, cls) {\n if (el.classList) {\n el.classList.remove(cls);\n } else {\n el.className = el.className.split(/\\s+/).reduce(function(a, word){\n if (word != cls) {\n a.push(word);\n }\n return a;\n }, []).join(\" \");\n }\n}\n\nfunction setCSS(el, styles) {\n Object.keys(styles).forEach(function(key){\n el.style[key] = styles[key];\n });\n}\n\nvar matches = typeof Element !== \"undefined\" && Element.prototype && (function(p){\n if (p.matches) {\n return function(el, selector) { return el.matches(selector); };\n }\n if (p.webkitMatchesSelector) {\n return function(el, selector) { return el.webkitMatchesSelector(selector); };\n }\n if (p.mozMatchesSelector) {\n return function(el, selector) { return el.mozMatchesSelector(selector); };\n }\n if (p.msMatchesSelector) {\n return function(el, selector) { return el.msMatchesSelector(selector); };\n }\n return function(s) {\n\treturn [].indexOf.call(document.querySelectorAll(s), this) !== -1;\n };\n})(Element.prototype);\n\nfunction closest(el, selector) {\n if (el.closest) {\n return el.closest(selector);\n }\n // IE: stringifying rather than simply comparing with `document`,\n // which is not iframe-proof and fails in editor export —\n // https://github.com/telerik/kendo/issues/6721\n while (el && !/^\\[object (?:HTML)?Document\\]$/.test(String(el))) {\n if (el.nodeType == 1 /* Element */ && matches(el, selector)) {\n return el;\n }\n el = el.parentNode;\n }\n}\n\n// clone nodes ourselves, so that we redraw (DOM or\n// jQuery clone will not)\nvar cloneNodes = (function($){\n if ($) {\n // if we have Kendo and jQuery, use this version as it will\n // maintain proper links between cloned element and Kendo\n // widgets (i.e. it clones jQuery data(), which isn't the same\n // as element's data attributes).\n // https://github.com/telerik/kendo-ui-core/issues/2750\n return function cloneNodes(el) {\n var clone = el.cloneNode(false);\n if (el.nodeType == 1 /* Element */) {\n var $el = $(el), $clone = $(clone), i;\n var data = $el.data();\n for (i in data) {\n $clone.data(i, data[i]);\n }\n if (/^canvas$/i.test(el.tagName)) {\n clone.getContext(\"2d\").drawImage(el, 0, 0);\n } else if (/^(?:input|select|textarea|option)$/i.test(el.tagName)) {\n // drop the name attributes so that we don't affect the selection of the\n // original nodes (i.e. checked status of radio buttons) when we insert our copy\n // into the DOM. https://github.com/telerik/kendo/issues/5409\n clone.removeAttribute(\"id\");\n clone.removeAttribute(\"name\");\n if (!/^textarea$/i.test(el.tagName)) {\n clone.value = el.value;\n }\n clone.checked = el.checked;\n clone.selected = el.selected;\n }\n for (i = el.firstChild; i; i = i.nextSibling) {\n clone.appendChild(cloneNodes(i));\n }\n }\n return clone;\n };\n } else {\n // the no-jQuery version\n return function cloneNodes(el) {\n const clone = (function dive(node){\n const clone = node.cloneNode(false);\n if (node._kendoExportVisual) {\n clone._kendoExportVisual = node._kendoExportVisual;\n }\n for (let i = node.firstChild; i; i = i.nextSibling) {\n clone.appendChild(dive(i));\n }\n return clone;\n })(el);\n\n // re-draw canvases - https://github.com/telerik/kendo/issues/4872\n const canvases = el.querySelectorAll(\"canvas\");\n if (canvases.length) {\n slice(clone.querySelectorAll(\"canvas\")).forEach((canvas, i) => {\n canvas.getContext(\"2d\").drawImage(canvases[i], 0, 0);\n });\n }\n\n // remove \"name\" attributes from elements -\n // https://github.com/telerik/kendo/issues/5409\n const orig = el.querySelectorAll(\"input, select, textarea, option\");\n slice(clone.querySelectorAll(\"input, select, textarea, option\")).forEach((el, i) => {\n el.removeAttribute(\"id\");\n el.removeAttribute(\"name\");\n if (!/^textarea$/i.test(el.tagName)) {\n el.value = orig[i].value;\n }\n el.checked = orig[i].checked;\n el.selected = orig[i].selected;\n });\n\n return clone;\n };\n }\n})(typeof window !== \"undefined\" && window.kendo && window.kendo.jQuery);\n\nfunction getXY(thing) {\n if (typeof thing == \"number\") {\n return { x: thing, y: thing };\n }\n if (Array.isArray(thing)) {\n return { x: thing[0], y: thing[1] };\n }\n return { x: thing.x, y: thing.y };\n}\n\nfunction drawDOM(element, options) {\n if (!options) {\n options = {};\n }\n var promise = createPromise();\n\n if (!element) {\n return promise.reject(\"No element to export\");\n }\n\n if (typeof window.getComputedStyle != \"function\") {\n throw new Error(\"window.getComputedStyle is missing. You are using an unsupported browser, or running in IE8 compatibility mode. Drawing HTML is supported in Chrome, Firefox, Safari and IE9+.\");\n }\n\n PDF.defineFont(getFontFaces(element.ownerDocument));\n\n var scale = getXY(options.scale || 1);\n\n function doOne(element) {\n var group = new Group();\n\n // translate to start of page\n var pos = element.getBoundingClientRect();\n setTransform(group, [\n scale.x,\n 0,\n 0,\n scale.y,\n (-pos.left * scale.x),\n (-pos.top * scale.y)\n ]);\n\n nodeInfo._clipbox = false;\n nodeInfo._matrix = geo.Matrix.unit();\n nodeInfo._stackingContext = {\n element: element,\n group: group\n };\n\n if (options.avoidLinks === true) {\n nodeInfo._avoidLinks = \"a\";\n } else {\n nodeInfo._avoidLinks = options.avoidLinks;\n }\n\n addClass(element, \"k-pdf-export\");\n renderElement(element, group);\n removeClass(element, \"k-pdf-export\");\n\n return group;\n }\n\n cacheImages([ element ], function(){\n var forceBreak = options && options.forcePageBreak;\n var hasPaperSize = options && options.paperSize && options.paperSize != \"auto\";\n var paperOptions = PDF.getPaperOptions(function(key, def){\n if (key == \"paperSize\") {\n // PDF.getPaperOptions croaks on \"auto\", just pass dummy A4 as we might\n // still be interested in margins.\n return hasPaperSize ? options[key] : \"A4\";\n }\n return key in options ? options[key] : def;\n });\n var pageWidth = hasPaperSize && paperOptions.paperSize[0];\n var pageHeight = hasPaperSize && paperOptions.paperSize[1];\n var margin = options.margin && paperOptions.margin;\n var hasMargin = Boolean(margin);\n if (forceBreak || pageHeight) {\n if (!margin) {\n margin = { left: 0, top: 0, right: 0, bottom: 0 };\n }\n\n // we want paper size and margin to be unaffected by\n // scaling in the output, so we have to reverse-scale\n // before our calculations begin.\n if (pageWidth) { pageWidth /= scale.x; }\n if (pageHeight) { pageHeight /= scale.y; }\n margin.left /= scale.x;\n margin.right /= scale.x;\n margin.top /= scale.y;\n margin.bottom /= scale.y;\n\n var group = new Group({\n pdf: {\n multiPage : true,\n paperSize : hasPaperSize ? paperOptions.paperSize : \"auto\",\n _ignoreMargin : hasMargin // HACK! see exportPDF in pdf/drawing.js\n }\n });\n handlePageBreaks(\n function(x) {\n if (options.progress) {\n var canceled = false, pageNum = 0;\n (function next(){\n if (pageNum < x.pages.length) {\n var page = doOne(x.pages[pageNum]);\n group.append(page);\n options.progress({\n page: page,\n pageNum: ++pageNum,\n totalPages: x.pages.length,\n cancel: function() {\n canceled = true;\n }\n });\n if (!canceled) {\n setTimeout(next);\n } else {\n // XXX: should we also fail() the deferred object?\n x.container.parentNode.removeChild(x.container);\n }\n } else {\n x.container.parentNode.removeChild(x.container);\n promise.resolve(group);\n }\n })();\n } else {\n x.pages.forEach(function(page){\n group.append(doOne(page));\n });\n x.container.parentNode.removeChild(x.container);\n promise.resolve(group);\n }\n },\n element,\n forceBreak,\n pageWidth ? pageWidth - margin.left - margin.right : null,\n pageHeight ? pageHeight - margin.top - margin.bottom : null,\n margin,\n options\n );\n } else {\n promise.resolve(doOne(element));\n }\n });\n\n function makeTemplate(template) {\n if (template != null) {\n if (typeof template == \"string\") {\n template = compileTemplate(template.replace(/^\\s+|\\s+$/g, \"\"));\n }\n if (typeof template == \"function\") {\n return function(data) {\n var el = template(data);\n if (el && typeof el == \"string\") {\n var div = document.createElement(\"div\");\n div.innerHTML = el;\n el = div.firstElementChild;\n }\n return el;\n };\n }\n // assumed DOM element\n return function() {\n return template.cloneNode(true);\n };\n }\n }\n\n function handlePageBreaks(callback, element, forceBreak, pageWidth, pageHeight, margin, options) {\n var template = makeTemplate(options.template);\n var doc = element.ownerDocument;\n var pages = [];\n var copy = options._destructive ? element : cloneNodes(element);\n var container = doc.createElement(\"KENDO-PDF-DOCUMENT\");\n var adjust = 0;\n\n // make sure elements are at the end (Grid widget\n // places TFOOT before TBODY, tricking our algorithm to\n // insert a page break right after the header).\n // https://github.com/telerik/kendo/issues/4699\n slice(copy.querySelectorAll(\"tfoot\")).forEach(function(tfoot){\n tfoot.parentNode.appendChild(tfoot);\n });\n\n // remember the index of each LI from an ordered list.\n // we'll use it to reconstruct the proper numbering.\n slice(copy.querySelectorAll(\"ol\")).forEach(function(ol){\n slice(ol.children).forEach(function(li, index){\n li.setAttribute(\"kendo-split-index\", index);\n });\n });\n\n setCSS(container, {\n display : \"block\",\n position : \"absolute\",\n boxSizing : \"content-box\",\n left : \"-10000px\",\n top : \"-10000px\"\n });\n\n if (pageWidth) {\n // subtle: if we don't set the width *and* margins here, the layout in this\n // container will be different from the one in our final page elements, and we'll\n // split at the wrong places.\n setCSS(container, {\n width : pageWidth + \"px\",\n paddingLeft : margin.left + \"px\",\n paddingRight : margin.right + \"px\"\n });\n\n // when the first element has a margin-top (i.e. a

    ) the page will be\n // inadvertently enlarged by that number (the browser will report the container's\n // bounding box top to start at the element's top, rather than including its\n // margin). Adding overflow: hidden seems to fix it.\n //\n // to understand the difference, try the following snippets in your browser:\n //\n // 1.
    \n //

    Foo

    \n //
    \n //\n // 2.
    \n //

    Foo

    \n //
    \n //\n // this detail is not important when automatic page breaking is not requested, hence\n // doing it only if pageWidth is defined.\n setCSS(copy, { overflow: \"hidden\" });\n }\n\n element.parentNode.insertBefore(container, element);\n container.appendChild(copy);\n\n // With cache disabled, images will still have height zero until their `complete` attribute\n // is true. `whenImagesAreActuallyLoaded` will wait for it.\n if (options.beforePageBreak) {\n whenImagesAreActuallyLoaded([ container ], function() {\n options.beforePageBreak(container, doPageBreak);\n });\n } else {\n whenImagesAreActuallyLoaded([ container ], doPageBreak);\n }\n\n function doPageBreak() {\n if (forceBreak != \"-\" || pageHeight) {\n splitElement(copy);\n }\n\n {\n let page = makePage();\n copy.parentNode.insertBefore(page, copy);\n page.appendChild(copy);\n }\n\n if (template) {\n pages.forEach(function(page, i){\n const el = template({\n element : page,\n pageNum : i + 1,\n totalPages : pages.length\n });\n if (el) {\n page.appendChild(el);\n }\n });\n }\n\n cacheImages(pages, callback.bind(null, { pages: pages, container: container }));\n }\n\n function keepTogether(el) {\n if (options.keepTogether && matches(el, options.keepTogether) && el.offsetHeight <= pageHeight - adjust) {\n return true;\n }\n\n var tag = el.tagName;\n if (/^h[1-6]$/i.test(tag) && el.offsetHeight >= pageHeight - adjust) {\n return false;\n }\n\n return (el.getAttribute(\"data-kendo-chart\") ||\n /^(?:img|tr|thead|th|tfoot|iframe|svg|object|canvas|input|textarea|select|video|h[1-6])/i.test(el.tagName));\n }\n\n function splitElement(element) {\n if (element.tagName == \"TABLE\") {\n setCSS(element, { tableLayout: \"fixed\" });\n }\n if (keepTogether(element)) {\n return;\n }\n var style = getComputedStyle(element);\n var bottomPadding = parseFloat(getPropertyValue(style, \"padding-bottom\"));\n var bottomBorder = parseFloat(getPropertyValue(style, \"border-bottom-width\"));\n var saveAdjust = adjust;\n adjust += bottomPadding + bottomBorder;\n var isFirst = true;\n for (var el = element.firstChild; el; el = el.nextSibling) {\n if (el.nodeType == 1 /* Element */) {\n isFirst = false;\n if (matches(el, forceBreak)) {\n breakAtElement(el);\n continue;\n }\n if (!pageHeight) {\n // we're in \"manual breaks mode\"\n splitElement(el);\n continue;\n }\n if (!/^(?:static|relative)$/.test(getPropertyValue(getComputedStyle(el), \"position\"))) {\n continue;\n }\n var fall = fallsOnMargin(el);\n if (fall == 1) {\n // element starts on next page, break before anyway.\n breakAtElement(el);\n }\n else if (fall) {\n // elements ends up on next page, or possibly doesn't fit on a page at\n // all. break before it anyway if it's an or , otherwise\n // attempt to split.\n if (keepTogether(el)) {\n breakAtElement(el);\n } else {\n splitElement(el);\n }\n }\n else {\n splitElement(el);\n }\n }\n else if (el.nodeType == 3 /* Text */ && pageHeight) {\n splitText(el, isFirst);\n isFirst = false;\n }\n }\n adjust = saveAdjust;\n }\n\n function firstInParent(el) {\n var p = el.parentNode, first = p.firstChild;\n if (el === first) {\n return true;\n }\n if (el === p.children[0]) {\n if (first.nodeType == 7 /* comment */ ||\n first.nodeType == 8 /* processing instruction */) {\n return true;\n }\n if (first.nodeType == 3 /* text */) {\n // if whitespace only we can probably consider it's first\n return !/\\S/.test(first.data);\n }\n }\n return false;\n }\n\n function breakAtElement(el) {\n if (el.nodeType == 1 && el !== copy && firstInParent(el)) {\n return breakAtElement(el.parentNode);\n }\n var table, colgroup, thead, grid, gridHead;\n table = closest(el, \"table\");\n colgroup = table && table.querySelector(\"colgroup\");\n if (options.repeatHeaders) {\n thead = table && table.querySelector(\"thead\");\n\n // If we break page in a Kendo Grid, repeat its header. This ugly hack is\n // necessary because a scrollable grid will keep the header in a separate\n // element from its content.\n //\n // XXX: This is likely to break as soon as the widget HTML is modified.\n grid = closest(el, \".k-grid.k-widget\");\n if (grid && grid.querySelector(\".k-auto-scrollable\")) {\n gridHead = grid.querySelector(\".k-grid-header\");\n }\n }\n var page = makePage();\n var range = doc.createRange();\n range.setStartBefore(copy);\n range.setEndBefore(el);\n page.appendChild(range.extractContents());\n copy.parentNode.insertBefore(page, copy);\n preventBulletOnListItem(el.parentNode);\n if (table) {\n table = closest(el, \"table\"); // that's the
    on next page!\n if (options.repeatHeaders && thead) {\n table.insertBefore(thead.cloneNode(true), table.firstChild);\n }\n if (colgroup) {\n table.insertBefore(colgroup.cloneNode(true), table.firstChild);\n }\n }\n if (options.repeatHeaders && gridHead) {\n grid = closest(el, \".k-grid.k-widget\");\n grid.insertBefore(gridHead.cloneNode(true), grid.firstChild);\n }\n }\n\n function makePage() {\n var page = doc.createElement(\"KENDO-PDF-PAGE\");\n setCSS(page, {\n display : \"block\",\n boxSizing: \"content-box\",\n width : pageWidth ? (pageWidth + \"px\") : \"auto\",\n padding : (margin.top + \"px \" +\n margin.right + \"px \" +\n margin.bottom + \"px \" +\n margin.left + \"px\"),\n\n // allow absolutely positioned elements to be relative to current page\n position : \"relative\",\n\n // without the following we might affect layout of subsequent pages\n height : pageHeight ? (pageHeight + \"px\") : \"auto\",\n overflow : pageHeight || pageWidth ? \"hidden\" : \"visible\",\n clear : \"both\"\n });\n\n // debug\n // $(\"
    \").css({\n // position : \"absolute\",\n // left : margin.left,\n // top : margin.top,\n // width : pageWidth,\n // height : pageHeight,\n // boxSizing : \"border-box\",\n // background: \"rgba(255, 255, 0, 0.5)\"\n // //border : \"1px solid red\"\n // }).appendTo(page);\n\n if (options && options.pageClassName) {\n page.className = options.pageClassName;\n }\n pages.push(page);\n return page;\n }\n\n function fallsOnMargin(thing) {\n var box = thing.getBoundingClientRect();\n if (box.width === 0 || box.height === 0) {\n // I'd say an element with dimensions zero fits on current page.\n return 0;\n }\n var top = copy.getBoundingClientRect().top;\n var available = pageHeight - adjust;\n return (box.height > available) ? 3\n : (box.top - top > available) ? 1\n : (box.bottom - top > available) ? 2\n : 0;\n }\n\n function splitText(node, isFirst) {\n if (!/\\S/.test(node.data)) {\n return;\n }\n\n var len = node.data.length;\n var range = doc.createRange();\n range.selectNodeContents(node);\n var fall = fallsOnMargin(range);\n if (!fall) {\n return; // the whole text fits on current page\n }\n\n var nextnode = node;\n if (fall == 1) {\n // starts on next page, break before anyway.\n if (isFirst) {\n // avoid leaving an empty

    ,

  • , etc. on previous page.\n breakAtElement(node.parentNode);\n } else {\n breakAtElement(node);\n }\n }\n else {\n (function findEOP(min, pos, max) {\n range.setEnd(node, pos);\n if (min == pos || pos == max) {\n return pos;\n }\n if (fallsOnMargin(range)) {\n return findEOP(min, (min + pos) >> 1, pos);\n } else {\n return findEOP(pos, (pos + max) >> 1, max);\n }\n })(0, len >> 1, len);\n\n if (!/\\S/.test(range.toString()) && isFirst) {\n // avoid leaving an empty

    ,

  • , etc. on previous page.\n breakAtElement(node.parentNode);\n } else {\n // This is only needed for IE, but it feels cleaner to do it anyway. Without\n // it, IE will truncate a very long text (playground/pdf-long-text-2.html).\n nextnode = node.splitText(range.endOffset);\n\n var page = makePage();\n range.setStartBefore(copy);\n page.appendChild(range.extractContents());\n copy.parentNode.insertBefore(page, copy);\n preventBulletOnListItem(nextnode.parentNode);\n }\n }\n\n splitText(nextnode);\n }\n\n function preventBulletOnListItem(el) {\n // set a hint on continued LI elements, to tell the\n // renderer not to draw the bullet again.\n // https://github.com/telerik/kendo-ui-core/issues/2732\n var li = closest(el, \"li\");\n if (li) {\n li.setAttribute(\"kendo-no-bullet\", \"1\");\n preventBulletOnListItem(li.parentNode);\n }\n }\n }\n\n return promise;\n}\n\n// This is needed for the Spreadsheet print functionality. Since\n// there we only need to draw text, this cuts through the ceremony\n// of drawDOM/renderElement and renders the text node directly.\nfunction drawText(element) {\n var group = new Group();\n nodeInfo._clipbox = false;\n nodeInfo._matrix = geo.Matrix.unit();\n nodeInfo._stackingContext = {\n element: element,\n group: group\n };\n pushNodeInfo(element, getComputedStyle(element), group);\n if (element.firstChild.nodeType == 3 /* Text */) {\n // avoid the penalty of renderElement\n renderText(element, element.firstChild, group);\n } else {\n _renderElement(element, group);\n }\n popNodeInfo();\n return group;\n}\n\nvar parseBackgroundImage = (function(){\n var tok_linear_gradient = /^((-webkit-|-moz-|-o-|-ms-)?linear-gradient\\s*)\\(/;\n //var tok_radial_gradient = /^((-webkit-|-moz-|-o-|-ms-)?radial-gradient\\s*)\\(/;\n var tok_percent = /^([-0-9.]+%)/;\n var tok_length = /^([-0-9.]+px)/;\n var tok_keyword = /^(left|right|top|bottom|to|center)\\W/;\n var tok_angle = /^([-0-9.]+(deg|grad|rad|turn)|0)/;\n var tok_whitespace = /^(\\s+)/;\n var tok_popen = /^(\\()/;\n var tok_pclose = /^(\\))/;\n var tok_comma = /^(,)/;\n var tok_url = /^(url)\\(/;\n var tok_content = /^(.*?)\\)/;\n\n var cache1 = {}, cache2 = {};\n\n function parse(input) {\n var orig = input;\n if (hasOwnProperty(cache1, orig)) {\n return cache1[orig];\n }\n function skip_ws() {\n var m = tok_whitespace.exec(input);\n if (m) {\n input = input.substr(m[1].length);\n }\n }\n function read(token) {\n skip_ws();\n var m = token.exec(input);\n if (m) {\n input = input.substr(m[1].length);\n return m[1];\n }\n }\n\n function read_stop() {\n var color = utils_parseColor(input, true);\n var length, percent;\n if (color) {\n let match =\n /^#[0-9a-f]+/i.exec(input) ||\n /^rgba?\\(.*?\\)/i.exec(input) ||\n /^..*?\\b/.exec(input); // maybe named color\n input = input.substr(match[0].length);\n color = color.toRGB();\n if (!(length = read(tok_length))) {\n percent = read(tok_percent);\n }\n return { color: color, length: length, percent: percent };\n }\n }\n\n function read_linear_gradient(propName) {\n var angle;\n var to1, to2;\n var stops = [];\n var reverse = false;\n\n if (read(tok_popen)) {\n // 1. [ || to , ]?\n angle = read(tok_angle);\n if (angle == \"0\") {\n angle = \"0deg\"; // Edge\n }\n if (angle) {\n angle = parseAngle(angle);\n read(tok_comma);\n }\n else {\n to1 = read(tok_keyword);\n if (to1 == \"to\") {\n to1 = read(tok_keyword);\n } else if (to1 && /^-/.test(propName)) {\n reverse = true;\n }\n to2 = read(tok_keyword);\n read(tok_comma);\n }\n\n if (/-moz-/.test(propName) && angle == null && to1 == null) {\n var x = read(tok_percent), y = read(tok_percent);\n reverse = true;\n if (x == \"0%\") {\n to1 = \"left\";\n } else if (x == \"100%\") {\n to1 = \"right\";\n }\n if (y == \"0%\") {\n to2 = \"top\";\n } else if (y == \"100%\") {\n to2 = \"bottom\";\n }\n read(tok_comma);\n }\n\n // 2. color stops\n while (input && !read(tok_pclose)) {\n var stop = read_stop();\n if (!stop) {\n break;\n }\n stops.push(stop);\n read(tok_comma);\n }\n\n return {\n type : \"linear\",\n angle : angle,\n to : to1 && to2 ? to1 + \" \" + to2 : to1 ? to1 : to2 ? to2 : null,\n stops : stops,\n reverse : reverse\n };\n }\n }\n\n function read_url() {\n if (read(tok_popen)) {\n var url = read(tok_content);\n url = url.replace(/^['\"]+|[\"']+$/g, \"\");\n read(tok_pclose);\n return { type: \"url\", url: url };\n }\n }\n\n var tok;\n\n if ((tok = read(tok_linear_gradient))) {\n tok = read_linear_gradient(tok);\n }\n else if ((tok = read(tok_url))) {\n tok = read_url();\n }\n\n return (cache1[orig] = tok || { type: \"none\" });\n }\n\n return function(input) {\n if (hasOwnProperty(cache2, input)) {\n return cache2[input];\n }\n return (cache2[input] = splitProperty(input).map(parse));\n };\n})();\n\nvar splitProperty = (function(){\n var cache = {};\n return function(input, separator) {\n if (!separator) {\n separator = /^\\s*,\\s*/;\n }\n\n var cacheKey = input + separator;\n\n if (hasOwnProperty(cache, cacheKey)) {\n return cache[cacheKey];\n }\n\n var ret = [];\n var last = 0, pos = 0;\n var in_paren = 0;\n var in_string = false;\n var m;\n\n function looking_at(rx) {\n return (m = rx.exec(input.substr(pos)));\n }\n\n function trim(str) {\n return str.replace(/^\\s+|\\s+$/g, \"\");\n }\n\n while (pos < input.length) {\n if (!in_string && looking_at(/^[\\(\\[\\{]/)) {\n in_paren++;\n pos++;\n }\n else if (!in_string && looking_at(/^[\\)\\]\\}]/)) {\n in_paren--;\n pos++;\n }\n else if (!in_string && looking_at(/^[\\\"\\']/)) {\n in_string = m[0];\n pos++;\n }\n else if (in_string == \"'\" && looking_at(/^\\\\\\'/)) {\n pos += 2;\n }\n else if (in_string == '\"' && looking_at(/^\\\\\\\"/)) {\n pos += 2;\n }\n else if (in_string == \"'\" && looking_at(/^\\'/)) {\n in_string = false;\n pos++;\n }\n else if (in_string == '\"' && looking_at(/^\\\"/)) {\n in_string = false;\n pos++;\n }\n else if (looking_at(separator)) {\n if (!in_string && !in_paren && pos > last) {\n ret.push(trim(input.substring(last, pos)));\n last = pos + m[0].length;\n }\n pos += m[0].length;\n }\n else {\n pos++;\n }\n }\n if (last < pos) {\n ret.push(trim(input.substring(last, pos)));\n }\n return (cache[cacheKey] = ret);\n };\n})();\n\nvar getFontURL = (function(cache){\n return function(el){\n // XXX: for IE we get here the whole cssText of the rule,\n // because the computedStyle.src is empty. Next time we need\n // to fix these regexps we better write a CSS parser. :-\\\n var url = cache[el];\n if (!url) {\n var m;\n if ((m = /url\\((['\"]?)([^'\")]*?)\\1\\)\\s+format\\((['\"]?)truetype\\3\\)/.exec(el))) {\n url = cache[el] = m[2];\n } else if ((m = /url\\((['\"]?)([^'\")]*?\\.ttf)\\1\\)/.exec(el))) {\n url = cache[el] = m[2];\n }\n }\n return url;\n };\n})(Object.create(null));\n\nvar getFontHeight = (function(cache){\n return function(font) {\n var height = cache[font];\n if (height == null) {\n height = cache[font] = measureText(\"Mapq\", { font: font }).height;\n }\n return height;\n };\n})(Object.create(null));\n\nfunction getFontFaces(doc) {\n if (doc == null) {\n doc = document;\n }\n var result = {};\n for (var i = 0; i < doc.styleSheets.length; ++i) {\n doStylesheet(doc.styleSheets[i]);\n }\n return result;\n function doStylesheet(ss) {\n if (ss) {\n var rules = null;\n try {\n rules = ss.cssRules;\n } catch (ex) {}\n if (rules) {\n addRules(ss, rules);\n }\n }\n }\n function findFonts(rule) {\n var src = getPropertyValue(rule.style, \"src\");\n if (src) {\n return splitProperty(src).reduce(function(a, el){\n var font = getFontURL(el);\n if (font) {\n a.push(font);\n }\n return a;\n }, []);\n } else {\n // Internet Explorer\n // XXX: this is gross. should work though for valid CSS.\n var font = getFontURL(rule.cssText);\n return font ? [ font ] : [];\n }\n }\n function addRules(styleSheet, rules) {\n for (var i = 0; i < rules.length; ++i) {\n var r = rules[i];\n switch (r.type) {\n case 3: // CSSImportRule\n doStylesheet(r.styleSheet);\n break;\n case 5: // CSSFontFaceRule\n var style = r.style;\n var family = splitProperty(getPropertyValue(style, \"font-family\"));\n var bold = /^([56789]00|bold)$/i.test(getPropertyValue(style, \"font-weight\"));\n var italic = \"italic\" == getPropertyValue(style, \"font-style\");\n var src = findFonts(r);\n if (src.length > 0) {\n addRule(styleSheet, family, bold, italic, src[0]);\n }\n }\n }\n }\n function addRule(styleSheet, names, bold, italic, url) {\n // We get full resolved absolute URLs in Chrome, but sadly\n // not in Firefox.\n if (!(/^data:/i.test(url))) {\n if (!(/^[^\\/:]+:\\/\\//.test(url) || /^\\//.test(url))) {\n url = String(styleSheet.href).replace(/[^\\/]*$/, \"\") + url;\n }\n }\n names.forEach(function(name){\n name = name.replace(/^(['\"]?)(.*?)\\1$/, \"$2\"); // it's quoted\n if (bold) {\n name += \"|bold\";\n }\n if (italic) {\n name += \"|italic\";\n }\n result[name] = url;\n });\n }\n}\n\nfunction hasOwnProperty(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction getCounter(name) {\n name = \"_counter_\" + name;\n return nodeInfo[name];\n}\n\nfunction getAllCounters(name) {\n var values = [], p = nodeInfo;\n name = \"_counter_\" + name;\n while (p) {\n if (hasOwnProperty(p, name)) {\n values.push(p[name]);\n }\n p = Object.getPrototypeOf(p);\n }\n return values.reverse();\n}\n\nfunction incCounter(name, inc) {\n var p = nodeInfo;\n name = \"_counter_\" + name;\n while (p && !hasOwnProperty(p, name)) {\n p = Object.getPrototypeOf(p);\n }\n if (!p) {\n p = nodeInfo._root;\n }\n p[name] = (p[name] || 0) + (inc == null ? 1 : inc);\n}\n\nfunction resetCounter(name, val) {\n name = \"_counter_\" + name;\n nodeInfo[name] = val == null ? 0 : val;\n}\n\nfunction doCounters(a, f, def) {\n for (var i = 0; i < a.length;) {\n var name = a[i++];\n var val = parseFloat(a[i]);\n if (isNaN(val)) {\n f(name, def);\n } else {\n f(name, val);\n ++i;\n }\n }\n}\n\nfunction updateCounters(style) {\n var counterReset = getPropertyValue(style, \"counter-reset\");\n if (counterReset) {\n doCounters(splitProperty(counterReset, /^\\s+/), resetCounter, 0);\n }\n var counterIncrement = getPropertyValue(style, \"counter-increment\");\n if (counterIncrement) {\n doCounters(splitProperty(counterIncrement, /^\\s+/), incCounter, 1);\n }\n}\n\nfunction parseColor(str, css) {\n var color = utils_parseColor(str, true);\n if (color) {\n color = color.toRGB();\n if (css) {\n color = color.toCssRgba();\n } else if (color.a === 0) {\n color = null;\n }\n }\n return color;\n}\n\nfunction whenImagesAreActuallyLoaded(elements, callback) {\n var pending = 0;\n elements.forEach(function(el){\n var images = el.querySelectorAll(\"img\");\n for (var i = 0; i < images.length; ++i) {\n var img = images[i];\n if (!img.complete) {\n pending++;\n img.onload = img.onerror = next;\n }\n }\n });\n if (!pending) {\n next();\n }\n function next() {\n if (--pending <= 0) {\n callback();\n }\n }\n}\n\nfunction cacheImages(elements, callback) {\n var urls = [];\n function add(url) {\n if (!IMAGE_CACHE[url]) {\n IMAGE_CACHE[url] = true;\n urls.push(url);\n }\n }\n\n elements.forEach(function dive(element){\n if (/^img$/i.test(element.tagName)) {\n add(element.src);\n }\n parseBackgroundImage(\n getPropertyValue(\n getComputedStyle(element), \"background-image\"\n )\n ).forEach(function(bg){\n if (bg.type == \"url\") {\n add(bg.url);\n }\n });\n\n if (element.children) {\n slice(element.children).forEach(dive);\n }\n });\n\n var count = urls.length;\n function next() {\n if (--count <= 0) {\n // Even though we cached them, they simply won't be available immediately in the newly\n // created DOM. Previously we'd allow a 10ms timeout, but that's arbitrary and clearly\n // not working in all cases (https://github.com/telerik/kendo/issues/5399), so this\n // function will wait for their .complete attribute.\n whenImagesAreActuallyLoaded(elements, callback);\n }\n }\n if (count === 0) {\n next();\n }\n urls.forEach(function(url){\n var img = IMAGE_CACHE[url] = new window.Image();\n if (!(/^data:/i.test(url))) {\n img.crossOrigin = \"Anonymous\";\n }\n img.src = url;\n if (img.complete) {\n next();\n } else {\n img.onload = next;\n img.onerror = function() {\n IMAGE_CACHE[url] = null;\n next();\n };\n }\n });\n}\n\nfunction alphaNumeral(n) {\n var result = \"\";\n do {\n var r = n % 26;\n result = String.fromCharCode(97 + r) + result;\n n = Math.floor(n / 26);\n } while (n > 0);\n return result;\n}\n\nfunction pushNodeInfo(element, style, group) {\n nodeInfo = Object.create(nodeInfo);\n nodeInfo[element.tagName.toLowerCase()] = {\n element: element,\n style: style\n };\n var decoration = getPropertyValue(style, \"text-decoration\");\n if (decoration && decoration != \"none\") {\n var color = getPropertyValue(style, \"color\");\n decoration.split(/\\s+/g).forEach(function(name){\n if (!nodeInfo[name]) {\n nodeInfo[name] = color;\n }\n });\n }\n\n if (createsStackingContext(style)) {\n nodeInfo._stackingContext = {\n element: element,\n group: group\n };\n }\n}\n\nfunction popNodeInfo() {\n nodeInfo = Object.getPrototypeOf(nodeInfo);\n}\n\nfunction updateClipbox(path) {\n if (nodeInfo._clipbox != null) {\n var box = path.bbox(nodeInfo._matrix);\n if (nodeInfo._clipbox) {\n nodeInfo._clipbox = geo.Rect.intersect(nodeInfo._clipbox, box);\n } else {\n nodeInfo._clipbox = box;\n }\n }\n}\n\nfunction emptyClipbox() {\n var cb = nodeInfo._clipbox;\n if (cb == null) {\n return true;\n }\n if (cb) {\n return cb.width() === 0 || cb.height() === 0;\n }\n}\n\nfunction createsStackingContext(style) {\n function prop(name) { return getPropertyValue(style, name); }\n if (prop(\"transform\") != \"none\" ||\n prop(\"position\") != \"static\" ||\n prop(\"z-index\") != \"auto\" ||\n prop(\"opacity\") < 1) {\n return true;\n }\n}\n\nfunction getComputedStyle(element, pseudoElt) {\n return window.getComputedStyle(element, pseudoElt || null);\n}\n\nfunction getPropertyValue(style, prop, defa) {\n var val = style.getPropertyValue(prop);\n if (val == null || val === \"\") {\n if (browser.webkit) {\n val = style.getPropertyValue(\"-webkit-\" + prop );\n } else if (browser.mozilla) {\n val = style.getPropertyValue(\"-moz-\" + prop );\n } else if (browser.opera) {\n val = style.getPropertyValue(\"-o-\" + prop);\n } else if (microsoft) {\n val = style.getPropertyValue(\"-ms-\" + prop);\n }\n }\n if (arguments.length > 2 && (val == null || val === \"\")) {\n return defa;\n } else {\n return val;\n }\n}\n\nfunction pleaseSetPropertyValue(style, prop, value, important) {\n style.setProperty(prop, value, important);\n if (browser.webkit) {\n style.setProperty(\"-webkit-\" + prop, value, important);\n } else if (browser.mozilla) {\n style.setProperty(\"-moz-\" + prop, value, important);\n } else if (browser.opera) {\n style.setProperty(\"-o-\" + prop, value, important);\n } else if (microsoft) {\n style.setProperty(\"-ms-\" + prop, value, important);\n prop = \"ms\" + prop.replace(/(^|-)([a-z])/g, function(s, p1, p2){\n return p1 + p2.toUpperCase();\n });\n style[prop] = value;\n }\n}\n\nfunction getBorder(style, side) {\n side = \"border-\" + side;\n return {\n width: parseFloat(getPropertyValue(style, side + \"-width\")),\n style: getPropertyValue(style, side + \"-style\"),\n color: parseColor(getPropertyValue(style, side + \"-color\"), true)\n };\n}\n\nfunction saveStyle(element, func) {\n var prev = element.style.cssText;\n var result = func();\n element.style.cssText = prev;\n return result;\n}\n\nfunction getBorderRadius(style, side) {\n var r = getPropertyValue(style, \"border-\" + side + \"-radius\").split(/\\s+/g).map(parseFloat);\n if (r.length == 1) {\n r.push(r[0]);\n }\n return sanitizeRadius({ x: r[0], y: r[1] });\n}\n\nfunction getContentBox(element) {\n var box = element.getBoundingClientRect();\n box = innerBox(box, \"border-*-width\", element);\n box = innerBox(box, \"padding-*\", element);\n return box;\n}\n\nfunction innerBox(box, prop, element) {\n var style, wt, wr, wb, wl;\n if (typeof prop == \"string\") {\n style = getComputedStyle(element);\n wt = parseFloat(getPropertyValue(style, prop.replace(\"*\", \"top\")));\n wr = parseFloat(getPropertyValue(style, prop.replace(\"*\", \"right\")));\n wb = parseFloat(getPropertyValue(style, prop.replace(\"*\", \"bottom\")));\n wl = parseFloat(getPropertyValue(style, prop.replace(\"*\", \"left\")));\n }\n else if (typeof prop == \"number\") {\n wt = wr = wb = wl = prop;\n }\n return {\n top : box.top + wt,\n right : box.right - wr,\n bottom : box.bottom - wb,\n left : box.left + wl,\n width : box.right - box.left - wr - wl,\n height : box.bottom - box.top - wb - wt\n };\n}\n\nfunction getTransform(style) {\n var transform = getPropertyValue(style, \"transform\");\n if (transform == \"none\") {\n return null;\n }\n var matrix = /^\\s*matrix\\(\\s*(.*?)\\s*\\)\\s*$/.exec(transform);\n if (matrix) {\n var origin = getPropertyValue(style, \"transform-origin\");\n matrix = matrix[1].split(/\\s*,\\s*/g).map(parseFloat);\n origin = origin.split(/\\s+/g).map(parseFloat);\n return {\n matrix: matrix,\n origin: origin\n };\n }\n}\n\nfunction radiansToDegrees(radians) {\n return ((180 * radians) / Math.PI) % 360;\n}\n\nfunction parseAngle(angle) {\n var num = parseFloat(angle);\n if (/grad$/.test(angle)) {\n return Math.PI * num / 200;\n }\n else if (/rad$/.test(angle)) {\n return num;\n }\n else if (/turn$/.test(angle)) {\n return Math.PI * num * 2;\n }\n else if (/deg$/.test(angle)) {\n return Math.PI * num / 180;\n }\n}\n\nfunction setTransform(shape, m) {\n m = new geo.Matrix(m[0], m[1], m[2], m[3], m[4], m[5]);\n shape.transform(m);\n return m;\n}\n\nfunction setClipping(shape, clipPath) {\n shape.clip(clipPath);\n}\n\nfunction addArcToPath(path, x, y, options) {\n var points = new geo.Arc([ x, y ], options).curvePoints(), i = 1;\n while (i < points.length) {\n path.curveTo(points[i++], points[i++], points[i++]);\n }\n}\n\nfunction sanitizeRadius(r) {\n if (r.x <= 0 || r.y <= 0) {\n r.x = r.y = 0;\n }\n return r;\n}\n\nfunction adjustBorderRadiusForBox(box, rTL, rTR, rBR, rBL) {\n // adjust border radiuses such that the sum of adjacent\n // radiuses is not bigger than the length of the side.\n // seems the correct algorithm is variant (3) from here:\n // http://www.w3.org/Style/CSS/Tracker/issues/29?changelog\n var tl_x = Math.max(0, rTL.x), tl_y = Math.max(0, rTL.y);\n var tr_x = Math.max(0, rTR.x), tr_y = Math.max(0, rTR.y);\n var br_x = Math.max(0, rBR.x), br_y = Math.max(0, rBR.y);\n var bl_x = Math.max(0, rBL.x), bl_y = Math.max(0, rBL.y);\n\n var f = Math.min(\n box.width / (tl_x + tr_x),\n box.height / (tr_y + br_y),\n box.width / (br_x + bl_x),\n box.height / (bl_y + tl_y)\n );\n\n if (f < 1) {\n tl_x *= f; tl_y *= f;\n tr_x *= f; tr_y *= f;\n br_x *= f; br_y *= f;\n bl_x *= f; bl_y *= f;\n }\n\n return {\n tl: { x: tl_x, y: tl_y },\n tr: { x: tr_x, y: tr_y },\n br: { x: br_x, y: br_y },\n bl: { x: bl_x, y: bl_y }\n };\n}\n\nfunction elementRoundBox(element, box, type) {\n var style = getComputedStyle(element);\n\n var rTL = getBorderRadius(style, \"top-left\");\n var rTR = getBorderRadius(style, \"top-right\");\n var rBL = getBorderRadius(style, \"bottom-left\");\n var rBR = getBorderRadius(style, \"bottom-right\");\n\n if (type == \"padding\" || type == \"content\") {\n var bt = getBorder(style, \"top\");\n var br = getBorder(style, \"right\");\n var bb = getBorder(style, \"bottom\");\n var bl = getBorder(style, \"left\");\n rTL.x -= bl.width; rTL.y -= bt.width;\n rTR.x -= br.width; rTR.y -= bt.width;\n rBR.x -= br.width; rBR.y -= bb.width;\n rBL.x -= bl.width; rBL.y -= bb.width;\n if (type == \"content\") {\n var pt = parseFloat(getPropertyValue(style, \"padding-top\"));\n var pr = parseFloat(getPropertyValue(style, \"padding-right\"));\n var pb = parseFloat(getPropertyValue(style, \"padding-bottom\"));\n var pl = parseFloat(getPropertyValue(style, \"padding-left\"));\n rTL.x -= pl; rTL.y -= pt;\n rTR.x -= pr; rTR.y -= pt;\n rBR.x -= pr; rBR.y -= pb;\n rBL.x -= pl; rBL.y -= pb;\n }\n }\n\n if (typeof type == \"number\") {\n rTL.x -= type; rTL.y -= type;\n rTR.x -= type; rTR.y -= type;\n rBR.x -= type; rBR.y -= type;\n rBL.x -= type; rBL.y -= type;\n }\n\n return roundBox(box, rTL, rTR, rBR, rBL);\n}\n\n// Create a drawing.Path for a rounded rectangle. Receives the\n// bounding box and the border-radiuses in CSS order (top-left,\n// top-right, bottom-right, bottom-left). The radiuses must be\n// objects containing x (horiz. radius) and y (vertical radius).\nfunction roundBox(box, rTL0, rTR0, rBR0, rBL0) {\n var tmp = adjustBorderRadiusForBox(box, rTL0, rTR0, rBR0, rBL0);\n var rTL = tmp.tl;\n var rTR = tmp.tr;\n var rBR = tmp.br;\n var rBL = tmp.bl;\n var path = new Path({ fill: null, stroke: null });\n path.moveTo(box.left, box.top + rTL.y);\n if (rTL.x) {\n addArcToPath(path, box.left + rTL.x, box.top + rTL.y, {\n startAngle: -180,\n endAngle: -90,\n radiusX: rTL.x,\n radiusY: rTL.y\n });\n }\n path.lineTo(box.right - rTR.x, box.top);\n if (rTR.x) {\n addArcToPath(path, box.right - rTR.x, box.top + rTR.y, {\n startAngle: -90,\n endAngle: 0,\n radiusX: rTR.x,\n radiusY: rTR.y\n });\n }\n path.lineTo(box.right, box.bottom - rBR.y);\n if (rBR.x) {\n addArcToPath(path, box.right - rBR.x, box.bottom - rBR.y, {\n startAngle: 0,\n endAngle: 90,\n radiusX: rBR.x,\n radiusY: rBR.y\n });\n }\n path.lineTo(box.left + rBL.x, box.bottom);\n if (rBL.x) {\n addArcToPath(path, box.left + rBL.x, box.bottom - rBL.y, {\n startAngle: 90,\n endAngle: 180,\n radiusX: rBL.x,\n radiusY: rBL.y\n });\n }\n return path.close();\n}\n\nfunction formatCounter(val, style) {\n var str = String(parseFloat(val));\n switch (style) {\n case \"decimal-leading-zero\":\n if (str.length < 2) {\n str = \"0\" + str;\n }\n return str;\n case \"lower-roman\":\n return arabicToRoman(val).toLowerCase();\n case \"upper-roman\":\n return arabicToRoman(val).toUpperCase();\n case \"lower-latin\":\n case \"lower-alpha\":\n return alphaNumeral(val - 1);\n case \"upper-latin\":\n case \"upper-alpha\":\n return alphaNumeral(val - 1).toUpperCase();\n default:\n return str;\n }\n}\n\nfunction evalPseudoElementContent(element, content) {\n function displayCounter(name, style, separator) {\n if (!separator) {\n return formatCounter(getCounter(name) || 0, style);\n }\n separator = separator.replace(/^\\s*([\"'])(.*)\\1\\s*$/, \"$2\");\n return getAllCounters(name).map(function(val){\n return formatCounter(val, style);\n }).join(separator);\n }\n var a = splitProperty(content, /^\\s+/);\n var result = [], m;\n a.forEach(function(el){\n var tmp;\n if ((m = /^\\s*([\"'])(.*)\\1\\s*$/.exec(el))) {\n result.push(m[2].replace(/\\\\([0-9a-f]{4})/gi, function(s, p){\n return String.fromCharCode(parseInt(p, 16));\n }));\n }\n else if ((m = /^\\s*counter\\((.*?)\\)\\s*$/.exec(el))) {\n tmp = splitProperty(m[1]);\n result.push(displayCounter(tmp[0], tmp[1]));\n }\n else if ((m = /^\\s*counters\\((.*?)\\)\\s*$/.exec(el))) {\n tmp = splitProperty(m[1]);\n result.push(displayCounter(tmp[0], tmp[2], tmp[1]));\n }\n else if ((m = /^\\s*attr\\((.*?)\\)\\s*$/.exec(el))) {\n result.push(element.getAttribute(m[1]) || \"\");\n }\n else {\n result.push(el);\n }\n });\n return result.join(\"\");\n}\n\nfunction getCssText(style) {\n if (style.cssText) {\n return style.cssText;\n }\n // Status: NEW. Report year: 2002. Current year: 2014.\n // Nice played, Mozillians.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=137687\n var result = [];\n for (var i = 0; i < style.length; ++i) {\n result.push(style[i] + \": \" + getPropertyValue(style, style[i]));\n }\n return result.join(\";\\n\");\n}\n\nfunction _renderWithPseudoElements(element, group) {\n if (element.tagName == KENDO_PSEUDO_ELEMENT) {\n _renderElement(element, group);\n return;\n }\n let fake = [];\n function pseudo(kind, place) {\n let style = getComputedStyle(element, kind), content = style.content;\n updateCounters(style);\n if (content && content != \"normal\" && content != \"none\" && style.width != \"0px\") {\n let psel = element.ownerDocument.createElement(KENDO_PSEUDO_ELEMENT);\n psel.style.cssText = getCssText(style);\n psel.textContent = evalPseudoElementContent(element, content);\n element.insertBefore(psel, place);\n fake.push(psel);\n }\n }\n pseudo(\":before\", element.firstChild);\n pseudo(\":after\", null);\n if (fake.length > 0) {\n let saveClass = element.className;\n element.className += \" kendo-pdf-hide-pseudo-elements\";\n _renderElement(element, group);\n element.className = saveClass;\n fake.forEach(function(el){ element.removeChild(el); });\n } else {\n _renderElement(element, group);\n }\n}\n\nfunction _renderElement(element, group) {\n var style = getComputedStyle(element);\n\n var top = getBorder(style, \"top\");\n var right = getBorder(style, \"right\");\n var bottom = getBorder(style, \"bottom\");\n var left = getBorder(style, \"left\");\n\n var rTL0 = getBorderRadius(style, \"top-left\");\n var rTR0 = getBorderRadius(style, \"top-right\");\n var rBL0 = getBorderRadius(style, \"bottom-left\");\n var rBR0 = getBorderRadius(style, \"bottom-right\");\n\n var dir = getPropertyValue(style, \"direction\");\n\n var backgroundColor = getPropertyValue(style, \"background-color\");\n backgroundColor = parseColor(backgroundColor);\n\n var backgroundImage = parseBackgroundImage( getPropertyValue(style, \"background-image\") );\n var backgroundRepeat = splitProperty( getPropertyValue(style, \"background-repeat\") );\n var backgroundPosition = splitProperty( getPropertyValue(style, \"background-position\") );\n var backgroundOrigin = splitProperty( getPropertyValue(style, \"background-origin\") );\n var backgroundSize = splitProperty( getPropertyValue(style, \"background-size\") );\n\n // IE shrinks the text with text-overflow: ellipsis,\n // apparently because the returned bounding box for the range\n // is limited to the visible area minus space for the dots,\n // instead of being the full width of the text.\n //\n // https://github.com/telerik/kendo/issues/5232\n // https://github.com/telerik/kendo-ui-core/issues/1868\n //\n // We have to test it here rather than in renderText because\n // text-overflow: ellipsis could be set on a parent element (not\n // necessarily the one containing the text); in this case,\n // getComputedStyle(elementWithTheText) will return \"clip\", not\n // \"ellipsis\" (which is probably a bug, but oh well...)\n var textOverflow, saveTextOverflow;\n if (microsoft) {\n textOverflow = style.textOverflow; // computed style\n if (textOverflow == \"ellipsis\") {\n saveTextOverflow = element.style.textOverflow; // own style.\n element.style.textOverflow = \"clip\";\n }\n }\n\n if (browser.msie && browser.version < 10) {\n // IE9 hacks. getPropertyValue won't return the correct\n // value. Sucks that we have to do it here, I'd prefer to\n // move it in getPropertyValue, but we don't have the\n // element.\n backgroundPosition = splitProperty(element.currentStyle.backgroundPosition);\n }\n\n var innerbox = innerBox(element.getBoundingClientRect(), \"border-*-width\", element);\n\n // CSS \"clip\" property - if present, replace the group with a\n // new one which is clipped. This must happen before drawing\n // the borders and background.\n (function(){\n var clip = getPropertyValue(style, \"clip\");\n var m = /^\\s*rect\\((.*)\\)\\s*$/.exec(clip);\n if (m) {\n var a = m[1].split(/[ ,]+/g);\n var top = a[0] == \"auto\" ? innerbox.top : parseFloat(a[0]) + innerbox.top;\n var right = a[1] == \"auto\" ? innerbox.right : parseFloat(a[1]) + innerbox.left;\n var bottom = a[2] == \"auto\" ? innerbox.bottom : parseFloat(a[2]) + innerbox.top;\n var left = a[3] == \"auto\" ? innerbox.left : parseFloat(a[3]) + innerbox.left;\n var tmp = new Group();\n var clipPath = new Path()\n .moveTo(left, top)\n .lineTo(right, top)\n .lineTo(right, bottom)\n .lineTo(left, bottom)\n .close();\n setClipping(tmp, clipPath);\n group.append(tmp);\n group = tmp;\n updateClipbox(clipPath);\n }\n })();\n\n var boxes, i, cells;\n var display = getPropertyValue(style, \"display\");\n\n if (display == \"table-row\") {\n // because of rowspan/colspan, we shouldn't draw background of table row elements on the\n // box given by its getBoundingClientRect, because if we do we risk overwritting a\n // previously rendered cell. https://github.com/telerik/kendo/issues/4881\n boxes = [];\n for (i = 0, cells = element.children; i < cells.length; ++i) {\n boxes.push(cells[i].getBoundingClientRect());\n }\n } else {\n boxes = element.getClientRects();\n if (boxes.length == 1) {\n // Workaround the missing borders in Chrome! getClientRects() boxes contains values\n // rounded to integer. getBoundingClientRect() appears to work fine. We still need\n // getClientRects() to support cases where there are more boxes (continued inline\n // elements that might have border/background).\n boxes = [ element.getBoundingClientRect() ];\n }\n }\n\n // This function workarounds another Chrome bug, where boxes returned for a table with\n // border-collapse: collapse will overlap the table border. Our rendering is not perfect in\n // such case anyway, but with this is better than without it.\n boxes = adjustBoxes(boxes);\n\n for (i = 0; i < boxes.length; ++i) {\n drawOneBox(boxes[i], i === 0, i == boxes.length - 1);\n }\n\n // Render links as separate groups. We can't use boxes returned by element's getClientRects\n // because if display type is \"inline\" (default for ), boxes will not include the height of\n // images inside. https://github.com/telerik/kendo-ui-core/issues/3359\n if (element.tagName == \"A\" && element.href && !/^#?$/.test(element.getAttribute(\"href\"))) {\n if (!nodeInfo._avoidLinks || !matches(element, nodeInfo._avoidLinks)) {\n const r = document.createRange();\n r.selectNodeContents(element);\n slice(r.getClientRects()).forEach(function(box){\n const g = new Group();\n g._pdfLink = {\n url : element.href,\n top : box.top,\n right : box.right,\n bottom : box.bottom,\n left : box.left\n };\n group.append(g);\n });\n }\n }\n\n if (boxes.length > 0 && display == \"list-item\" && !element.getAttribute(\"kendo-no-bullet\")) {\n drawBullet(boxes[0]);\n }\n\n // overflow: hidden/auto - if present, replace the group with\n // a new one clipped by the inner box.\n (function(){\n function clipit() {\n var clipPath = elementRoundBox(element, innerbox, \"padding\");\n var tmp = new Group();\n setClipping(tmp, clipPath);\n group.append(tmp);\n group = tmp;\n updateClipbox(clipPath);\n }\n if (isFormField(element)) {\n clipit();\n } else if (/^(hidden|auto|scroll)/.test(getPropertyValue(style, \"overflow\"))) {\n clipit();\n } else if (/^(hidden|auto|scroll)/.test(getPropertyValue(style, \"overflow-x\"))) {\n clipit();\n } else if (/^(hidden|auto|scroll)/.test(getPropertyValue(style, \"overflow-y\"))) {\n clipit();\n }\n })();\n\n if (!maybeRenderWidget(element, group)) {\n renderContents(element, group);\n }\n\n if (microsoft && textOverflow == \"ellipsis\") {\n element.style.textOverflow = saveTextOverflow;\n }\n\n return group; // only utility functions after this line.\n\n function adjustBoxes(boxes) {\n if (/^td$/i.test(element.tagName)) {\n var table = nodeInfo.table;\n if (table && getPropertyValue(table.style, \"border-collapse\") == \"collapse\") {\n var tableBorderLeft = getBorder(table.style, \"left\").width;\n var tableBorderTop = getBorder(table.style, \"top\").width;\n // check if we need to adjust\n if (tableBorderLeft === 0 && tableBorderTop === 0) {\n return boxes; // nope\n }\n var tableBox = table.element.getBoundingClientRect();\n var firstCell = table.element.rows[0].cells[0];\n var firstCellBox = firstCell.getBoundingClientRect();\n if (firstCellBox.top == tableBox.top || firstCellBox.left == tableBox.left) {\n return slice(boxes).map(function(box){\n return {\n left : box.left + tableBorderLeft,\n top : box.top + tableBorderTop,\n right : box.right + tableBorderLeft,\n bottom : box.bottom + tableBorderTop,\n height : box.height,\n width : box.width\n };\n });\n }\n }\n }\n return boxes;\n }\n\n // this function will be called to draw each border. it\n // draws starting at origin and the resulted path must be\n // translated/rotated to be placed in the proper position.\n //\n // arguments are named as if it draws the top border:\n //\n // - `len` the length of the edge\n // - `Wtop` the width of the edge (i.e. border-top-width)\n // - `Wleft` the width of the left edge (border-left-width)\n // - `Wright` the width of the right edge\n // - `rl` and `rl` -- the border radius on the left and right\n // (objects containing x and y, for horiz/vertical radius)\n // - `transform` -- transformation to apply\n //\n function drawEdge(color, len, Wtop, Wleft, Wright, rl, rr, transform) {\n if (Wtop <= 0) {\n return;\n }\n\n var path, edge = new Group();\n setTransform(edge, transform);\n group.append(edge);\n\n sanitizeRadius(rl);\n sanitizeRadius(rr);\n\n // draw main border. this is the area without the rounded corners\n path = new Path({\n fill: { color: color },\n stroke: null\n });\n edge.append(path);\n path.moveTo(rl.x ? Math.max(rl.x, Wleft) : 0, 0)\n .lineTo(len - (rr.x ? Math.max(rr.x, Wright) : 0), 0)\n .lineTo(len - Math.max(rr.x, Wright), Wtop)\n .lineTo(Math.max(rl.x, Wleft), Wtop)\n .close();\n\n if (rl.x) {\n drawRoundCorner(Wleft, rl, [ -1, 0, 0, 1, rl.x, 0 ]);\n }\n\n if (rr.x) {\n drawRoundCorner(Wright, rr, [ 1, 0, 0, 1, len - rr.x, 0 ]);\n }\n\n // draws one round corner, starting at origin (needs to be\n // translated/rotated to be placed properly).\n function drawRoundCorner(Wright, r, transform) {\n var angle = Math.PI/2 * Wright / (Wright + Wtop);\n\n // not sanitizing this one, because negative values\n // are useful to fill the box correctly.\n var ri = {\n x: r.x - Wright,\n y: r.y - Wtop\n };\n\n var path = new Path({\n fill: { color: color },\n stroke: null\n }).moveTo(0, 0);\n\n setTransform(path, transform);\n\n addArcToPath(path, 0, r.y, {\n startAngle: -90,\n endAngle: -radiansToDegrees(angle),\n radiusX: r.x,\n radiusY: r.y\n });\n\n if (ri.x > 0 && ri.y > 0) {\n path.lineTo(ri.x * Math.cos(angle), r.y - ri.y * Math.sin(angle));\n addArcToPath(path, 0, r.y, {\n startAngle: -radiansToDegrees(angle),\n endAngle: -90,\n radiusX: ri.x,\n radiusY: ri.y,\n anticlockwise: true\n });\n }\n else if (ri.x > 0) {\n path.lineTo(ri.x, Wtop)\n .lineTo(0, Wtop);\n }\n else {\n path.lineTo(ri.x, Wtop)\n .lineTo(ri.x, 0);\n }\n\n edge.append(path.close());\n }\n }\n\n function drawBackground(box) {\n var background = new Group();\n setClipping(background, roundBox(box, rTL0, rTR0, rBR0, rBL0));\n group.append(background);\n\n if (backgroundColor) {\n var path = new Path({\n fill: { color: backgroundColor.toCssRgba() },\n stroke: null\n });\n path.moveTo(box.left, box.top)\n .lineTo(box.right, box.top)\n .lineTo(box.right, box.bottom)\n .lineTo(box.left, box.bottom)\n .close();\n background.append(path);\n }\n\n for (var i = backgroundImage.length; --i >= 0;) {\n drawOneBackground(\n background, box,\n backgroundImage[i],\n backgroundRepeat[i % backgroundRepeat.length],\n backgroundPosition[i % backgroundPosition.length],\n backgroundOrigin[i % backgroundOrigin.length],\n backgroundSize[i % backgroundSize.length]\n );\n }\n }\n\n function drawOneBackground(group, box, background, backgroundRepeat, backgroundPosition, backgroundOrigin, backgroundSize) {\n if (!background || (background == \"none\")) {\n return;\n }\n\n if (background.type == \"url\") {\n var img = IMAGE_CACHE[background.url];\n if (img && img.width > 0 && img.height > 0) {\n drawBackgroundImage(group, box, img.width, img.height, function(group, rect){\n group.append(new Image(background.url, rect));\n });\n }\n } else if (background.type == \"linear\") {\n drawBackgroundImage(group, box, box.width, box.height, gradientRenderer(background));\n } else {\n return;\n }\n\n function drawBackgroundImage(group, box, img_width, img_height, renderBG) {\n var aspect_ratio = img_width / img_height, f;\n\n // for background-origin: border-box the box is already appropriate\n var orgBox = box;\n if (backgroundOrigin == \"content-box\") {\n orgBox = innerBox(orgBox, \"border-*-width\", element);\n orgBox = innerBox(orgBox, \"padding-*\", element);\n } else if (backgroundOrigin == \"padding-box\") {\n orgBox = innerBox(orgBox, \"border-*-width\", element);\n }\n\n if (!/^\\s*auto(\\s+auto)?\\s*$/.test(backgroundSize)) {\n if (backgroundSize == \"contain\") {\n f = Math.min(orgBox.width / img_width,\n orgBox.height / img_height);\n img_width *= f;\n img_height *= f;\n }\n else if (backgroundSize == \"cover\") {\n f = Math.max(orgBox.width / img_width,\n orgBox.height / img_height);\n img_width *= f;\n img_height *= f;\n }\n else {\n var size = backgroundSize.split(/\\s+/g);\n // compute width\n if (/%$/.test(size[0])) {\n img_width = orgBox.width * parseFloat(size[0]) / 100;\n } else {\n img_width = parseFloat(size[0]);\n }\n // compute height\n if (size.length == 1 || size[1] == \"auto\") {\n img_height = img_width / aspect_ratio;\n } else if (/%$/.test(size[1])) {\n img_height = orgBox.height * parseFloat(size[1]) / 100;\n } else {\n img_height = parseFloat(size[1]);\n }\n }\n }\n\n var pos = String(backgroundPosition);\n\n // IE sometimes reports single-word positions\n // https://github.com/telerik/kendo-ui-core/issues/2786\n //\n // it seems to switch to percentages when the horizontal\n // position is not \"center\", therefore we don't handle\n // multi-word cases here. All other browsers return\n // percentages or pixels instead of keywords. At least\n // for now...\n switch (pos) {\n case \"bottom\" : pos = \"50% 100%\"; break;\n case \"top\" : pos = \"50% 0\"; break;\n case \"left\" : pos = \"0 50%\"; break;\n case \"right\" : pos = \"100% 50%\"; break;\n case \"center\" : pos = \"50% 50%\"; break;\n }\n\n pos = pos.split(/\\s+/);\n if (pos.length == 1) {\n pos[1] = \"50%\";\n }\n\n if (/%$/.test(pos[0])) {\n pos[0] = parseFloat(pos[0]) / 100 * (orgBox.width - img_width);\n } else {\n pos[0] = parseFloat(pos[0]);\n }\n if (/%$/.test(pos[1])) {\n pos[1] = parseFloat(pos[1]) / 100 * (orgBox.height - img_height);\n } else {\n pos[1] = parseFloat(pos[1]);\n }\n\n var rect = new geo.Rect([ orgBox.left + pos[0], orgBox.top + pos[1] ], [ img_width, img_height ]);\n\n // XXX: background-repeat could be implemented more\n // efficiently as a fill pattern (at least for PDF\n // output, probably SVG too).\n\n function rewX() {\n while (rect.origin.x > box.left) {\n rect.origin.x -= img_width;\n }\n }\n\n function rewY() {\n while (rect.origin.y > box.top) {\n rect.origin.y -= img_height;\n }\n }\n\n function repeatX() {\n while (rect.origin.x < box.right) {\n renderBG(group, rect.clone());\n rect.origin.x += img_width;\n }\n }\n\n if (backgroundRepeat == \"no-repeat\") {\n renderBG(group, rect);\n }\n else if (backgroundRepeat == \"repeat-x\") {\n rewX();\n repeatX();\n }\n else if (backgroundRepeat == \"repeat-y\") {\n rewY();\n while (rect.origin.y < box.bottom) {\n renderBG(group, rect.clone());\n rect.origin.y += img_height;\n }\n }\n else if (backgroundRepeat == \"repeat\") {\n rewX();\n rewY();\n var origin = rect.origin.clone();\n while (rect.origin.y < box.bottom) {\n rect.origin.x = origin.x;\n repeatX();\n rect.origin.y += img_height;\n }\n }\n }\n }\n\n function drawBullet() {\n var listStyleType = getPropertyValue(style, \"list-style-type\");\n if (listStyleType == \"none\") {\n return;\n }\n var listStylePosition = getPropertyValue(style, \"list-style-position\");\n\n function _drawBullet(f) {\n saveStyle(element, function(){\n element.style.position = \"relative\";\n var bullet = element.ownerDocument.createElement(KENDO_PSEUDO_ELEMENT);\n bullet.style.position = \"absolute\";\n bullet.style.boxSizing = \"border-box\";\n if (listStylePosition == \"outside\") {\n bullet.style.width = \"6em\";\n bullet.style.left = \"-6.8em\";\n bullet.style.textAlign = \"right\";\n } else {\n bullet.style.left = \"0px\";\n }\n f(bullet);\n element.insertBefore(bullet, element.firstChild);\n renderElement(bullet, group);\n element.removeChild(bullet);\n });\n }\n\n function elementIndex(f) {\n var a = element.parentNode.children;\n var k = element.getAttribute(\"kendo-split-index\");\n if (k != null) {\n return f(k|0, a.length);\n }\n for (var i = 0; i < a.length; ++i) {\n if (a[i] === element) {\n return f(i, a.length);\n }\n }\n }\n\n switch (listStyleType) {\n case \"circle\":\n case \"disc\":\n case \"square\":\n _drawBullet(function(bullet){\n // XXX: the science behind these values is called \"trial and error\".\n bullet.style.fontSize = \"60%\";\n bullet.style.lineHeight = \"200%\";\n bullet.style.paddingRight = \"0.5em\";\n bullet.style.fontFamily = \"DejaVu Serif\";\n bullet.innerHTML = {\n \"disc\" : \"\\u25cf\",\n \"circle\" : \"\\u25ef\",\n \"square\" : \"\\u25a0\"\n }[listStyleType];\n });\n break;\n\n case \"decimal\":\n case \"decimal-leading-zero\":\n _drawBullet(function(bullet){\n elementIndex(function(idx){\n ++idx;\n if (listStyleType == \"decimal-leading-zero\" && idx < 10) {\n idx = \"0\" + idx;\n }\n bullet.innerHTML = idx + \".\";\n });\n });\n break;\n\n case \"lower-roman\":\n case \"upper-roman\":\n _drawBullet(function(bullet){\n elementIndex(function(idx){\n idx = arabicToRoman(idx + 1);\n if (listStyleType == \"upper-roman\") {\n idx = idx.toUpperCase();\n }\n bullet.innerHTML = idx + \".\";\n });\n });\n break;\n\n case \"lower-latin\":\n case \"lower-alpha\":\n case \"upper-latin\":\n case \"upper-alpha\":\n _drawBullet(function(bullet){\n elementIndex(function(idx){\n idx = alphaNumeral(idx);\n if (/^upper/i.test(listStyleType)) {\n idx = idx.toUpperCase();\n }\n bullet.innerHTML = idx + \".\";\n });\n });\n break;\n }\n }\n\n // draws a single border box\n function drawOneBox(box, isFirst, isLast) {\n if (box.width === 0 || box.height === 0) {\n return;\n }\n\n drawBackground(box);\n\n var shouldDrawLeft = (left.width > 0 && ((isFirst && dir == \"ltr\") || (isLast && dir == \"rtl\")));\n var shouldDrawRight = (right.width > 0 && ((isLast && dir == \"ltr\") || (isFirst && dir == \"rtl\")));\n\n // The most general case is that the 4 borders have different widths and border\n // radiuses. The way that is handled is by drawing 3 Paths for each border: the\n // straight line, and two round corners which represent half of the entire rounded\n // corner. To simplify code those shapes are drawed at origin (by the drawEdge\n // function), then translated/rotated into the right position.\n //\n // However, this leads to poor results due to rounding in the simpler cases where\n // borders are straight lines. Therefore we handle a few such cases separately with\n // straight lines. C^wC^wC^w -- nope, scratch that. poor rendering was because of a bug\n // in Chrome (getClientRects() returns rounded integer values rather than exact floats.\n // web dev is still a ghetto.)\n\n // first, just in case there is no border...\n if (top.width === 0 && left.width === 0 && right.width === 0 && bottom.width === 0) {\n return;\n }\n\n // START paint borders\n // if all borders have equal colors...\n if (top.color == right.color && top.color == bottom.color && top.color == left.color) {\n\n // if same widths too, we can draw the whole border by stroking a single path.\n if (top.width == right.width && top.width == bottom.width && top.width == left.width)\n {\n if (shouldDrawLeft && shouldDrawRight) {\n // reduce box by half the border width, so we can draw it by stroking.\n box = innerBox(box, top.width/2);\n\n // adjust the border radiuses, again by top.width/2, and make the path element.\n var path = elementRoundBox(element, box, top.width/2);\n path.options.stroke = {\n color: top.color,\n width: top.width\n };\n group.append(path);\n return;\n }\n }\n }\n\n // if border radiuses are zero and widths are at most one pixel, we can again use simple\n // paths.\n if (rTL0.x === 0 && rTR0.x === 0 && rBR0.x === 0 && rBL0.x === 0) {\n // alright, 1.9px will do as well. the difference in color blending should not be\n // noticeable.\n if (top.width < 2 && left.width < 2 && right.width < 2 && bottom.width < 2) {\n // top border\n if (top.width > 0) {\n group.append(\n new Path({\n stroke: { width: top.width, color: top.color }\n })\n .moveTo(box.left, box.top + top.width/2)\n .lineTo(box.right, box.top + top.width/2)\n );\n }\n\n // bottom border\n if (bottom.width > 0) {\n group.append(\n new Path({\n stroke: { width: bottom.width, color: bottom.color }\n })\n .moveTo(box.left, box.bottom - bottom.width/2)\n .lineTo(box.right, box.bottom - bottom.width/2)\n );\n }\n\n // left border\n if (shouldDrawLeft) {\n group.append(\n new Path({\n stroke: { width: left.width, color: left.color }\n })\n .moveTo(box.left + left.width/2, box.top)\n .lineTo(box.left + left.width/2, box.bottom)\n );\n }\n\n // right border\n if (shouldDrawRight) {\n group.append(\n new Path({\n stroke: { width: right.width, color: right.color }\n })\n .moveTo(box.right - right.width/2, box.top)\n .lineTo(box.right - right.width/2, box.bottom)\n );\n }\n\n return;\n }\n }\n // END paint borders\n\n var tmp = adjustBorderRadiusForBox(box, rTL0, rTR0, rBR0, rBL0);\n var rTL = tmp.tl;\n var rTR = tmp.tr;\n var rBR = tmp.br;\n var rBL = tmp.bl;\n\n // top border\n drawEdge(top.color,\n box.width, top.width, left.width, right.width,\n rTL, rTR,\n [ 1, 0, 0, 1, box.left, box.top ]);\n\n // bottom border\n drawEdge(bottom.color,\n box.width, bottom.width, right.width, left.width,\n rBR, rBL,\n [ -1, 0, 0, -1, box.right, box.bottom ]);\n\n // for left/right borders we need to invert the border-radiuses\n function inv(p) {\n return { x: p.y, y: p.x };\n }\n\n // left border\n drawEdge(left.color,\n box.height, left.width, bottom.width, top.width,\n inv(rBL), inv(rTL),\n [ 0, -1, 1, 0, box.left, box.bottom ]);\n\n // right border\n drawEdge(right.color,\n box.height, right.width, top.width, bottom.width,\n inv(rTR), inv(rBR),\n [ 0, 1, -1, 0, box.right, box.top ]);\n }\n}\n\nfunction gradientRenderer(gradient) {\n return function(group, rect) {\n var width = rect.width(), height = rect.height();\n\n switch (gradient.type) {\n case \"linear\":\n\n // figure out the angle.\n var angle = gradient.angle != null ? gradient.angle : Math.PI;\n switch (gradient.to) {\n case \"top\":\n angle = 0;\n break;\n case \"left\":\n angle = -Math.PI / 2;\n break;\n case \"bottom\":\n angle = Math.PI;\n break;\n case \"right\":\n angle = Math.PI / 2;\n break;\n case \"top left\": case \"left top\":\n angle = -Math.atan2(height, width);\n break;\n case \"top right\": case \"right top\":\n angle = Math.atan2(height, width);\n break;\n case \"bottom left\": case \"left bottom\":\n angle = Math.PI + Math.atan2(height, width);\n break;\n case \"bottom right\": case \"right bottom\":\n angle = Math.PI - Math.atan2(height, width);\n break;\n }\n\n if (gradient.reverse) {\n angle -= Math.PI;\n }\n\n // limit the angle between 0..2PI\n angle %= 2 * Math.PI;\n if (angle < 0) {\n angle += 2 * Math.PI;\n }\n\n // compute gradient's start/end points. here len is the length of the gradient line\n // and x,y is the end point relative to the center of the rectangle in conventional\n // (math) axis direction.\n\n // this is the original (unscaled) length of the gradient line. needed to deal with\n // absolutely positioned color stops. formula from the CSS spec:\n // http://dev.w3.org/csswg/css-images-3/#linear-gradient-syntax\n var pxlen = Math.abs(width * Math.sin(angle)) + Math.abs(height * Math.cos(angle));\n\n // The math below is pretty simple, but it took a while to figure out. We compute x\n // and y, the *end* of the gradient line. However, we want to transform them into\n // element-based coordinates (SVG's gradientUnits=\"objectBoundingBox\"). That means,\n // x=0 is the left edge, x=1 is the right edge, y=0 is the top edge and y=1 is the\n // bottom edge.\n //\n // A naive approach would use the original angle for these calculations. Say we'd\n // like to draw a gradient angled at 45deg in a 100x400 box. When we use\n // objectBoundingBox, the renderer will draw it in a 1x1 *square* box, and then\n // scale that to the desired dimensions. The 45deg angle will look more like 70deg\n // after scaling. SVG (http://www.w3.org/TR/SVG/pservers.html#LinearGradients) says\n // the following:\n //\n // When gradientUnits=\"objectBoundingBox\" and 'gradientTransform' is the\n // identity matrix, the normal of the linear gradient is perpendicular to the\n // gradient vector in object bounding box space (i.e., the abstract coordinate\n // system where (0,0) is at the top/left of the object bounding box and (1,1) is\n // at the bottom/right of the object bounding box). When the object's bounding\n // box is not square, the gradient normal which is initially perpendicular to\n // the gradient vector within object bounding box space may render\n // non-perpendicular relative to the gradient vector in user space. If the\n // gradient vector is parallel to one of the axes of the bounding box, the\n // gradient normal will remain perpendicular. This transformation is due to\n // application of the non-uniform scaling transformation from bounding box space\n // to user space.\n //\n // which is an extremely long and confusing way to tell what I just said above.\n //\n // For this reason we need to apply the reverse scaling to the original angle, so\n // that when it'll finally be rendered it'll actually be at the desired slope. Now\n // I'll let you figure out the math yourself.\n\n var scaledAngle = Math.atan(width * Math.tan(angle) / height);\n var sin = Math.sin(scaledAngle), cos = Math.cos(scaledAngle);\n var len = Math.abs(sin) + Math.abs(cos);\n var x = len/2 * sin;\n var y = len/2 * cos;\n\n // Because of the arctangent, our scaledAngle ends up between -PI/2..PI/2, possibly\n // losing the intended direction of the gradient. The following fixes it.\n if (angle > Math.PI/2 && angle <= 3*Math.PI/2) {\n x = -x;\n y = -y;\n }\n\n // compute the color stops.\n var implicit = [], right = 0;\n var stops = gradient.stops.map(function(s, i){\n var offset = s.percent;\n if (offset) {\n offset = parseFloat(offset) / 100;\n } else if (s.length) {\n offset = parseFloat(s.length) / pxlen;\n } else if (i === 0) {\n offset = 0;\n } else if (i == gradient.stops.length - 1) {\n offset = 1;\n }\n var stop = {\n color: s.color.toCssRgba(),\n offset: offset\n };\n if (offset != null) {\n right = offset;\n // fix implicit offsets\n implicit.forEach(function(s, i){\n var stop = s.stop;\n stop.offset = s.left + (right - s.left) * (i + 1) / (implicit.length + 1);\n });\n implicit = [];\n } else {\n implicit.push({ left: right, stop: stop });\n }\n return stop;\n });\n\n var start = [ 0.5 - x, 0.5 + y ];\n var end = [ 0.5 + x, 0.5 - y ];\n\n // finally, draw it.\n group.append(\n Path.fromRect(rect)\n .stroke(null)\n .fill(new LinearGradient({\n start : start,\n end : end,\n stops : stops,\n userSpace : false\n }))\n );\n break;\n case \"radial\":\n // XXX:\n if (window.console && window.console.log) {\n window.console.log(\"Radial gradients are not yet supported in HTML renderer\");\n }\n break;\n }\n };\n}\n\nfunction maybeRenderWidget(element, group) {\n var visual;\n\n if (element._kendoExportVisual) {\n visual = element._kendoExportVisual();\n } else if (window.kendo && window.kendo.jQuery && element.getAttribute(window.kendo.attr(\"role\"))) {\n var widget = window.kendo.widgetInstance(window.kendo.jQuery(element));\n if (widget && (widget.exportDOMVisual || widget.exportVisual)) {\n if (widget.exportDOMVisual) {\n visual = widget.exportDOMVisual();\n } else {\n visual = widget.exportVisual();\n }\n }\n }\n\n if (!visual) {\n return false;\n }\n\n var wrap = new Group();\n wrap.children.push(visual);\n\n var bbox = element.getBoundingClientRect();\n wrap.transform(geo.transform().translate(bbox.left, bbox.top));\n\n group.append(wrap);\n\n return true;\n}\n\nfunction renderImage(element, url, group) {\n var box = getContentBox(element);\n var rect = new geo.Rect([ box.left, box.top ], [ box.width, box.height ]);\n var image = new Image(url, rect);\n setClipping(image, elementRoundBox(element, box, \"content\"));\n group.append(image);\n}\n\nfunction zIndexSort(a, b) {\n var sa = getComputedStyle(a);\n var sb = getComputedStyle(b);\n var za = parseFloat(getPropertyValue(sa, \"z-index\"));\n var zb = parseFloat(getPropertyValue(sb, \"z-index\"));\n var pa = getPropertyValue(sa, \"position\");\n var pb = getPropertyValue(sb, \"position\");\n if (isNaN(za) && isNaN(zb)) {\n if ((/static|absolute/.test(pa)) && (/static|absolute/.test(pb))) {\n return 0;\n }\n if (pa == \"static\") {\n return -1;\n }\n if (pb == \"static\") {\n return 1;\n }\n return 0;\n }\n if (isNaN(za)) {\n return zb === 0 ? 0 : zb > 0 ? -1 : 1;\n }\n if (isNaN(zb)) {\n return za === 0 ? 0 : za > 0 ? 1 : -1;\n }\n return parseFloat(za) - parseFloat(zb);\n}\n\nfunction isFormField(element) {\n return /^(?:textarea|select|input)$/i.test(element.tagName);\n}\n\nfunction getSelectedOption(element) {\n if (element.selectedOptions && element.selectedOptions.length > 0) {\n return element.selectedOptions[0];\n }\n return element.options[element.selectedIndex];\n}\n\nfunction renderCheckbox(element, group) {\n var style = getComputedStyle(element);\n var color = getPropertyValue(style, \"color\");\n var box = element.getBoundingClientRect();\n if (element.type == \"checkbox\") {\n group.append(\n Path.fromRect(\n new geo.Rect([ box.left+1, box.top+1 ],\n [ box.width-2, box.height-2 ])\n ).stroke(color, 1)\n );\n if (element.checked) {\n // fill a rectangle inside? looks kinda ugly.\n // group.append(\n // Path.fromRect(\n // new geo.Rect([ box.left+4, box.top+4 ],\n // [ box.width-8, box.height-8])\n // ).fill(color).stroke(null)\n // );\n\n // let's draw a checkmark instead. artistic, eh?\n group.append(\n new Path()\n .stroke(color, 1.2)\n .moveTo(box.left + 0.22 * box.width,\n box.top + 0.55 * box.height)\n .lineTo(box.left + 0.45 * box.width,\n box.top + 0.75 * box.height)\n .lineTo(box.left + 0.78 * box.width,\n box.top + 0.22 * box.width)\n );\n }\n } else {\n group.append(\n new Circle(\n new geo.Circle([\n (box.left + box.right) / 2,\n (box.top + box.bottom) / 2\n ], Math.min(box.width-2, box.height-2) / 2)\n ).stroke(color, 1)\n );\n if (element.checked) {\n group.append(\n new Circle(\n new geo.Circle([\n (box.left + box.right) / 2,\n (box.top + box.bottom) / 2\n ], Math.min(box.width-8, box.height-8) / 2)\n ).fill(color).stroke(null)\n );\n }\n }\n}\n\nfunction renderFormField(element, group) {\n var tag = element.tagName.toLowerCase();\n if (tag == \"input\" && (element.type == \"checkbox\" || element.type == \"radio\")) {\n return renderCheckbox(element, group);\n }\n var p = element.parentNode;\n var doc = element.ownerDocument;\n var el = doc.createElement(KENDO_PSEUDO_ELEMENT);\n var option;\n el.style.cssText = getCssText(getComputedStyle(element));\n if (tag == \"input\") {\n el.style.whiteSpace = \"pre\";\n }\n if (tag == \"select\" || tag == \"textarea\") {\n el.style.overflow = \"auto\";\n }\n if (tag == \"select\") {\n if (element.multiple) {\n for (var i = 0; i < element.options.length; ++i) {\n option = doc.createElement(KENDO_PSEUDO_ELEMENT);\n option.style.cssText = getCssText(getComputedStyle(element.options[i]));\n option.style.display = \"block\"; // IE9 messes up without this\n option.textContent = element.options[i].textContent;\n el.appendChild(option);\n }\n } else {\n option = getSelectedOption(element);\n if (option) {\n el.textContent = option.textContent;\n }\n }\n } else {\n el.textContent = element.value;\n }\n p.insertBefore(el, element);\n el.scrollLeft = element.scrollLeft;\n el.scrollTop = element.scrollTop;\n\n // must temporarily hide the original element, otherwise it\n // may affect layout of the fake element we want to render.\n element.style.display = \"none\";\n\n renderContents(el, group);\n element.style.display = \"\";\n p.removeChild(el);\n}\n\nfunction renderContents(element, group) {\n if (nodeInfo._stackingContext.element === element) {\n // the group that was set in pushNodeInfo might have\n // changed due to clipping/transforms, update it here.\n nodeInfo._stackingContext.group = group;\n }\n switch (element.tagName.toLowerCase()) {\n case \"img\":\n renderImage(element, element.src, group);\n break;\n\n case \"svg\":\n let xml = new window.XMLSerializer().serializeToString(element);\n let dataURL = `data:image/svg+xml;base64,${encodeBase64(xml)}`;\n renderImage(element, dataURL, group);\n break;\n\n case \"canvas\":\n try {\n renderImage(element, element.toDataURL(\"image/png\"), group);\n } catch (ex) {\n // tainted; can't draw it, ignore.\n }\n break;\n\n case \"textarea\":\n case \"input\":\n case \"select\":\n renderFormField(element, group);\n break;\n\n default:\n var children = [], floats = [], positioned = [];\n for (var i = element.firstChild; i; i = i.nextSibling) {\n switch (i.nodeType) {\n case 3: // Text\n if (/\\S/.test(i.data)) {\n renderText(element, i, group);\n }\n break;\n case 1: // Element\n var style = getComputedStyle(i);\n var floating = getPropertyValue(style, \"float\");\n var position = getPropertyValue(style, \"position\");\n if (position != \"static\") {\n positioned.push(i);\n }\n else if (floating != \"none\") {\n floats.push(i);\n } else {\n children.push(i);\n }\n break;\n }\n }\n\n mergeSort(children, zIndexSort).forEach(function(el){ renderElement(el, group); });\n mergeSort(floats, zIndexSort).forEach(function(el){ renderElement(el, group); });\n mergeSort(positioned, zIndexSort).forEach(function(el){ renderElement(el, group); });\n }\n}\n\nfunction renderText(element, node, group) {\n if (emptyClipbox()) {\n return;\n }\n var style = getComputedStyle(element);\n\n if (parseFloat(getPropertyValue(style, \"text-indent\")) < -500) {\n // assume it should not be displayed. the slider's\n // draggable handle displays a Drag text for some reason,\n // having text-indent: -3333px.\n return;\n }\n\n var text = node.data;\n var start = 0;\n var end = text.search(/\\S\\s*$/) + 1;\n\n if (!end) {\n return; // whitespace-only node\n }\n\n var fontSize = getPropertyValue(style, \"font-size\");\n var lineHeight = getPropertyValue(style, \"line-height\");\n\n // simply getPropertyValue(\"font\") doesn't work in Firefox :-\\\n var font = [\n getPropertyValue(style, \"font-style\"),\n getPropertyValue(style, \"font-variant\"),\n getPropertyValue(style, \"font-weight\"),\n fontSize, // no need for line height here; it breaks layout in FF\n getPropertyValue(style, \"font-family\")\n ].join(\" \");\n\n fontSize = parseFloat(fontSize);\n lineHeight = parseFloat(lineHeight);\n\n if (fontSize === 0) {\n return;\n }\n\n var color = getPropertyValue(style, \"color\");\n var range = element.ownerDocument.createRange();\n var align = getPropertyValue(style, \"text-align\");\n var isJustified = align == \"justify\";\n var columnCount = getPropertyValue(style, \"column-count\", 1);\n var whiteSpace = getPropertyValue(style, \"white-space\");\n var textTransform = getPropertyValue(style, \"text-transform\");\n\n // A line of 500px, with a font of 12px, contains an average of 80 characters, but since we\n // err, we'd like to guess a bigger number rather than a smaller one. Multiplying by 5\n // seems to be a good option.\n var estimateLineLength = element.getBoundingClientRect().width / fontSize * 5;\n if (estimateLineLength === 0) {\n estimateLineLength = 500;\n }\n\n // we'll maintain this so we can workaround bugs in Chrome's Range.getClientRects\n // https://github.com/telerik/kendo/issues/5740\n var prevLineBottom = null;\n\n var underline = nodeInfo[\"underline\"];\n var lineThrough = nodeInfo[\"line-through\"];\n var overline = nodeInfo[\"overline\"];\n var hasDecoration = underline || lineThrough || overline;\n\n // doChunk returns true when all text has been rendered\n while (!doChunk()) {}\n\n if (hasDecoration) {\n range.selectNode(node);\n slice(range.getClientRects()).forEach(decorate);\n }\n\n return; // only function declarations after this line\n\n function actuallyGetRangeBoundingRect(range) {\n // XXX: to be revised when this Chrome bug is fixed:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=612459\n if (microsoft || browser.chrome) {\n // Workaround browser bugs: IE and Chrome would sometimes\n // return 0 or 1-width rectangles before or after the main\n // one. https://github.com/telerik/kendo/issues/4674\n\n // Actually Chrome 50 got worse, since the rectangles can now have the width of a\n // full character, making it hard to tell whether it's a bogus rectangle or valid\n // selection location. The workaround is to ignore rectangles that fall on the\n // previous line. https://github.com/telerik/kendo/issues/5740\n var rectangles = range.getClientRects(), box = {\n top : Infinity,\n right : -Infinity,\n bottom : -Infinity,\n left : Infinity\n }, done = false;\n for (var i = 0; i < rectangles.length; ++i) {\n var b = rectangles[i];\n if (b.width <= 1 || b.bottom === prevLineBottom) {\n continue; // bogus rectangle\n }\n box.left = Math.min(b.left , box.left);\n box.top = Math.min(b.top , box.top);\n box.right = Math.max(b.right , box.right);\n box.bottom = Math.max(b.bottom , box.bottom);\n done = true;\n }\n if (!done) {\n return range.getBoundingClientRect();\n }\n box.width = box.right - box.left;\n box.height = box.bottom - box.top;\n return box;\n }\n return range.getBoundingClientRect();\n }\n\n // Render a chunk of text, typically one line (but for justified text we render each word as\n // a separate Text object, because spacing is variable). Returns true when it finished the\n // current node. After each chunk it updates `start` to just after the last rendered\n // character.\n function doChunk() {\n var origStart = start;\n var box, pos = text.substr(start).search(/\\S/);\n start += pos;\n if (pos < 0 || start >= end) {\n return true;\n }\n\n // Select a single character to determine the height of a line of text. The box.bottom\n // will be essential for us to figure out where the next line begins.\n range.setStart(node, start);\n range.setEnd(node, start + 1);\n box = actuallyGetRangeBoundingRect(range);\n\n // for justified text we must split at each space, because space has variable width.\n var found = false;\n if (isJustified || columnCount > 1) {\n pos = text.substr(start).search(/\\s/);\n if (pos >= 0) {\n // we can only split there if it's on the same line, otherwise we'll fall back\n // to the default mechanism (see findEOL below).\n range.setEnd(node, start + pos);\n var r = actuallyGetRangeBoundingRect(range);\n if (r.bottom == box.bottom) {\n box = r;\n found = true;\n start += pos;\n }\n }\n }\n\n if (!found) {\n // This code does three things: (1) it selects one line of text in `range`, (2) it\n // leaves the bounding rect of that line in `box` and (3) it returns the position\n // just after the EOL. We know where the line starts (`start`) but we don't know\n // where it ends. To figure this out, we select a piece of text and look at the\n // bottom of the bounding box. If it changes, we have more than one line selected\n // and should retry with a smaller selection.\n //\n // To speed things up, we first try to select all text in the node (`start` ->\n // `end`). If there's more than one line there, then select only half of it. And\n // so on. When we find a value for `end` that fits in one line, we try increasing\n // it (also in halves) until we get to the next line. The algorithm stops when the\n // right side of the bounding box does not change.\n //\n // One more thing to note is that everything happens in a single Text DOM node.\n // There's no other tags inside it, therefore the left/top coordinates of the\n // bounding box will not change.\n pos = (function findEOL(min, eol, max){\n range.setEnd(node, eol);\n var r = actuallyGetRangeBoundingRect(range);\n if (r.bottom != box.bottom && min < eol) {\n return findEOL(min, (min + eol) >> 1, eol);\n } else if (r.right != box.right) {\n box = r;\n if (eol < max) {\n return findEOL(eol, (eol + max) >> 1, max);\n } else {\n return eol;\n }\n } else {\n return eol;\n }\n })(start, Math.min(end, start + estimateLineLength), end);\n\n if (pos == start) {\n // if EOL is at the start, then no more text fits on this line. Skip the\n // remainder of this node entirely to avoid a stack overflow.\n return true;\n }\n start = pos;\n\n pos = range.toString().search(/\\s+$/);\n if (pos === 0) {\n return false; // whitespace only; we should not get here.\n }\n if (pos > 0) {\n // eliminate trailing whitespace\n range.setEnd(node, range.startOffset + pos);\n box = actuallyGetRangeBoundingRect(range);\n }\n }\n\n // another workaround for IE: if we rely on getBoundingClientRect() we'll overlap with the bullet for LI\n // elements. Calling getClientRects() and using the *first* rect appears to give us the correct location.\n // Note: not to be used in Chrome as it randomly returns a zero-width rectangle from the previous line.\n if (microsoft) {\n box = range.getClientRects()[0];\n }\n\n var str = range.toString();\n if (!/^(?:pre|pre-wrap)$/i.test(whiteSpace)) {\n // node with non-significant space -- collapse whitespace.\n str = str.replace(/\\s+/g, \" \");\n }\n else if (/\\t/.test(str)) {\n // with significant whitespace we need to do something about literal TAB characters.\n // There's no TAB glyph in a font so they would be rendered in PDF as an empty box,\n // and the whole text will stretch to fill the original width. The core PDF lib\n // does not have sufficient context to deal with it.\n\n // calculate the starting column here, since we initially discarded any whitespace.\n var cc = 0;\n for (pos = origStart; pos < range.startOffset; ++pos) {\n var code = text.charCodeAt(pos);\n if (code == 9) {\n // when we meet a TAB we must round up to the next tab stop.\n // in all browsers TABs seem to be 8 characters.\n cc += 8 - cc % 8;\n } else if (code == 10 || code == 13) {\n // just in case we meet a newline we must restart.\n cc = 0;\n } else {\n // ordinary character --> advance one column\n cc++;\n }\n }\n\n // based on starting column, replace any TAB characters in the string we actually\n // have to display with spaces so that they align to columns multiple of 8.\n while ((pos = str.search(\"\\t\")) >= 0) {\n var indent = \" \".substr(0, 8 - (cc + pos) % 8);\n str = str.substr(0, pos) + indent + str.substr(pos + 1);\n }\n }\n\n if (!found) {\n prevLineBottom = box.bottom;\n }\n drawText(str, box);\n }\n\n function drawText(str, box) {\n // In IE the box height will be approximately lineHeight, while in\n // other browsers it'll (correctly) be the height of the bounding\n // box for the current text/font. Which is to say, IE sucks again.\n // The only good solution I can think of is to measure the text\n // ourselves and center the bounding box.\n if (microsoft && !isNaN(lineHeight)) {\n var height = getFontHeight(font);\n var top = (box.top + box.bottom - height) / 2;\n box = {\n top : top,\n right : box.right,\n bottom : top + height,\n left : box.left,\n height : height,\n width : box.right - box.left\n };\n }\n\n // var path = new Path({ stroke: { color: \"red\" }});\n // path.moveTo(box.left, box.top)\n // .lineTo(box.right, box.top)\n // .lineTo(box.right, box.bottom)\n // .lineTo(box.left, box.bottom)\n // .close();\n // group.append(path);\n\n switch (textTransform) {\n case \"uppercase\":\n str = str.toUpperCase();\n break;\n case \"lowercase\":\n str = str.toLowerCase();\n break;\n case \"capitalize\":\n str = str.replace(/(?:^|\\s)\\S/g, l => l.toUpperCase());\n break;\n }\n\n var text = new TextRect(\n str, new geo.Rect([ box.left, box.top ],\n [ box.width, box.height ]),\n {\n font: font,\n fill: { color: color }\n }\n );\n group.append(text);\n }\n\n function decorate(box) {\n line(underline, box.bottom);\n line(lineThrough, box.bottom - box.height / 2.7);\n line(overline, box.top);\n function line(color, ypos) {\n if (color) {\n var width = fontSize / 12;\n var path = new Path({ stroke: {\n width: width,\n color: color\n }});\n\n ypos -= width;\n path.moveTo(box.left, ypos)\n .lineTo(box.right, ypos);\n group.append(path);\n }\n }\n }\n}\n\nfunction groupInStackingContext(element, group, zIndex) {\n var main;\n if (zIndex != \"auto\") {\n // use the current stacking context\n main = nodeInfo._stackingContext.group;\n zIndex = parseFloat(zIndex);\n } else {\n // normal flow — use given container. we still have to\n // figure out where should we insert this element with the\n // assumption that its z-index is zero, as the group might\n // already contain elements with higher z-index.\n main = group;\n zIndex = 0;\n }\n var a = main.children;\n for (var i = 0; i < a.length; ++i) {\n if (a[i]._dom_zIndex != null && a[i]._dom_zIndex > zIndex) {\n break;\n }\n }\n\n var tmp = new Group();\n main.insert(i, tmp);\n tmp._dom_zIndex = zIndex;\n\n if (main !== group) {\n // console.log(\"Placing\", element, \"in\", nodeInfo._stackingContext.element, \"at position\", i, \" / \", a.length);\n // console.log(a.slice(i+1));\n\n // if (nodeInfo._matrix) {\n // tmp.transform(nodeInfo._matrix);\n // }\n if (nodeInfo._clipbox) {\n var m = nodeInfo._matrix.invert();\n var r = nodeInfo._clipbox.transformCopy(m);\n setClipping(tmp, Path.fromRect(r));\n // console.log(r);\n // tmp.append(Path.fromRect(r));\n // tmp.append(new Text(element.className || element.id, r.topLeft()));\n }\n }\n\n return tmp;\n}\n\nfunction renderElement(element, container) {\n var style = getComputedStyle(element);\n\n updateCounters(style);\n\n if (/^(style|script|link|meta|iframe|col|colgroup)$/i.test(element.tagName)) {\n return;\n }\n\n if (nodeInfo._clipbox == null) {\n return;\n }\n\n var opacity = parseFloat(getPropertyValue(style, \"opacity\"));\n var visibility = getPropertyValue(style, \"visibility\");\n var display = getPropertyValue(style, \"display\");\n\n if (opacity === 0 || visibility == \"hidden\" || display == \"none\") {\n return;\n }\n\n var tr = getTransform(style);\n var group;\n\n var zIndex = getPropertyValue(style, \"z-index\");\n if ((tr || opacity < 1) && zIndex == \"auto\") {\n zIndex = 0;\n }\n group = groupInStackingContext(element, container, zIndex);\n\n // XXX: remove at some point\n // group._pdfElement = element;\n // group.options._pdfDebug = \"\";\n // if (element.id) {\n // group.options._pdfDebug = \"#\" + element.id;\n // }\n // if (element.className) {\n // group.options._pdfDebug += \".\" + element.className.split(\" \").join(\".\");\n // }\n\n if (opacity < 1) {\n group.opacity(opacity * group.opacity());\n }\n\n pushNodeInfo(element, style, group);\n\n if (!tr) {\n _renderWithPseudoElements(element, group);\n }\n else {\n saveStyle(element, function(){\n // must clear transform, so getBoundingClientRect returns correct values.\n pleaseSetPropertyValue(element.style, \"transform\", \"none\", \"important\");\n\n // must also clear transitions, so correct values are returned *immediately*\n pleaseSetPropertyValue(element.style, \"transition\", \"none\", \"important\");\n\n // the presence of any transform makes it behave like it had position: relative,\n // because why not.\n // http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/\n if (getPropertyValue(style, \"position\") == \"static\") {\n // but only if it's not already positioned. :-/\n pleaseSetPropertyValue(element.style, \"position\", \"relative\", \"important\");\n }\n\n // must translate to origin before applying the CSS\n // transformation, then translate back.\n var bbox = element.getBoundingClientRect();\n var x = bbox.left + tr.origin[0];\n var y = bbox.top + tr.origin[1];\n var m = [ 1, 0, 0, 1, -x, -y ];\n m = mmul(m, tr.matrix);\n m = mmul(m, [ 1, 0, 0, 1, x, y ]);\n m = setTransform(group, m);\n\n nodeInfo._matrix = nodeInfo._matrix.multiplyCopy(m);\n\n _renderWithPseudoElements(element, group);\n });\n }\n\n popNodeInfo();\n\n //drawDebugBox(element.getBoundingClientRect(), container);\n}\n\n// function drawDebugBox(box, group, color) {\n// var path = Path.fromRect(new geo.Rect([ box.left, box.top ], [ box.width, box.height ]));\n// if (color) {\n// path.stroke(color);\n// }\n// group.append(path);\n// }\n\n// function dumpTextNode(node) {\n// var txt = node.data.replace(/^\\s+/, \"\");\n// if (txt.length < 100) {\n// console.log(node.data.length + \": |\" + txt);\n// } else {\n// console.log(node.data.length + \": |\" + txt.substr(0, 50) + \"|...|\" + txt.substr(-50));\n// }\n// }\n\nfunction mmul(a, b) {\n var a1 = a[0], b1 = a[1], c1 = a[2], d1 = a[3], e1 = a[4], f1 = a[5];\n var a2 = b[0], b2 = b[1], c2 = b[2], d2 = b[3], e2 = b[4], f2 = b[5];\n return [\n a1*a2 + b1*c2, a1*b2 + b1*d2,\n c1*a2 + d1*c2, c1*b2 + d1*d2,\n e1*a2 + f1*c2 + e2, e1*b2 + f1*d2 + f2\n ];\n}\n\nexport { drawDOM, drawText, getFontFaces };\n","import Matrix from '../geometry/matrix';\nimport toMatrix from '../geometry/to-matrix';\n\nconst IDENTITY_MATRIX_HASH = Matrix.IDENTITY.toString();\n\nconst measurable = TBase => (\n class extends TBase {\n bbox(transformation) {\n const combinedMatrix = toMatrix(this.currentTransform(transformation));\n const matrixHash = combinedMatrix ? combinedMatrix.toString() : IDENTITY_MATRIX_HASH;\n let bbox;\n\n if (this._bboxCache && this._matrixHash === matrixHash) {\n bbox = this._bboxCache.clone();\n } else {\n bbox = this._bbox(combinedMatrix);\n this._bboxCache = bbox ? bbox.clone() : null;\n this._matrixHash = matrixHash;\n }\n\n const strokeWidth = this.options.get(\"stroke.width\");\n if (strokeWidth && bbox) {\n bbox.expand(strokeWidth / 2);\n }\n\n return bbox;\n }\n\n geometryChange() {\n delete this._bboxCache;\n this.trigger(\"geometryChange\", {\n element: this\n });\n }\n }\n);\n\nexport default measurable;","import { defined } from '../util';\n\nconst GRADIENT = \"Gradient\";\n\nconst paintable = TBase => (\n class extends TBase {\n fill(color, opacity) {\n const options = this.options;\n\n if (defined(color)) {\n if (color && color.nodeType !== GRADIENT) {\n const newFill = {\n color: color\n };\n if (defined(opacity)) {\n newFill.opacity = opacity;\n }\n options.set(\"fill\", newFill);\n } else {\n options.set(\"fill\", color);\n }\n\n return this;\n }\n\n return options.get(\"fill\");\n }\n\n stroke(color, width, opacity) {\n if (defined(color)) {\n this.options.set(\"stroke.color\", color);\n\n if (defined(width)) {\n this.options.set(\"stroke.width\", width);\n }\n\n if (defined(opacity)) {\n this.options.set(\"stroke.opacity\", opacity);\n }\n\n return this;\n }\n\n return this.options.get(\"stroke\");\n }\n}\n);\n\nexport default paintable;\n","const traversable = (TBase, childrenField) => (\n class extends TBase {\n traverse(callback) {\n const children = this[childrenField];\n\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n\n if (child.traverse) {\n child.traverse(callback);\n } else {\n callback(child);\n }\n }\n\n return this;\n }\n }\n);\n\nexport default traversable;\n","function setAccessor(field) {\n return function(value) {\n if (this[field] !== value) {\n this[field] = value;\n this.geometryChange();\n }\n\n return this;\n };\n}\n\nfunction getAccessor(field) {\n return function() {\n return this[field];\n };\n}\n\nfunction defineAccessors(fn, fields) {\n for (let i = 0; i < fields.length; i++) {\n let name = fields[i];\n let capitalized = name.charAt(0).toUpperCase() +\n name.substring(1, name.length);\n\n fn[\"set\" + capitalized] = setAccessor(name);\n fn[\"get\" + capitalized] = getAccessor(name);\n }\n}\n\nconst withAccessors = (TBase, names) => {\n const result = class extends TBase {};\n defineAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withAccessors;\n","import { defined } from '../util';\n\nfunction geometryAccessor(name) {\n const fieldName = \"_\" + name;\n return function(value) {\n if (defined(value)) {\n this._observerField(fieldName, value);\n this.geometryChange();\n return this;\n }\n\n return this[fieldName];\n };\n}\n\nfunction defineGeometryAccessors(fn, names) {\n for (let i = 0; i < names.length; i++) {\n fn[names[i]] = geometryAccessor(names[i]);\n }\n}\n\nconst withGeometry = (TBase, names = [ \"geometry\" ]) => {\n const result = class extends TBase {};\n defineGeometryAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withGeometry;\n","import { defined } from '../util';\n\nfunction optionsAccessor(name) {\n return function(value) {\n if (defined(value)) {\n this.options.set(name, value);\n return this;\n }\n\n return this.options.get(name);\n };\n}\n\nfunction defineOptionsAccessors(fn, names) {\n for (let i = 0; i < names.length; i++) {\n fn[names[i]] = optionsAccessor(names[i]);\n }\n}\n\nconst withOptions = (TBase, names) => {\n const result = class extends TBase {};\n defineOptionsAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withOptions;\n","import { defined } from '../util';\nimport Point from '../geometry/point';\n\nfunction pointAccessor(name) {\n const fieldName = \"_\" + name;\n return function(value) {\n if (defined(value)) {\n this._observerField(fieldName, Point.create(value));\n this.geometryChange();\n return this;\n }\n\n return this[fieldName];\n };\n}\n\nfunction definePointAccessors(fn, names) {\n for (let i = 0; i < names.length; i++) {\n fn[names[i]] = pointAccessor(names[i]);\n }\n}\n\nconst withPoints = (TBase, names) => {\n const result = class extends TBase {};\n definePointAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withPoints;\n","import Point from '../geometry/point';\nimport ShapeMap from './shape-map';\n\nconst SEGMENT_REGEX = /([a-df-z]{1})([^a-df-z]*)(z)?/gi;\nconst SPLIT_REGEX = /[,\\s]?([+\\-]?(?:\\d*\\.\\d+|\\d+)(?:[eE][+\\-]?\\d+)?)/g;\nconst MOVE = \"m\";\nconst CLOSE = \"z\";\n\nfunction parseParameters(str) {\n const parameters = [];\n str.replace(SPLIT_REGEX, function(match, number) {\n parameters.push(parseFloat(number));\n });\n return parameters;\n}\n\nfunction parsePath(pathInstance, str) {\n const position = new Point();\n let previousCommand;\n\n str.replace(SEGMENT_REGEX, (match, element, params, closePath) => {\n let command = element.toLowerCase();\n const isRelative = command === element;\n const parameters = parseParameters(params.trim());\n\n if (command === MOVE) {\n if (isRelative) {\n position.x += parameters[0];\n position.y += parameters[1];\n } else {\n position.x = parameters[0];\n position.y = parameters[1];\n }\n\n pathInstance.moveTo(position.x, position.y);\n\n if (parameters.length > 2) {\n command = \"l\";\n parameters.splice(0, 2);\n }\n }\n\n if (ShapeMap[command]) {\n ShapeMap[command](\n pathInstance, {\n parameters: parameters,\n position: position,\n isRelative: isRelative,\n previousCommand: previousCommand\n }\n );\n\n if (closePath && closePath.toLowerCase() === CLOSE) {\n pathInstance.close();\n }\n } else if (command !== MOVE) {\n throw new Error(\"Error while parsing SVG path. Unsupported command: \" + command);\n }\n\n previousCommand = command;\n });\n\n return pathInstance;\n}\n\nexport default parsePath;\n\n","import Point from '../geometry/point';\nimport { last } from '../util';\n\nconst ShapeMap = {\n l: function(path, options) {\n const { parameters, position } = options;\n\n for (let i = 0; i < parameters.length; i += 2) {\n let point = new Point(parameters[i], parameters[i + 1]);\n\n if (options.isRelative) {\n point.translateWith(position);\n }\n\n path.lineTo(point.x, point.y);\n\n position.x = point.x;\n position.y = point.y;\n }\n },\n\n c: function(path, options) {\n const { parameters, position } = options;\n\n for (let i = 0; i < parameters.length; i += 6) {\n let controlOut = new Point(parameters[i], parameters[i + 1]);\n let controlIn = new Point(parameters[i + 2], parameters[i + 3]);\n let point = new Point(parameters[i + 4], parameters[i + 5]);\n if (options.isRelative) {\n controlIn.translateWith(position);\n controlOut.translateWith(position);\n point.translateWith(position);\n }\n\n path.curveTo(controlOut, controlIn, point);\n\n position.x = point.x;\n position.y = point.y;\n }\n },\n\n v: function(path, options) {\n const value = options.isRelative ? 0 : options.position.x;\n\n toLineParamaters(options.parameters, true, value);\n this.l(path, options);\n },\n\n h: function(path, options) {\n const value = options.isRelative ? 0 : options.position.y;\n\n toLineParamaters(options.parameters, false, value);\n this.l(path, options);\n },\n\n a: function(path, options) {\n const { parameters, position } = options;\n\n for (let i = 0; i < parameters.length; i += 7) {\n const radiusX = parameters[i];\n const radiusY = parameters[i + 1];\n const rotation = parameters[i + 2];\n const largeArc = parameters[i + 3];\n const swipe = parameters[i + 4];\n const endPoint = new Point(parameters[i + 5], parameters[i + 6]);\n\n if (options.isRelative) {\n endPoint.translateWith(position);\n }\n if (position.x !== endPoint.x || position.y !== endPoint.y) {\n path.arcTo(endPoint, radiusX, radiusY, largeArc, swipe, rotation);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n }\n },\n\n s: function(path, options) {\n const { parameters, position, previousCommand } = options;\n let lastControlIn;\n\n if (previousCommand === \"s\" || previousCommand === \"c\") {\n lastControlIn = last(last(path.paths).segments).controlIn();\n }\n\n for (let i = 0; i < parameters.length; i += 4) {\n let controlIn = new Point(parameters[i], parameters[i + 1]);\n let endPoint = new Point(parameters[i + 2], parameters[i + 3]);\n let controlOut;\n\n if (options.isRelative) {\n controlIn.translateWith(position);\n endPoint.translateWith(position);\n }\n\n if (lastControlIn) {\n controlOut = reflectionPoint(lastControlIn, position);\n } else {\n controlOut = position.clone();\n }\n\n lastControlIn = controlIn;\n\n path.curveTo(controlOut, controlIn, endPoint);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n },\n\n q: function(path, options) {\n const { parameters, position } = options;\n\n for (let i = 0; i < parameters.length; i += 4) {\n let controlPoint = new Point(parameters[i], parameters[i + 1]);\n let endPoint = new Point(parameters[i + 2], parameters[i + 3]);\n\n if (options.isRelative) {\n controlPoint.translateWith(position);\n endPoint.translateWith(position);\n }\n\n let cubicControlPoints = quadraticToCubicControlPoints(position, controlPoint, endPoint);\n\n path.curveTo(cubicControlPoints.controlOut, cubicControlPoints.controlIn, endPoint);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n },\n\n t: function(path, options) {\n const { parameters, position, previousCommand } = options;\n let controlPoint;\n\n if (previousCommand === \"q\" || previousCommand === \"t\") {\n let lastSegment = last(last(path.paths).segments);\n controlPoint = lastSegment.controlIn().clone()\n .translateWith(position.scaleCopy(-1 / 3))\n .scale(3 / 2);\n }\n\n for (let i = 0; i < parameters.length; i += 2) {\n let endPoint = new Point(parameters[i], parameters[i + 1]);\n if (options.isRelative) {\n endPoint.translateWith(position);\n }\n\n if (controlPoint) {\n controlPoint = reflectionPoint(controlPoint, position);\n } else {\n controlPoint = position.clone();\n }\n\n let cubicControlPoints = quadraticToCubicControlPoints(position, controlPoint, endPoint);\n\n path.curveTo(cubicControlPoints.controlOut, cubicControlPoints.controlIn, endPoint);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n }\n};\n\nfunction toLineParamaters(parameters, isVertical, value) {\n const insertPosition = isVertical ? 0 : 1;\n\n for (let i = 0; i < parameters.length; i += 2) {\n parameters.splice(i + insertPosition, 0, value);\n }\n}\n\nfunction reflectionPoint(point, center) {\n if (point && center) {\n return center.scaleCopy(2).translate(-point.x, -point.y);\n }\n}\n\nconst third = 1 / 3;\n\nfunction quadraticToCubicControlPoints(position, controlPoint, endPoint) {\n const scaledPoint = controlPoint.clone().scale(2 / 3);\n return {\n controlOut: scaledPoint.clone().translateWith(position.scaleCopy(third)),\n controlIn: scaledPoint.translateWith(endPoint.scaleCopy(third))\n };\n}\n\nexport default ShapeMap;","/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\nimport { BinaryStream, ucs2encode, base64ToUint8Array, HAS_TYPED_ARRAYS } from \"./utils\";\nimport { support } from '../common';\nimport { TTFFont } from \"./ttf\";\nimport { deflate, supportsDeflate } from './deflate';\nimport { encodeUTF16BE, BOM } from \"../util/encode-utf\";\nimport { encodeBase64 } from \"../util\";\n\nconst browser = support.browser;\nconst NL = \"\\n\";\n\nvar RESOURCE_COUNTER = 0;\n\nconst PAPER_SIZE = {\n a0 : [ 2383.94 , 3370.39 ],\n a1 : [ 1683.78 , 2383.94 ],\n a2 : [ 1190.55 , 1683.78 ],\n a3 : [ 841.89 , 1190.55 ],\n a4 : [ 595.28 , 841.89 ],\n a5 : [ 419.53 , 595.28 ],\n a6 : [ 297.64 , 419.53 ],\n a7 : [ 209.76 , 297.64 ],\n a8 : [ 147.40 , 209.76 ],\n a9 : [ 104.88 , 147.40 ],\n a10 : [ 73.70 , 104.88 ],\n b0 : [ 2834.65 , 4008.19 ],\n b1 : [ 2004.09 , 2834.65 ],\n b2 : [ 1417.32 , 2004.09 ],\n b3 : [ 1000.63 , 1417.32 ],\n b4 : [ 708.66 , 1000.63 ],\n b5 : [ 498.90 , 708.66 ],\n b6 : [ 354.33 , 498.90 ],\n b7 : [ 249.45 , 354.33 ],\n b8 : [ 175.75 , 249.45 ],\n b9 : [ 124.72 , 175.75 ],\n b10 : [ 87.87 , 124.72 ],\n c0 : [ 2599.37 , 3676.54 ],\n c1 : [ 1836.85 , 2599.37 ],\n c2 : [ 1298.27 , 1836.85 ],\n c3 : [ 918.43 , 1298.27 ],\n c4 : [ 649.13 , 918.43 ],\n c5 : [ 459.21 , 649.13 ],\n c6 : [ 323.15 , 459.21 ],\n c7 : [ 229.61 , 323.15 ],\n c8 : [ 161.57 , 229.61 ],\n c9 : [ 113.39 , 161.57 ],\n c10 : [ 79.37 , 113.39 ],\n executive : [ 521.86 , 756.00 ],\n folio : [ 612.00 , 936.00 ],\n legal : [ 612.00 , 1008.00 ],\n letter : [ 612.00 , 792.00 ],\n tabloid : [ 792.00 , 1224.00 ]\n};\n\nfunction makeOutput() {\n var indentLevel = 0, output = BinaryStream();\n function out() {\n for (var i = 0; i < arguments.length; ++i) {\n var x = arguments[i];\n if (x === undefined) {\n throw new Error(\"Cannot output undefined to PDF\");\n }\n else if (x instanceof PDFValue) {\n x.beforeRender(out);\n x.render(out);\n }\n else if (isArray(x)) {\n renderArray(x, out);\n }\n else if (isDate(x)) {\n renderDate(x, out);\n }\n else if (typeof x == \"number\") {\n if (isNaN(x)) {\n throw new Error(\"Cannot output NaN to PDF\");\n }\n // make sure it doesn't end up in exponent notation\n var num = x.toFixed(7);\n if (num.indexOf(\".\") >= 0) {\n num = num.replace(/\\.?0+$/, \"\");\n }\n if (num == \"-0\") {\n num = \"0\";\n }\n output.writeString(num);\n }\n else if (/string|boolean/.test(typeof x)) {\n output.writeString(String(x));\n }\n else if (typeof x.get == \"function\") {\n output.write(x.get());\n }\n else if (typeof x == \"object\") {\n if (!x) {\n output.writeString(\"null\");\n } else {\n out(new PDFDictionary(x));\n }\n }\n }\n }\n out.writeData = function(data) {\n output.write(data);\n };\n out.withIndent = function(f) {\n ++indentLevel;\n f(out);\n --indentLevel;\n };\n out.indent = function() {\n out(NL, pad(\"\", indentLevel * 2, \" \"));\n out.apply(null, arguments);\n };\n out.offset = function() {\n return output.offset();\n };\n out.toString = function() {\n throw new Error(\"FIX CALLER\");\n };\n out.get = function() {\n return output.get();\n };\n out.stream = function() {\n return output;\n };\n return out;\n}\n\nfunction wrapObject(value, id) {\n var beforeRender = value.beforeRender;\n var renderValue = value.render;\n\n value.beforeRender = function(){};\n\n value.render = function(out) {\n out(id, \" 0 R\");\n };\n\n value.renderFull = function(out) {\n value._offset = out.offset();\n out(id, \" 0 obj \");\n beforeRender.call(value, out);\n renderValue.call(value, out);\n out(\" endobj\");\n };\n}\n\nfunction getPaperOptions(getOption) {\n if (typeof getOption != \"function\") {\n var options = getOption;\n getOption = function(key, def) {\n return key in options ? options[key] : def;\n };\n }\n var paperSize = getOption(\"paperSize\", PAPER_SIZE.a4);\n if (!paperSize) {\n return {};\n }\n if (typeof paperSize == \"string\") {\n paperSize = PAPER_SIZE[paperSize.toLowerCase()];\n if (paperSize == null) {\n throw new Error(\"Unknown paper size\");\n }\n }\n\n paperSize[0] = unitsToPoints(paperSize[0]);\n paperSize[1] = unitsToPoints(paperSize[1]);\n\n if (getOption(\"landscape\", false)) {\n paperSize = [\n Math.max(paperSize[0], paperSize[1]),\n Math.min(paperSize[0], paperSize[1])\n ];\n }\n\n var margin = getOption(\"margin\");\n if (margin) {\n if (typeof margin == \"string\" || typeof margin == \"number\") {\n margin = unitsToPoints(margin, 0);\n margin = { left: margin, top: margin, right: margin, bottom: margin };\n } else {\n margin = {\n left : unitsToPoints(margin.left, 0),\n top : unitsToPoints(margin.top, 0),\n right : unitsToPoints(margin.right, 0),\n bottom : unitsToPoints(margin.bottom, 0)\n };\n }\n if (getOption(\"addMargin\")) {\n paperSize[0] += margin.left + margin.right;\n paperSize[1] += margin.top + margin.bottom;\n }\n }\n return { paperSize: paperSize, margin: margin };\n}\n\nvar FONT_CACHE = {\n \"Times-Roman\" : true,\n \"Times-Bold\" : true,\n \"Times-Italic\" : true,\n \"Times-BoldItalic\" : true,\n \"Helvetica\" : true,\n \"Helvetica-Bold\" : true,\n \"Helvetica-Oblique\" : true,\n \"Helvetica-BoldOblique\" : true,\n \"Courier\" : true,\n \"Courier-Bold\" : true,\n \"Courier-Oblique\" : true,\n \"Courier-BoldOblique\" : true,\n \"Symbol\" : true,\n \"ZapfDingbats\" : true\n};\n\nfunction loadBinary(url, cont) {\n // IE throws Accesss denied error for Data URIs\n let m;\n if (browser.msie && (m = /^data:.*?;base64,/i.exec(url))) {\n cont(base64ToUint8Array(url.substr(m[0].length)));\n return;\n }\n\n function error() {\n if (window.console) {\n if (window.console.error) {\n window.console.error(\"Cannot load URL: %s\", url);\n } else {\n window.console.log(\"Cannot load URL: %s\", url);\n }\n }\n cont(null);\n }\n var req = new XMLHttpRequest();\n req.open('GET', url, true);\n if (HAS_TYPED_ARRAYS) {\n req.responseType = \"arraybuffer\";\n }\n req.onload = function() {\n if (req.status == 200 || req.status == 304) {\n if (HAS_TYPED_ARRAYS) {\n cont(new Uint8Array(req.response));\n } else {\n cont(new window.VBArray(req.responseBody).toArray()); // IE9 only\n }\n } else {\n error();\n }\n };\n req.onerror = error;\n req.send(null);\n}\n\nfunction loadFont(url, cont) {\n var font = FONT_CACHE[url];\n if (font) {\n cont(font);\n } else {\n loadBinary(url, function(data){\n if (data == null) {\n throw new Error(\"Cannot load font from \" + url);\n } else {\n var font = new TTFFont(data);\n FONT_CACHE[url] = font;\n cont(font);\n }\n });\n }\n}\n\nvar IMAGE_CACHE = {};\n\nfunction clearImageCache() {\n IMAGE_CACHE = {};\n}\n\nfunction loadImage(url, size, cont, options) {\n var img = IMAGE_CACHE[url], bloburl, blob;\n if (img) {\n cont(img);\n } else {\n img = new Image();\n if (!(/^data:/i.test(url))) {\n img.crossOrigin = \"Anonymous\";\n }\n if (HAS_TYPED_ARRAYS && !(/^data:/i.test(url))) {\n // IE10 fails to load images from another domain even when the server sends the\n // proper CORS headers. a XHR, however, will be able to load the data.\n // http://stackoverflow.com/a/19734516/154985\n //\n // On the other hand, it's worth doing it this way for all browsers which support\n // responseType = \"blob\" (HAS_TYPED_ARRAYS will be true), because we can inspect the\n // mime type and if it's a JPEG (very common case) we can save a lot of time in\n // _load below.\n var xhr = new XMLHttpRequest();\n xhr.onload = function() {\n blob = xhr.response;\n if (browser.mozilla && blob.type == \"image/svg+xml\") {\n // Firefox won't render SVGs that don't contain width and height attributes.\n let reader = new FileReader();\n reader.onload = function() {\n let doc = new window.DOMParser().parseFromString(this.result, \"image/svg+xml\");\n let svg = doc.documentElement;\n if (svg.getAttribute(\"width\") && svg.getAttribute(\"height\")) {\n // we're good, continue with the existing blob.\n bloburl = URL.createObjectURL(blob);\n _load(bloburl);\n } else {\n svg.setAttribute(\"width\", size.width);\n svg.setAttribute(\"height\", size.height);\n let xml = new window.XMLSerializer().serializeToString(svg);\n let dataURL = `data:image/svg+xml;base64,${encodeBase64(xml)}`;\n _load(dataURL);\n }\n };\n reader.readAsText(blob);\n } else {\n bloburl = URL.createObjectURL(blob);\n _load(bloburl);\n }\n };\n xhr.onerror = _onerror;\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"blob\";\n xhr.send();\n } else {\n _load(url);\n }\n }\n\n function _load(url) {\n img.src = url;\n if (img.complete && !browser.msie) {\n // IE, bless its little heart, says img.complete == true even though the image is\n // not loaded (width=0), therefore we must go the onload route (ticket 929635).\n _onload.call(img);\n } else {\n img.onload = _onload;\n img.onerror = _onerror;\n }\n }\n\n function _trycanvas() {\n if (!size) {\n size = { width: img.width, height: img.height };\n }\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = size.width;\n canvas.height = size.height;\n\n var ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0, size.width, size.height);\n\n var imgdata;\n try {\n imgdata = ctx.getImageData(0, 0, size.width, size.height);\n } catch (ex) {\n // it tainted the canvas -- can't draw it.\n _onerror();\n return;\n } finally {\n if (bloburl) {\n URL.revokeObjectURL(bloburl);\n }\n }\n\n // in case it contains transparency, we must separate rgb data from the alpha\n // channel and create a PDFRawImage image with opacity. otherwise we can use a\n // PDFJpegImage.\n //\n // to do this in one step, we create the rgb and alpha streams anyway, even if\n // we might end up not using them if hasAlpha remains false.\n\n var hasAlpha = false, rgb = BinaryStream(), alpha = BinaryStream();\n var rawbytes = imgdata.data;\n var i = 0;\n while (i < rawbytes.length) {\n rgb.writeByte(rawbytes[i++]);\n rgb.writeByte(rawbytes[i++]);\n rgb.writeByte(rawbytes[i++]);\n var a = rawbytes[i++];\n if (a < 255) {\n hasAlpha = true;\n }\n alpha.writeByte(a);\n }\n\n if (hasAlpha || options.keepPNG) {\n img = new PDFRawImage(size.width, size.height, rgb, alpha);\n } else {\n // no transparency, encode as JPEG.\n var data = canvas.toDataURL(\"image/jpeg\", options.jpegQuality);\n data = data.substr(data.indexOf(\";base64,\") + 8);\n\n var stream = BinaryStream();\n stream.writeBase64(data);\n img = new PDFJpegImage(stream);\n }\n\n cont(IMAGE_CACHE[url] = img);\n }\n\n function _onerror() {\n cont(IMAGE_CACHE[url] = \"ERROR\");\n }\n\n function _onload() {\n if (size) {\n const svg = (blob && blob.type === 'image/svg+xml') || (\n /^data:image\\/svg\\+xml;/i.test(this.src.substring(0, 19))\n );\n\n const upscale = size.width >= img.width || size.height >= img.height;\n\n // Use the original image if requested size is bigger than the source,\n // unless it's an SVG that can be upscaled.\n if (!svg && upscale) {\n size = null;\n }\n }\n if (!size && blob && /^image\\/jpe?g$/i.test(blob.type)) {\n // If we know we got a JPEG, we can skip the process of rendering it to a\n // canvas, getting the pixel data, searching for transparency we know we won't\n // find, getting back a data URI and then decoding the BASE64 to finally get the\n // binary we already have. Also, we avoid downgrading the image quality, with\n // the possible drawback of making a bigger PDF; still, seems legit.\n //\n // Besides saving a lot of work, this also reuses the buffer memory\n // (BinaryStream does not create a copy), potentially saving some GC cycles.\n let reader = new FileReader();\n reader.onload = function() {\n try {\n let img = new PDFJpegImage(BinaryStream(new Uint8Array(this.result)));\n URL.revokeObjectURL(bloburl);\n cont(IMAGE_CACHE[url] = img);\n } catch (ex) {\n // if there's an error parsing the JPEG stream, it could be due to a\n // misconfigured server (improper content-type:\n // https://github.com/telerik/kendo-ui-core/issues/4184). If that's the case,\n // the canvas will still be able to draw it.\n _trycanvas();\n }\n };\n reader.readAsArrayBuffer(blob);\n } else {\n _trycanvas();\n }\n }\n}\n\nfunction manyLoader(loadOne) {\n return function(urls, callback) {\n var n = urls.length, i = n;\n if (n === 0) {\n return callback();\n }\n function next() {\n if (--n === 0) {\n callback();\n }\n }\n while (i-- > 0) {\n loadOne(urls[i], next);\n }\n };\n}\n\nvar loadFonts = manyLoader(loadFont);\nvar loadImages = function(images, callback, options) {\n options = Object.assign({\n jpegQuality : 0.92,\n keepPNG : false\n }, options);\n var urls = Object.keys(images), n = urls.length;\n if (n === 0) {\n return callback();\n }\n function next() {\n if (--n === 0) {\n callback();\n }\n }\n urls.forEach(function(url){\n loadImage(url, images[url], next, options);\n });\n};\n\nclass PDFDocument {\n constructor (options) {\n var self = this;\n var out = makeOutput();\n var objcount = 0;\n var objects = [];\n\n function getOption(name, defval) {\n return (options && options[name] != null) ? options[name] : defval;\n }\n\n self.getOption = getOption;\n\n self.attach = function(value) {\n if (objects.indexOf(value) < 0) {\n wrapObject(value, ++objcount);\n objects.push(value);\n }\n return value;\n };\n\n self.pages = [];\n\n self.FONTS = {};\n self.IMAGES = {};\n self.GRAD_COL_FUNCTIONS = {}; // cache for color gradient functions\n self.GRAD_OPC_FUNCTIONS = {}; // cache for opacity gradient functions\n self.GRAD_COL = {}; // cache for whole color gradient objects\n self.GRAD_OPC = {}; // cache for whole opacity gradient objects\n\n var catalog = self.attach(new PDFCatalog());\n var pageTree = self.attach(new PDFPageTree());\n\n if (getOption(\"autoPrint\")) {\n let nameTree = {};\n nameTree.JavaScript = new PDFDictionary({ Names: [\n new PDFString(\"JS\"), self.attach(new PDFDictionary({\n S: _(\"JavaScript\"),\n JS: new PDFString(\"print(true);\")\n }))\n ] });\n catalog.props.Names = new PDFDictionary(nameTree);\n }\n\n catalog.setPages(pageTree);\n\n var info = self.attach(new PDFDictionary({\n Producer : new PDFString(getOption(\"producer\", \"Kendo UI PDF Generator\"), true), // XXX: kendo.version?\n Title : new PDFString(getOption(\"title\", \"\"), true),\n Author : new PDFString(getOption(\"author\", \"\"), true),\n Subject : new PDFString(getOption(\"subject\", \"\"), true),\n Keywords : new PDFString(getOption(\"keywords\", \"\"), true),\n Creator : new PDFString(getOption(\"creator\", \"Kendo UI PDF Generator\"), true),\n CreationDate : getOption(\"date\", new Date())\n }));\n\n self.addPage = function(options) {\n var paperOptions = getPaperOptions(function(name, defval){\n return (options && options[name] != null) ? options[name] : defval;\n });\n var paperSize = paperOptions.paperSize;\n var margin = paperOptions.margin;\n var contentWidth = paperSize[0];\n var contentHeight = paperSize[1];\n if (margin) {\n contentWidth -= margin.left + margin.right;\n contentHeight -= margin.top + margin.bottom;\n }\n var content = new PDFStream(makeOutput(), null, true);\n var props = {\n Contents : self.attach(content),\n Parent : pageTree,\n MediaBox : [ 0, 0, paperSize[0], paperSize[1] ]\n };\n var page = new PDFPage(self, props);\n page._content = content;\n pageTree.addPage(self.attach(page));\n\n // canvas-like coord. system. (0,0) is upper-left.\n // text must be vertically mirorred before drawing.\n page.transform(1, 0, 0, -1, 0, paperSize[1]);\n\n if (margin) {\n page.translate(margin.left, margin.top);\n // XXX: clip to right/bottom margin. Make this optional?\n page.rect(0, 0, contentWidth, contentHeight);\n page.clip();\n }\n\n self.pages.push(page);\n return page;\n };\n\n self.render = function() {\n var i;\n /// file header\n out(\"%PDF-1.4\", NL, \"%\\xc2\\xc1\\xda\\xcf\\xce\", NL, NL);\n\n /// file body\n for (i = 0; i < objects.length; ++i) {\n objects[i].renderFull(out);\n out(NL, NL);\n }\n\n /// cross-reference table\n var xrefOffset = out.offset();\n out(\"xref\", NL, 0, \" \", objects.length + 1, NL);\n out(\"0000000000 65535 f \", NL);\n for (i = 0; i < objects.length; ++i) {\n out(zeropad(objects[i]._offset, 10), \" 00000 n \", NL);\n }\n out(NL);\n\n /// trailer\n out(\"trailer\", NL);\n out(new PDFDictionary({\n Size: objects.length + 1,\n Root: catalog,\n Info: info\n }), NL, NL);\n\n /// end\n out(\"startxref\", NL, xrefOffset, NL);\n out(\"%%EOF\", NL);\n\n return out.stream().offset(0);\n };\n\n self.loadFonts = loadFonts;\n self.loadImages = loadImages;\n }\n\n getFont(url) {\n var font = this.FONTS[url];\n if (!font) {\n font = FONT_CACHE[url];\n if (!font) {\n throw new Error(\"Font \" + url + \" has not been loaded\");\n }\n if (font === true) {\n font = this.attach(new PDFStandardFont(url));\n } else {\n font = this.attach(new PDFFont(this, font));\n }\n this.FONTS[url] = font;\n }\n return font;\n }\n\n getImage(url) {\n var img = this.IMAGES[url];\n if (!img) {\n img = IMAGE_CACHE[url];\n if (!img) {\n throw new Error(\"Image \" + url + \" has not been loaded\");\n }\n if (img === \"ERROR\") {\n return null;\n }\n img = this.IMAGES[url] = this.attach(img.asStream(this));\n }\n return img;\n }\n\n getOpacityGS(opacity, forStroke) {\n var id = parseFloat(opacity).toFixed(3);\n opacity = parseFloat(id);\n id += forStroke ? \"S\" : \"F\";\n var cache = this._opacityGSCache || (this._opacityGSCache = {});\n var gs = cache[id];\n if (!gs) {\n var props = {\n Type: _(\"ExtGState\")\n };\n if (forStroke) {\n props.CA = opacity;\n } else {\n props.ca = opacity;\n }\n gs = this.attach(new PDFDictionary(props));\n gs._resourceName = _(\"GS\" + (++RESOURCE_COUNTER));\n cache[id] = gs;\n }\n return gs;\n }\n\n dict(props) {\n return new PDFDictionary(props);\n }\n\n name(str) {\n return _(str);\n }\n\n stream(props, content) {\n return new PDFStream(content, props);\n }\n}\n\n/* -----[ utils ]----- */\n\nfunction pad(str, len, ch) {\n while (str.length < len) {\n str = ch + str;\n }\n return str;\n}\n\nfunction zeropad(n, len) {\n return pad(String(n), len, \"0\");\n}\n\nfunction hasOwnProperty(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nvar isArray = Array.isArray || function(obj) {\n return obj instanceof Array;\n};\n\nfunction isDate(obj) {\n return obj instanceof Date;\n}\n\nfunction renderArray(a, out) {\n out(\"[\");\n if (a.length > 0) {\n out.withIndent(function(){\n for (var i = 0; i < a.length; ++i) {\n if (i > 0 && i % 8 === 0) {\n out.indent(a[i]);\n } else {\n out(\" \", a[i]);\n }\n }\n });\n //out.indent();\n }\n out(\" ]\");\n}\n\nfunction renderDate(date, out) {\n out(\"(D:\",\n zeropad(date.getUTCFullYear(), 4),\n zeropad(date.getUTCMonth() + 1, 2),\n zeropad(date.getUTCDate(), 2),\n zeropad(date.getUTCHours(), 2),\n zeropad(date.getUTCMinutes(), 2),\n zeropad(date.getUTCSeconds(), 2),\n \"Z)\");\n}\n\nfunction mm2pt(mm) {\n return mm * (72/25.4);\n}\n\nfunction cm2pt(cm) {\n return mm2pt(cm * 10);\n}\n\nfunction in2pt(inch) {\n return inch * 72;\n}\n\n\nfunction unitsToPoints(x, def) {\n if (typeof x == \"number\") {\n return x;\n }\n if (typeof x == \"string\") {\n var m;\n m = /^\\s*([0-9.]+)\\s*(mm|cm|in|pt)\\s*$/.exec(x);\n if (m) {\n var num = parseFloat(m[1]);\n if (!isNaN(num)) {\n if (m[2] == \"pt\") {\n return num;\n }\n return {\n \"mm\": mm2pt,\n \"cm\": cm2pt,\n \"in\": in2pt\n }[m[2]](num);\n }\n }\n }\n if (def != null) {\n return def;\n }\n throw new Error(\"Can't parse unit: \" + x);\n}\n\n/* -----[ PDF basic objects ]----- */\n\nclass PDFValue {\n beforeRender() {}\n}\n\nclass PDFString extends PDFValue {\n constructor(value, utf16be) {\n super();\n this.value = value;\n this.utf16be = Boolean(utf16be);\n }\n\n render(out) {\n let txt = this.value;\n if (this.utf16be) {\n txt = BOM + encodeUTF16BE(txt);\n txt = txt.replace(/([\\(\\)\\\\])/g, \"\\\\$1\");\n out(\"(\", txt, \")\");\n } else {\n // out.writeString truncates charcodes to 8 bits and\n // 0x128 & 0xFF is 40, the code for open paren.\n // therefore we need to do the chopping here to make\n // sure we backslash all cases.\n let data = [ 40 ]; // open PDF string '('\n for (var i = 0; i < txt.length; ++i) {\n let code = txt.charCodeAt(i) & 0xFF;\n if (code == 40 || code == 41 || code == 92) {\n // backslash before (, ) and \\\n data.push(92);\n }\n data.push(code);\n }\n data.push(41); // ')' close PDF string\n out.writeData(data);\n }\n }\n\n toString() {\n return this.value;\n }\n}\n\nclass PDFHexString extends PDFString {\n constructor(value) {\n super(value);\n this.value = value;\n }\n\n render(out) {\n out(\"<\");\n for (var i = 0; i < this.value.length; ++i) {\n out(zeropad(this.value.charCodeAt(i).toString(16), 4));\n }\n out(\">\");\n }\n}\n\n/// names\nclass PDFName extends PDFValue {\n static get(name) {\n return _(name);\n }\n\n constructor(name) {\n super();\n this.name = name;\n }\n\n render(out) {\n out(\"/\" + this.escape());\n }\n\n escape() {\n return this.name.replace(/[^\\x21-\\x7E]/g, function(c){\n return \"#\" + zeropad(c.charCodeAt(0).toString(16), 2);\n });\n }\n\n toString() {\n return this.name;\n }\n}\n\nvar PDFName_cache = {};\n\nfunction _(name) {\n if (hasOwnProperty(PDFName_cache, name)) {\n return PDFName_cache[name];\n }\n return (PDFName_cache[name] = new PDFName(name));\n}\n\n/// dictionary\n\nclass PDFDictionary extends PDFValue {\n constructor(props) {\n super();\n this.props = props;\n }\n\n render(out) {\n var props = this.props, empty = true;\n out(\"<<\");\n out.withIndent(function(){\n for (var i in props) {\n if (hasOwnProperty(props, i) && !/^_/.test(i)) {\n empty = false;\n out.indent(_(i), \" \", props[i]);\n }\n }\n });\n if (!empty) {\n out.indent();\n }\n out(\">>\");\n }\n}\n\n/// streams\n\nclass PDFStream extends PDFValue {\n constructor(data, props, compress) {\n super();\n if (typeof data == \"string\") {\n var tmp = BinaryStream();\n tmp.write(data);\n data = tmp;\n }\n this.data = data;\n this.props = props || {};\n this.compress = compress;\n }\n\n render(out) {\n var data = this.data.get(), props = this.props;\n if (this.compress && supportsDeflate()) {\n if (!props.Filter) {\n props.Filter = [];\n } else if (!(props.Filter instanceof Array)) {\n props.Filter = [ props.Filter ];\n }\n props.Filter.unshift(_(\"FlateDecode\"));\n data = deflate(data);\n }\n props.Length = data.length;\n out(new PDFDictionary(props), \" stream\", NL);\n out.writeData(data);\n out(NL, \"endstream\");\n }\n}\n\n/// catalog\n\nclass PDFCatalog extends PDFDictionary {\n constructor() {\n super({\n Type: _(\"Catalog\")\n });\n }\n\n setPages(pagesObj) {\n this.props.Pages = pagesObj;\n }\n}\n\n/// page tree\n\nclass PDFPageTree extends PDFDictionary {\n constructor() {\n super({\n Type : _(\"Pages\"),\n Kids : [],\n Count : 0\n });\n }\n\n addPage(pageObj) {\n this.props.Kids.push(pageObj);\n this.props.Count++;\n }\n}\n\n/// images\n\n// JPEG\n\nvar SOF_CODES = [0xc0, 0xc1, 0xc2, 0xc3, 0xc5, 0xc6, 0xc7, 0xc9, 0xca, 0xcb, 0xcd, 0xce, 0xcf];\n\nclass PDFJpegImage {\n constructor(data) {\n // we must determine the correct color space. we'll parse a bit\n // of the JPEG stream for this, it's still better than going\n // through the canvas.\n // https://github.com/telerik/kendo-ui-core/issues/2845\n data.offset(0);\n var width, height, colorSpace, bitsPerComponent;\n var soi = data.readShort();\n if (soi != 0xFFD8) {\n // XXX: do we have some better options here?\n throw new Error(\"Invalid JPEG image\");\n }\n while (!data.eof()) {\n var ff = data.readByte();\n if (ff != 0xFF) {\n throw new Error(\"Invalid JPEG image\");\n }\n var marker = data.readByte();\n var length = data.readShort();\n if (SOF_CODES.indexOf(marker) >= 0) {\n // \"start of frame\" marker\n bitsPerComponent = data.readByte();\n height = data.readShort();\n width = data.readShort();\n colorSpace = data.readByte();\n break;\n }\n data.skip(length - 2);\n }\n\n if (colorSpace == null) {\n throw new Error(\"Invalid JPEG image\");\n }\n\n var props = {\n Type : _(\"XObject\"),\n Subtype : _(\"Image\"),\n Width : width,\n Height : height,\n BitsPerComponent : bitsPerComponent,\n Filter : _(\"DCTDecode\")\n };\n\n switch (colorSpace) {\n case 1:\n props.ColorSpace = _(\"DeviceGray\");\n break;\n case 3:\n props.ColorSpace = _(\"DeviceRGB\");\n break;\n case 4:\n props.ColorSpace = _(\"DeviceCMYK\");\n props.Decode = [ 1, 0, 1, 0, 1, 0, 1, 0 ]; // invert colors\n break;\n }\n\n this.asStream = function() {\n data.offset(0);\n var stream = new PDFStream(data, props);\n stream._resourceName = _(\"I\" + (++RESOURCE_COUNTER));\n return stream;\n };\n }\n}\n\n// PDFRawImage will be used for images with transparency (PNG)\n\nclass PDFRawImage {\n constructor(width, height, rgb, alpha) {\n this.asStream = function(pdf) {\n var mask = new PDFStream(alpha, {\n Type : _(\"XObject\"),\n Subtype : _(\"Image\"),\n Width : width,\n Height : height,\n BitsPerComponent : 8,\n ColorSpace : _(\"DeviceGray\")\n }, true);\n var stream = new PDFStream(rgb, {\n Type : _(\"XObject\"),\n Subtype : _(\"Image\"),\n Width : width,\n Height : height,\n BitsPerComponent : 8,\n ColorSpace : _(\"DeviceRGB\"),\n SMask : pdf.attach(mask)\n }, true);\n stream._resourceName = _(\"I\" + (++RESOURCE_COUNTER));\n return stream;\n };\n }\n}\n\n/// standard fonts\n\nclass PDFStandardFont extends PDFDictionary {\n constructor(name){\n super({\n Type : _(\"Font\"),\n Subtype : _(\"Type1\"),\n BaseFont : _(name)\n });\n\n this._resourceName = _(\"F\" + (++RESOURCE_COUNTER));\n }\n\n encodeText(str) {\n return new PDFString(String(str));\n }\n}\n\n/// TTF fonts\n\nclass PDFFont extends PDFDictionary {\n constructor(pdf, font, props){\n super({});\n\n props = this.props;\n props.Type = _(\"Font\");\n props.Subtype = _(\"Type0\");\n props.Encoding = _(\"Identity-H\");\n\n this._pdf = pdf;\n this._font = font;\n this._sub = font.makeSubset();\n this._resourceName = _(\"F\" + (++RESOURCE_COUNTER));\n\n var head = font.head;\n\n this.name = font.psName;\n var scale = this.scale = font.scale;\n this.bbox = [\n head.xMin * scale,\n head.yMin * scale,\n head.xMax * scale,\n head.yMax * scale\n ];\n\n this.italicAngle = font.post.italicAngle;\n this.ascent = font.ascent * scale;\n this.descent = font.descent * scale;\n this.lineGap = font.lineGap * scale;\n this.capHeight = font.os2.capHeight || this.ascent;\n this.xHeight = font.os2.xHeight || 0;\n this.stemV = 0;\n\n this.familyClass = (font.os2.familyClass || 0) >> 8;\n this.isSerif = this.familyClass >= 1 && this.familyClass <= 7;\n this.isScript = this.familyClass == 10;\n\n this.flags = ((font.post.isFixedPitch ? 1 : 0) |\n (this.isSerif ? 1 << 1 : 0) |\n (this.isScript ? 1 << 3 : 0) |\n (this.italicAngle !== 0 ? 1 << 6 : 0) |\n (1 << 5));\n }\n\n encodeText(text) {\n return new PDFHexString(this._sub.encodeText(String(text)));\n }\n\n getTextWidth(fontSize, text) {\n var width = 0, codeMap = this._font.cmap.codeMap;\n for (var i = 0; i < text.length; ++i) {\n var glyphId = codeMap[text.charCodeAt(i)];\n width += this._font.widthOfGlyph(glyphId || 0);\n }\n return width * fontSize / 1000;\n }\n\n beforeRender() {\n var self = this;\n var sub = self._sub;\n\n // write the TTF data\n var data = sub.render();\n var fontStream = new PDFStream(BinaryStream(data), {\n Length1: data.length\n }, true);\n\n var descriptor = self._pdf.attach(new PDFDictionary({\n Type : _(\"FontDescriptor\"),\n FontName : _(self._sub.psName),\n FontBBox : self.bbox,\n Flags : self.flags,\n StemV : self.stemV,\n ItalicAngle : self.italicAngle,\n Ascent : self.ascent,\n Descent : self.descent,\n CapHeight : self.capHeight,\n XHeight : self.xHeight,\n FontFile2 : self._pdf.attach(fontStream)\n }));\n\n var cmap = sub.ncid2ogid;\n var firstChar = sub.firstChar;\n var lastChar = sub.lastChar;\n var charWidths = [];\n (function loop(i, chunk){\n if (i <= lastChar) {\n var gid = cmap[i];\n if (gid == null) {\n loop(i + 1);\n } else {\n if (!chunk) {\n charWidths.push(i, chunk = []);\n }\n chunk.push(self._font.widthOfGlyph(gid));\n loop(i + 1, chunk);\n }\n }\n })(firstChar);\n\n // As if two dictionaries weren't enough, we need another\n // one, the \"descendant font\". Only that one can be of\n // Subtype CIDFontType2. PDF is the X11 of document\n // formats: portable but full of legacy that nobody cares\n // about anymore.\n\n var descendant = new PDFDictionary({\n Type: _(\"Font\"),\n Subtype: _(\"CIDFontType2\"),\n BaseFont: _(self._sub.psName),\n CIDSystemInfo: new PDFDictionary({\n Registry : new PDFString(\"Adobe\"),\n Ordering : new PDFString(\"Identity\"),\n Supplement : 0\n }),\n FontDescriptor: descriptor,\n FirstChar: firstChar,\n LastChar: lastChar,\n DW: Math.round(self._font.widthOfGlyph(0)),\n W: charWidths,\n CIDToGIDMap: self._pdf.attach(self._makeCidToGidMap())\n });\n\n var dict = self.props;\n dict.BaseFont = _(self._sub.psName);\n dict.DescendantFonts = [ self._pdf.attach(descendant) ];\n\n // Compute the ToUnicode map so that apps can extract\n // meaningful text from the PDF.\n var unimap = new PDFToUnicodeCmap(firstChar, lastChar, sub.subset);\n var unimapStream = new PDFStream(makeOutput(), null, true);\n unimapStream.data(unimap);\n dict.ToUnicode = self._pdf.attach(unimapStream);\n }\n\n _makeCidToGidMap() {\n return new PDFStream(BinaryStream(this._sub.cidToGidMap()), null, true);\n }\n}\n\nclass PDFToUnicodeCmap extends PDFValue {\n constructor(firstChar, lastChar, map){\n super();\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n this.map = map;\n }\n\n render(out) {\n out.indent(\"/CIDInit /ProcSet findresource begin\");\n out.indent(\"12 dict begin\");\n out.indent(\"begincmap\");\n out.indent(\"/CIDSystemInfo <<\");\n out.indent(\" /Registry (Adobe)\");\n out.indent(\" /Ordering (UCS)\");\n out.indent(\" /Supplement 0\");\n out.indent(\">> def\");\n out.indent(\"/CMapName /Adobe-Identity-UCS def\");\n out.indent(\"/CMapType 2 def\");\n out.indent(\"1 begincodespacerange\");\n out.indent(\" <0000>\");\n out.indent(\"endcodespacerange\");\n\n var self = this;\n out.indent(self.lastChar - self.firstChar + 1, \" beginbfchar\");\n out.withIndent(function(){\n for (var code = self.firstChar; code <= self.lastChar; ++code) {\n var unicode = self.map[code];\n var str = ucs2encode([ unicode ]);\n out.indent(\"<\", zeropad(code.toString(16), 4), \">\", \"<\");\n for (var i = 0; i < str.length; ++i) {\n out(zeropad(str.charCodeAt(i).toString(16), 4));\n }\n out(\">\");\n }\n });\n out.indent(\"endbfchar\");\n\n out.indent(\"endcmap\");\n out.indent(\"CMapName currentdict /CMap defineresource pop\");\n out.indent(\"end\");\n out.indent(\"end\");\n }\n}\n\n/// gradients\n\nfunction makeHash(a) {\n return a.map(function(x){\n return isArray(x) ? makeHash(x)\n : typeof x == \"number\" ? (Math.round(x * 1000) / 1000).toFixed(3)\n : x;\n }).join(\" \");\n}\n\nfunction cacheColorGradientFunction(pdf, r1, g1, b1, r2, g2, b2) {\n var hash = makeHash([ r1, g1, b1, r2, g2, b2 ]);\n var func = pdf.GRAD_COL_FUNCTIONS[hash];\n if (!func) {\n func = pdf.GRAD_COL_FUNCTIONS[hash] = pdf.attach(new PDFDictionary({\n FunctionType: 2,\n Domain: [ 0, 1 ],\n Range: [ 0, 1, 0, 1, 0, 1 ],\n N: 1,\n C0: [ r1 , g1 , b1 ],\n C1: [ r2 , g2 , b2 ]\n }));\n }\n return func;\n}\n\nfunction cacheOpacityGradientFunction(pdf, a1, a2) {\n var hash = makeHash([ a1, a2 ]);\n var func = pdf.GRAD_OPC_FUNCTIONS[hash];\n if (!func) {\n func = pdf.GRAD_OPC_FUNCTIONS[hash] = pdf.attach(new PDFDictionary({\n FunctionType: 2,\n Domain: [ 0, 1 ],\n Range: [ 0, 1 ],\n N: 1,\n C0: [ a1 ],\n C1: [ a2 ]\n }));\n }\n return func;\n}\n\nfunction makeGradientFunctions(pdf, stops) {\n var hasAlpha = false;\n var opacities = [];\n var colors = [];\n var offsets = [];\n var encode = [];\n var i, prev, cur, prevColor, curColor;\n for (i = 1; i < stops.length; ++i) {\n prev = stops[i - 1];\n cur = stops[i];\n prevColor = prev.color;\n curColor = cur.color;\n colors.push(cacheColorGradientFunction(\n pdf,\n prevColor.r, prevColor.g, prevColor.b,\n curColor.r, curColor.g, curColor.b\n ));\n if (prevColor.a < 1 || curColor.a < 1) {\n hasAlpha = true;\n }\n offsets.push(cur.offset);\n encode.push(0, 1);\n }\n if (hasAlpha) {\n for (i = 1; i < stops.length; ++i) {\n prev = stops[i - 1];\n cur = stops[i];\n prevColor = prev.color;\n curColor = cur.color;\n opacities.push(cacheOpacityGradientFunction(\n pdf, prevColor.a, curColor.a\n ));\n }\n }\n offsets.pop();\n return {\n hasAlpha : hasAlpha,\n colors : assemble(colors),\n opacities : hasAlpha ? assemble(opacities) : null\n };\n function assemble(funcs) {\n if (funcs.length == 1) {\n return funcs[0];\n }\n return {\n FunctionType: 3,\n Functions: funcs,\n Domain: [ 0, 1 ],\n Bounds: offsets,\n Encode: encode\n };\n }\n}\n\nfunction cacheColorGradient(pdf, isRadial, stops, coords, funcs, box) {\n var shading, hash;\n // if box is given then we have user-space coordinates, which\n // means the gradient is designed for a certain position/size\n // on page. caching won't do any good.\n if (!box) {\n var a = [ isRadial ].concat(coords);\n stops.forEach(function(x){\n a.push(x.offset, x.color.r, x.color.g, x.color.b);\n });\n hash = makeHash(a);\n shading = pdf.GRAD_COL[hash];\n }\n if (!shading) {\n shading = new PDFDictionary({\n Type: _(\"Shading\"),\n ShadingType: isRadial ? 3 : 2,\n ColorSpace: _(\"DeviceRGB\"),\n Coords: coords,\n Domain: [ 0, 1 ],\n Function: funcs,\n Extend: [ true, true ]\n });\n pdf.attach(shading);\n shading._resourceName = \"S\" + (++RESOURCE_COUNTER);\n if (hash) {\n pdf.GRAD_COL[hash] = shading;\n }\n }\n return shading;\n}\n\nfunction cacheOpacityGradient(pdf, isRadial, stops, coords, funcs, box) {\n var opacity, hash;\n // if box is given then we have user-space coordinates, which\n // means the gradient is designed for a certain position/size\n // on page. caching won't do any good.\n if (!box) {\n var a = [ isRadial ].concat(coords);\n stops.forEach(function(x){\n a.push(x.offset, x.color.a);\n });\n hash = makeHash(a);\n opacity = pdf.GRAD_OPC[hash];\n }\n if (!opacity) {\n opacity = new PDFDictionary({\n Type: _(\"ExtGState\"),\n AIS: false,\n CA: 1,\n ca: 1,\n SMask: {\n Type: _(\"Mask\"),\n S: _(\"Luminosity\"),\n G: pdf.attach(new PDFStream(\"/a0 gs /s0 sh\", {\n Type: _(\"XObject\"),\n Subtype: _(\"Form\"),\n FormType: 1,\n BBox: (box ? [\n box.left, box.top + box.height, box.left + box.width, box.top\n ] : [ 0, 1, 1, 0 ]),\n Group: {\n Type: _(\"Group\"),\n S: _(\"Transparency\"),\n CS: _(\"DeviceGray\"),\n I: true\n },\n Resources: {\n ExtGState: {\n a0: { CA: 1, ca: 1 }\n },\n Shading: {\n s0: {\n ColorSpace: _(\"DeviceGray\"),\n Coords: coords,\n Domain: [ 0, 1 ],\n ShadingType: isRadial ? 3 : 2,\n Function: funcs,\n Extend: [ true, true ]\n }\n }\n }\n }))\n }\n });\n pdf.attach(opacity);\n opacity._resourceName = \"O\" + (++RESOURCE_COUNTER);\n if (hash) {\n pdf.GRAD_OPC[hash] = opacity;\n }\n }\n return opacity;\n}\n\nfunction cacheGradient(pdf, gradient, box) {\n var isRadial = gradient.type == \"radial\";\n var funcs = makeGradientFunctions(pdf, gradient.stops);\n var coords = isRadial ? [\n gradient.start.x , gradient.start.y , gradient.start.r,\n gradient.end.x , gradient.end.y , gradient.end.r\n ] : [\n gradient.start.x , gradient.start.y,\n gradient.end.x , gradient.end.y\n ];\n var shading = cacheColorGradient(\n pdf, isRadial, gradient.stops, coords, funcs.colors, gradient.userSpace && box\n );\n var opacity = funcs.hasAlpha ? cacheOpacityGradient(\n pdf, isRadial, gradient.stops, coords, funcs.opacities, gradient.userSpace && box\n ) : null;\n return {\n hasAlpha: funcs.hasAlpha,\n shading: shading,\n opacity: opacity\n };\n}\n\n/// page object\n\nclass PDFPage extends PDFDictionary {\n constructor(pdf, props){\n super(props);\n\n this._pdf = pdf;\n this._rcount = 0;\n this._textMode = false;\n this._fontResources = {};\n this._gsResources = {};\n this._xResources = {};\n this._patResources = {};\n this._shResources = {};\n this._opacity = 1;\n this._matrix = [ 1, 0, 0, 1, 0, 0 ];\n this._annotations = [];\n\n this._font = null;\n this._fontSize = null;\n\n this._contextStack = [];\n\n props = this.props;\n props.Type = _(\"Page\");\n props.ProcSet = [\n _(\"PDF\"),\n _(\"Text\"),\n _(\"ImageB\"),\n _(\"ImageC\"),\n _(\"ImageI\")\n ];\n props.Resources = new PDFDictionary({\n Font : new PDFDictionary(this._fontResources),\n ExtGState : new PDFDictionary(this._gsResources),\n XObject : new PDFDictionary(this._xResources),\n Pattern : new PDFDictionary(this._patResources),\n Shading : new PDFDictionary(this._shResources)\n });\n props.Annots = this._annotations;\n }\n\n _out() {\n this._content.data.apply(null, arguments);\n }\n\n transform(a, b, c, d, e, f) {\n if (!isIdentityMatrix(arguments)) {\n this._matrix = mmul(arguments, this._matrix);\n this._out(a, \" \", b, \" \", c, \" \", d, \" \", e, \" \", f, \" cm\");\n // XXX: debug\n // this._out(\" % current matrix: \", this._matrix);\n this._out(NL);\n }\n }\n\n translate(dx, dy) {\n this.transform(1, 0, 0, 1, dx, dy);\n }\n\n scale(sx, sy) {\n this.transform(sx, 0, 0, sy, 0, 0);\n }\n\n rotate(angle) {\n var cos = Math.cos(angle), sin = Math.sin(angle);\n this.transform(cos, sin, -sin, cos, 0, 0);\n }\n\n beginText() {\n this._textMode = true;\n this._out(\"BT\", NL);\n }\n\n endText() {\n this._textMode = false;\n this._out(\"ET\", NL);\n }\n\n _requireTextMode() {\n if (!this._textMode) {\n throw new Error(\"Text mode required; call page.beginText() first\");\n }\n }\n\n _requireFont() {\n if (!this._font) {\n throw new Error(\"No font selected; call page.setFont() first\");\n }\n }\n\n setFont(font, size) {\n this._requireTextMode();\n if (font == null) {\n font = this._font;\n } else if (!(font instanceof PDFFont)) {\n font = this._pdf.getFont(font);\n }\n if (size == null) {\n size = this._fontSize;\n }\n this._fontResources[font._resourceName] = font;\n this._font = font;\n this._fontSize = size;\n this._out(font._resourceName, \" \", size, \" Tf\", NL);\n }\n\n setTextLeading(size) {\n this._requireTextMode();\n this._out(size, \" TL\", NL);\n }\n\n setTextRenderingMode(mode) {\n this._requireTextMode();\n this._out(mode, \" Tr\", NL);\n }\n\n showText(text, requestedWidth) {\n this._requireFont();\n if (text.length > 1 && requestedWidth && this._font instanceof PDFFont) {\n var outputWidth = this._font.getTextWidth(this._fontSize, text);\n var scale = requestedWidth / outputWidth * 100;\n this._out(scale, \" Tz \");\n }\n this._out(this._font.encodeText(text), \" Tj\", NL);\n }\n\n showTextNL(text) {\n this._requireFont();\n this._out(this._font.encodeText(text), \" '\", NL);\n }\n\n addLink(uri, box) {\n var ll = this._toPage({ x: box.left, y: box.bottom });\n var ur = this._toPage({ x: box.right, y: box.top });\n this._annotations.push(new PDFDictionary({\n Type : _(\"Annot\"),\n Subtype : _(\"Link\"),\n Rect : [ ll.x, ll.y, ur.x, ur.y ],\n Border : [ 0, 0, 0 ],\n A : new PDFDictionary({\n Type : _(\"Action\"),\n S : _(\"URI\"),\n URI : new PDFString(uri)\n })\n }));\n }\n\n setStrokeColor(r, g, b) {\n this._out(r, \" \", g, \" \", b, \" RG\", NL);\n }\n\n setOpacity(opacity) {\n this.setFillOpacity(opacity);\n this.setStrokeOpacity(opacity);\n this._opacity *= opacity;\n }\n\n setStrokeOpacity(opacity) {\n if (opacity < 1) {\n var gs = this._pdf.getOpacityGS(this._opacity * opacity, true);\n this._gsResources[gs._resourceName] = gs;\n this._out(gs._resourceName, \" gs\", NL);\n }\n }\n\n setFillColor(r, g, b) {\n this._out(r, \" \", g, \" \", b, \" rg\", NL);\n }\n\n setFillOpacity(opacity) {\n if (opacity < 1) {\n var gs = this._pdf.getOpacityGS(this._opacity * opacity, false);\n this._gsResources[gs._resourceName] = gs;\n this._out(gs._resourceName, \" gs\", NL);\n }\n }\n\n gradient(gradient, box) {\n this.save();\n this.rect(box.left, box.top, box.width, box.height);\n this.clip();\n if (!gradient.userSpace) {\n this.transform(box.width, 0, 0, box.height, box.left, box.top);\n }\n var g = cacheGradient(this._pdf, gradient, box);\n var sname = g.shading._resourceName, oname;\n this._shResources[sname] = g.shading;\n if (g.hasAlpha) {\n oname = g.opacity._resourceName;\n this._gsResources[oname] = g.opacity;\n this._out(\"/\" + oname + \" gs \");\n }\n this._out(\"/\" + sname + \" sh\", NL);\n this.restore();\n }\n\n setDashPattern(dashArray, dashPhase) {\n this._out(dashArray, \" \", dashPhase, \" d\", NL);\n }\n\n setLineWidth(width) {\n this._out(width, \" w\", NL);\n }\n\n setLineCap(lineCap) {\n this._out(lineCap, \" J\", NL);\n }\n\n setLineJoin(lineJoin) {\n this._out(lineJoin, \" j\", NL);\n }\n\n setMitterLimit(mitterLimit) {\n this._out(mitterLimit, \" M\", NL);\n }\n\n save() {\n this._contextStack.push(this._context());\n this._out(\"q\", NL);\n }\n\n restore() {\n this._out(\"Q\", NL);\n this._context(this._contextStack.pop());\n }\n\n\n // paths\n moveTo(x, y) {\n this._out(x, \" \", y, \" m\", NL);\n }\n\n lineTo(x, y) {\n this._out(x, \" \", y, \" l\", NL);\n }\n\n bezier(x1, y1, x2, y2, x3, y3) {\n this._out(x1, \" \", y1, \" \", x2, \" \", y2, \" \", x3, \" \", y3, \" c\", NL);\n }\n\n bezier1(x1, y1, x3, y3) {\n this._out(x1, \" \", y1, \" \", x3, \" \", y3, \" y\", NL);\n }\n\n bezier2(x2, y2, x3, y3) {\n this._out(x2, \" \", y2, \" \", x3, \" \", y3, \" v\", NL);\n }\n\n close() {\n this._out(\"h\", NL);\n }\n\n rect(x, y, w, h) {\n this._out(x, \" \", y, \" \", w, \" \", h, \" re\", NL);\n }\n\n ellipse(x, y, rx, ry) {\n function _X(v) { return x + v; }\n function _Y(v) { return y + v; }\n\n // how to get to the \"magic number\" is explained here:\n // http://www.whizkidtech.redprince.net/bezier/circle/kappa/\n var k = 0.5522847498307936;\n\n this.moveTo(_X(0), _Y(ry));\n this.bezier(\n _X(rx * k) , _Y(ry),\n _X(rx) , _Y(ry * k),\n _X(rx) , _Y(0)\n );\n this.bezier(\n _X(rx) , _Y(-ry * k),\n _X(rx * k) , _Y(-ry),\n _X(0) , _Y(-ry)\n );\n this.bezier(\n _X(-rx * k) , _Y(-ry),\n _X(-rx) , _Y(-ry * k),\n _X(-rx) , _Y(0)\n );\n this.bezier(\n _X(-rx) , _Y(ry * k),\n _X(-rx * k) , _Y(ry),\n _X(0) , _Y(ry)\n );\n }\n\n circle(x, y, r) {\n this.ellipse(x, y, r, r);\n }\n\n stroke() {\n this._out(\"S\", NL);\n }\n\n nop() {\n this._out(\"n\", NL);\n }\n\n clip() {\n this._out(\"W n\", NL);\n }\n\n clipStroke() {\n this._out(\"W S\", NL);\n }\n\n closeStroke() {\n this._out(\"s\", NL);\n }\n\n fill() {\n this._out(\"f\", NL);\n }\n\n fillStroke() {\n this._out(\"B\", NL);\n }\n\n drawImage(url) {\n var img = this._pdf.getImage(url);\n if (img) { // the result can be null for a cross-domain image\n this._xResources[img._resourceName] = img;\n this._out(img._resourceName, \" Do\", NL);\n }\n }\n\n comment(txt) {\n var self = this;\n txt.split(/\\r?\\n/g).forEach(function(line){\n self._out(\"% \", line, NL);\n });\n }\n\n // internal\n _context(val) {\n if (val != null) {\n this._opacity = val.opacity;\n this._matrix = val.matrix;\n } else {\n return {\n opacity: this._opacity,\n matrix: this._matrix\n };\n }\n }\n\n _toPage(p) {\n var m = this._matrix;\n var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5];\n return {\n x: a*p.x + c*p.y + e,\n y: b*p.x + d*p.y + f\n };\n }\n}\n\nfunction unquote(str) {\n return str.replace(/^\\s*(['\"])(.*)\\1\\s*$/, \"$2\");\n}\n\nfunction parseFontDef(fontdef) {\n // XXX: this is very crude for now and buggy. Proper parsing is quite involved.\n var rx = /^\\s*((normal|italic)\\s+)?((normal|small-caps)\\s+)?((normal|bold|\\d+)\\s+)?(([0-9.]+)(px|pt))(\\/(([0-9.]+)(px|pt)|normal))?\\s+(.*?)\\s*$/i;\n var m = rx.exec(fontdef);\n if (!m) {\n return { fontSize: 12, fontFamily: \"sans-serif\" };\n }\n var fontSize = m[8] ? parseInt(m[8], 10) : 12;\n return {\n italic : m[2] && m[2].toLowerCase() == \"italic\",\n variant : m[4],\n bold : m[6] && /bold|700/i.test(m[6]),\n fontSize : fontSize,\n lineHeight : m[12] ? m[12] == \"normal\" ? fontSize : parseInt(m[12], 10) : null,\n fontFamily : m[14].split(/\\s*,\\s*/g).map(unquote)\n };\n}\n\nfunction getFontURL(style) {\n function mkFamily(name) {\n if (style.bold) {\n name += \"|bold\";\n }\n if (style.italic) {\n name += \"|italic\";\n }\n return name.toLowerCase();\n }\n var fontFamily = style.fontFamily;\n var name, url;\n if (fontFamily instanceof Array) {\n for (var i = 0; i < fontFamily.length; ++i) {\n name = mkFamily(fontFamily[i]);\n url = FONT_MAPPINGS[name];\n if (url) {\n break;\n }\n }\n } else {\n url = FONT_MAPPINGS[fontFamily.toLowerCase()];\n }\n while (typeof url == \"function\") {\n url = url();\n }\n if (!url) {\n url = \"Times-Roman\";\n }\n return url;\n}\n\nvar FONT_MAPPINGS = {\n \"serif\" : \"Times-Roman\",\n \"serif|bold\" : \"Times-Bold\",\n \"serif|italic\" : \"Times-Italic\",\n \"serif|bold|italic\" : \"Times-BoldItalic\",\n \"sans-serif\" : \"Helvetica\",\n \"sans-serif|bold\" : \"Helvetica-Bold\",\n \"sans-serif|italic\" : \"Helvetica-Oblique\",\n \"sans-serif|bold|italic\" : \"Helvetica-BoldOblique\",\n \"monospace\" : \"Courier\",\n \"monospace|bold\" : \"Courier-Bold\",\n \"monospace|italic\" : \"Courier-Oblique\",\n \"monospace|bold|italic\" : \"Courier-BoldOblique\",\n \"zapfdingbats\" : \"ZapfDingbats\",\n \"zapfdingbats|bold\" : \"ZapfDingbats\",\n \"zapfdingbats|italic\" : \"ZapfDingbats\",\n \"zapfdingbats|bold|italic\" : \"ZapfDingbats\"\n};\n\nfunction fontAlias(alias, name) {\n alias = alias.toLowerCase();\n FONT_MAPPINGS[alias] = function() {\n return FONT_MAPPINGS[name];\n };\n FONT_MAPPINGS[alias + \"|bold\"] = function() {\n return FONT_MAPPINGS[name + \"|bold\"];\n };\n FONT_MAPPINGS[alias + \"|italic\"] = function() {\n return FONT_MAPPINGS[name + \"|italic\"];\n };\n FONT_MAPPINGS[alias + \"|bold|italic\"] = function() {\n return FONT_MAPPINGS[name + \"|bold|italic\"];\n };\n}\n\n// Let's define some common names to an appropriate replacement.\n// These are overridable via pdf.defineFont, should the user want to\n// include the proper versions.\n\nfontAlias(\"Times New Roman\" , \"serif\");\nfontAlias(\"Courier New\" , \"monospace\");\nfontAlias(\"Arial\" , \"sans-serif\");\nfontAlias(\"Helvetica\" , \"sans-serif\");\nfontAlias(\"Verdana\" , \"sans-serif\");\nfontAlias(\"Tahoma\" , \"sans-serif\");\nfontAlias(\"Georgia\" , \"sans-serif\");\nfontAlias(\"Monaco\" , \"monospace\");\nfontAlias(\"Andale Mono\" , \"monospace\");\n\nfunction defineFont(name, url) {\n if (arguments.length == 1) {\n for (var i in name) {\n if (hasOwnProperty(name, i)) {\n defineFont(i, name[i]);\n }\n }\n } else {\n name = name.toLowerCase();\n FONT_MAPPINGS[name] = url;\n\n // special handling for DejaVu fonts: if they get defined,\n // let them also replace the default families, for good\n // Unicode support out of the box.\n switch (name) {\n case \"dejavu sans\" : FONT_MAPPINGS[\"sans-serif\"] = url; break;\n case \"dejavu sans|bold\" : FONT_MAPPINGS[\"sans-serif|bold\"] = url; break;\n case \"dejavu sans|italic\" : FONT_MAPPINGS[\"sans-serif|italic\"] = url; break;\n case \"dejavu sans|bold|italic\" : FONT_MAPPINGS[\"sans-serif|bold|italic\"] = url; break;\n case \"dejavu serif\" : FONT_MAPPINGS[\"serif\"] = url; break;\n case \"dejavu serif|bold\" : FONT_MAPPINGS[\"serif|bold\"] = url; break;\n case \"dejavu serif|italic\" : FONT_MAPPINGS[\"serif|italic\"] = url; break;\n case \"dejavu serif|bold|italic\" : FONT_MAPPINGS[\"serif|bold|italic\"] = url; break;\n case \"dejavu mono\" : FONT_MAPPINGS[\"monospace\"] = url; break;\n case \"dejavu mono|bold\" : FONT_MAPPINGS[\"monospace|bold\"] = url; break;\n case \"dejavu mono|italic\" : FONT_MAPPINGS[\"monospace|italic\"] = url; break;\n case \"dejavu mono|bold|italic\" : FONT_MAPPINGS[\"monospace|bold|italic\"] = url; break;\n }\n }\n}\n\nfunction mmul(a, b) {\n var a1 = a[0], b1 = a[1], c1 = a[2], d1 = a[3], e1 = a[4], f1 = a[5];\n var a2 = b[0], b2 = b[1], c2 = b[2], d2 = b[3], e2 = b[4], f2 = b[5];\n return [\n a1*a2 + b1*c2, a1*b2 + b1*d2,\n c1*a2 + d1*c2, c1*b2 + d1*d2,\n e1*a2 + f1*c2 + e2, e1*b2 + f1*d2 + f2\n ];\n}\n\nfunction isIdentityMatrix(m) {\n return m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1 && m[4] === 0 && m[5] === 0;\n}\n\nconst TEXT_RENDERING_MODE = {\n fill : 0,\n stroke : 1,\n fillAndStroke : 2,\n invisible : 3,\n fillAndClip : 4,\n strokeAndClip : 5,\n fillStrokeClip : 6,\n clip : 7\n};\n\nexport {\n PDFDocument as Document,\n BinaryStream,\n defineFont,\n parseFontDef,\n getFontURL,\n loadFonts,\n loadImages,\n getPaperOptions,\n clearImageCache,\n TEXT_RENDERING_MODE\n};\n","import { deflate as pakoDeflate } from '@progress/pako-esm';\n\nexport const deflate = pakoDeflate;\n\nexport function supportsDeflate() {\n return true;\n}\n\n","/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\nimport { createPromise } from \"../util\";\nimport { parseColor as utils_parseColor, saveAs as util_saveAs, support } from \"../common\";\nimport * as PDF from \"./core\";\nimport { Group, Path, MultiPath, Gradient, RadialGradient } from '../drawing';\nimport * as geo from \"../geometry\";\n\nconst DEFAULT_IMAGE_DPI = 300;\nconst TEXT_RENDERING_MODE = PDF.TEXT_RENDERING_MODE;\n\nconst DASH_PATTERNS = {\n dash : [ 4 ],\n dashDot : [ 4, 2, 1, 2 ],\n dot : [ 1, 2 ],\n longDash : [ 8, 2 ],\n longDashDot : [ 8, 2, 1, 2 ],\n longDashDotDot : [ 8, 2, 1, 2, 1, 2 ],\n solid : []\n};\n\nconst LINE_CAP = {\n butt : 0,\n round : 1,\n square : 2\n};\n\nconst LINE_JOIN = {\n miter : 0,\n round : 1,\n bevel : 2\n};\n\nfunction render(group, callback) {\n var fonts = [], images = {}, options = group.options;\n\n function getOption(name, defval, hash) {\n if (!hash) {\n hash = options;\n }\n if (hash.pdf && hash.pdf[name] != null) {\n return hash.pdf[name];\n }\n return defval;\n }\n\n var multiPage = getOption(\"multiPage\");\n var imgDPI = getOption(\"imgDPI\", DEFAULT_IMAGE_DPI);\n\n PDF.clearImageCache();\n\n group.traverse(function(element){\n dispatch({\n Image: function(element) {\n var url = element.src();\n var size = element.bbox().size;\n if (imgDPI) {\n var prev = images[url];\n size = {\n width: Math.ceil(size.width * imgDPI / 72),\n height: Math.ceil(size.height * imgDPI / 72)\n };\n\n if (prev) {\n size.width = Math.max(prev.width, size.width);\n size.height = Math.max(prev.height, size.height);\n }\n }\n\n images[url] = size;\n },\n Text: function(element) {\n var style = PDF.parseFontDef(element.options.font);\n var url = PDF.getFontURL(style);\n if (fonts.indexOf(url) < 0) {\n fonts.push(url);\n }\n }\n }, element);\n });\n\n function doIt() {\n if (--count > 0) {\n return;\n }\n\n var pdf = new (PDF.Document)({\n producer : getOption(\"producer\"),\n title : getOption(\"title\"),\n author : getOption(\"author\"),\n subject : getOption(\"subject\"),\n keywords : getOption(\"keywords\"),\n creator : getOption(\"creator\"),\n date : getOption(\"date\"),\n\n autoPrint : getOption(\"autoPrint\")\n });\n\n function drawPage(group) {\n var options = group.options;\n\n var tmp = optimize(group);\n var bbox = tmp.bbox;\n group = tmp.root;\n // var tmp, bbox;\n\n var paperSize = getOption(\"paperSize\", getOption(\"paperSize\", \"auto\"), options), addMargin = false;\n if (paperSize == \"auto\") {\n if (bbox) {\n var size = bbox.getSize();\n paperSize = [ size.width, size.height ];\n addMargin = true;\n var origin = bbox.getOrigin();\n tmp = new Group();\n tmp.transform(new geo.Matrix(1, 0, 0, 1, -origin.x, -origin.y));\n tmp.append(group);\n group = tmp;\n }\n else {\n paperSize = \"A4\";\n }\n }\n\n var page;\n page = pdf.addPage({\n paperSize : paperSize,\n margin : getOption(\"margin\", getOption(\"margin\"), options),\n addMargin : addMargin,\n landscape : getOption(\"landscape\", getOption(\"landscape\", false), options)\n });\n drawElement(group, page, pdf);\n }\n\n if (multiPage) {\n group.children.forEach(drawPage);\n } else {\n drawPage(group);\n }\n\n callback(pdf.render(), pdf);\n }\n\n var count = 2;\n PDF.loadFonts(fonts, doIt);\n PDF.loadImages(images, doIt, {\n jpegQuality : getOption(\"jpegQuality\", 0.92),\n keepPNG : getOption(\"keepPNG\", false)\n });\n}\n\nfunction toDataURL(group, callback) {\n render(group, function(data){\n callback(\"data:application/pdf;base64,\" + data.base64());\n });\n}\n\nfunction toBlob(group, callback) {\n render(group, function(data){\n callback(new window.Blob([ data.get() ], { type: \"application/pdf\" }));\n });\n}\n\nfunction saveAs(group, filename, proxy, callback) {\n // XXX: Safari has Blob, but does not support the download attribute\n // so we'd end up converting to dataURL and using the proxy anyway.\n if (window.Blob && !support.browser.safari) {\n toBlob(group, function(blob){\n util_saveAs({ dataURI: blob, fileName: filename });\n if (callback) {\n callback(blob);\n }\n });\n } else {\n toDataURL(group, function(dataURL){\n util_saveAs({ dataURI: dataURL, fileName: filename, proxyURL: proxy });\n if (callback) {\n callback(dataURL);\n }\n });\n }\n}\n\nfunction dispatch(handlers, element) {\n var handler = handlers[element.nodeType];\n if (handler) {\n return handler.call.apply(handler, arguments);\n }\n return element;\n}\n\nfunction drawElement(element, page, pdf) {\n if (element.options._pdfDebug) {\n page.comment(\"BEGIN: \" + element.options._pdfDebug);\n }\n\n var transform = element.transform();\n var opacity = element.opacity();\n\n page.save();\n\n if (opacity != null && opacity < 1) {\n page.setOpacity(opacity);\n }\n\n setStrokeOptions(element, page, pdf);\n setFillOptions(element, page, pdf);\n\n if (transform) {\n var m = transform.matrix();\n page.transform(m.a, m.b, m.c, m.d, m.e, m.f);\n }\n\n setClipping(element, page, pdf);\n\n dispatch({\n Path : drawPath,\n MultiPath : drawMultiPath,\n Circle : drawCircle,\n Arc : drawArc,\n Text : drawText,\n Image : drawImage,\n Group : drawGroup,\n Rect : drawRect\n }, element, page, pdf);\n\n page.restore();\n\n if (element.options._pdfDebug) {\n page.comment(\"END: \" + element.options._pdfDebug);\n }\n}\n\nfunction setStrokeOptions(element, page) {\n var stroke = element.stroke && element.stroke();\n if (!stroke) {\n return;\n }\n\n var color = stroke.color;\n if (color) {\n color = parseColor(color);\n if (color == null) {\n return; // no stroke\n }\n page.setStrokeColor(color.r, color.g, color.b);\n if (color.a != 1) {\n page.setStrokeOpacity(color.a);\n }\n }\n\n var width = stroke.width;\n if (width != null) {\n if (width === 0) {\n return; // no stroke\n }\n page.setLineWidth(width);\n }\n\n var dashType = stroke.dashType;\n if (dashType) {\n page.setDashPattern(DASH_PATTERNS[dashType], 0);\n }\n\n var lineCap = stroke.lineCap;\n if (lineCap) {\n page.setLineCap(LINE_CAP[lineCap]);\n }\n\n var lineJoin = stroke.lineJoin;\n if (lineJoin) {\n page.setLineJoin(LINE_JOIN[lineJoin]);\n }\n\n var opacity = stroke.opacity;\n if (opacity != null) {\n page.setStrokeOpacity(opacity);\n }\n}\n\nfunction setFillOptions(element, page) {\n var fill = element.fill && element.fill();\n if (!fill) {\n return;\n }\n\n if (fill instanceof Gradient) {\n return;\n }\n\n var color = fill.color;\n if (color) {\n color = parseColor(color);\n if (color == null) {\n return; // no fill\n }\n page.setFillColor(color.r, color.g, color.b);\n if (color.a != 1) {\n page.setFillOpacity(color.a);\n }\n }\n\n var opacity = fill.opacity;\n if (opacity != null) {\n page.setFillOpacity(opacity);\n }\n}\n\nfunction setClipping(element, page, pdf) {\n // XXX: only Path supported at the moment.\n var clip = element.clip();\n if (clip) {\n _drawPath(clip, page, pdf);\n page.clip();\n // page.setStrokeColor(Math.random(), Math.random(), Math.random());\n // page.setLineWidth(1);\n // page.stroke();\n }\n}\n\nfunction shouldDraw(thing) {\n return (thing &&\n (thing instanceof Gradient ||\n (thing.color && !/^(none|transparent)$/i.test(thing.color) &&\n (thing.width == null || thing.width > 0) &&\n (thing.opacity == null || thing.opacity > 0))));\n}\n\nfunction maybeGradient(element, page, pdf, stroke) {\n var fill = element.fill();\n if (fill instanceof Gradient) {\n if (stroke) {\n page.clipStroke();\n } else {\n page.clip();\n }\n var isRadial = fill instanceof RadialGradient;\n var start, end;\n if (isRadial) {\n start = { x: fill.center().x , y: fill.center().y , r: 0 };\n end = { x: fill.center().x , y: fill.center().y , r: fill.radius() };\n } else {\n start = { x: fill.start().x , y: fill.start().y };\n end = { x: fill.end().x , y: fill.end().y };\n }\n\n var stops = fill.stops.elements().map(function(stop){\n var offset = stop.offset();\n if (/%$/.test(offset)) {\n offset = parseFloat(offset) / 100;\n } else {\n offset = parseFloat(offset);\n }\n var color = parseColor(stop.color());\n color.a *= stop.opacity();\n return {\n offset: offset,\n color: color\n };\n });\n\n // Duplicats first and last stop to fix\n // https://github.com/telerik/kendo-ui-core/issues/1782\n stops.unshift(stops[0]);\n stops.push(stops[stops.length - 1]);\n\n var gradient = {\n userSpace : fill.userSpace(),\n type : isRadial ? \"radial\" : \"linear\",\n start : start,\n end : end,\n stops : stops\n };\n var box = element.rawBBox();\n var tl = box.topLeft(), size = box.getSize();\n box = {\n left : tl.x,\n top : tl.y,\n width : size.width,\n height : size.height\n };\n page.gradient(gradient, box);\n return true;\n }\n}\n\nfunction maybeFillStroke(element, page, pdf) {\n if (shouldDraw(element.fill()) && shouldDraw(element.stroke())) {\n if (!maybeGradient(element, page, pdf, true)) {\n page.fillStroke();\n }\n } else if (shouldDraw(element.fill())) {\n if (!maybeGradient(element, page, pdf, false)) {\n page.fill();\n }\n } else if (shouldDraw(element.stroke())) {\n page.stroke();\n } else {\n // we should not get here; the path should have been\n // optimized away. but let's be prepared.\n page.nop();\n }\n}\n\nfunction maybeDrawRect(path, page) {\n var segments = path.segments;\n if (segments.length == 4 && path.options.closed) {\n // detect if this path looks like a rectangle parallel to the axis\n var a = [];\n for (var i = 0; i < segments.length; ++i) {\n if (segments[i].controlIn()) { // has curve?\n return false;\n }\n a[i] = segments[i].anchor();\n }\n // it's a rectangle if the y/x/y/x or x/y/x/y coords of\n // consecutive points are the same.\n var isRect = (\n a[0].y == a[1].y && a[1].x == a[2].x && a[2].y == a[3].y && a[3].x == a[0].x\n ) || (\n a[0].x == a[1].x && a[1].y == a[2].y && a[2].x == a[3].x && a[3].y == a[0].y\n );\n if (isRect) {\n // this saves a bunch of instructions in PDF:\n // moveTo, lineTo, lineTo, lineTo, close -> rect.\n page.rect(a[0].x, a[0].y,\n a[2].x - a[0].x /*width*/,\n a[2].y - a[0].y /*height*/);\n return true;\n }\n }\n}\n\nfunction _drawPath(element, page, pdf) {\n var segments = element.segments;\n if (segments.length === 0) {\n return;\n }\n if (!maybeDrawRect(element, page, pdf)) {\n for (var prev, i = 0; i < segments.length; ++i) {\n var seg = segments[i];\n var anchor = seg.anchor();\n if (!prev) {\n page.moveTo(anchor.x, anchor.y);\n } else {\n var prevOut = prev.controlOut();\n var controlIn = seg.controlIn();\n if (prevOut && controlIn) {\n page.bezier(\n prevOut.x , prevOut.y,\n controlIn.x , controlIn.y,\n anchor.x , anchor.y\n );\n } else {\n page.lineTo(anchor.x, anchor.y);\n }\n }\n prev = seg;\n }\n if (element.options.closed) {\n page.close();\n }\n }\n}\n\nfunction drawPath(element, page, pdf) {\n _drawPath(element, page, pdf);\n maybeFillStroke(element, page, pdf);\n}\n\nfunction drawMultiPath(element, page, pdf) {\n var paths = element.paths;\n for (var i = 0; i < paths.length; ++i) {\n _drawPath(paths[i], page, pdf);\n }\n maybeFillStroke(element, page, pdf);\n}\n\nfunction drawCircle(element, page, pdf) {\n var g = element.geometry();\n page.circle(g.center.x, g.center.y, g.radius);\n maybeFillStroke(element, page, pdf);\n}\n\nfunction drawArc(element, page, pdf) {\n var points = element.geometry().curvePoints();\n page.moveTo(points[0].x, points[0].y);\n for (var i = 1; i < points.length;) {\n page.bezier(\n points[i].x, points[i++].y,\n points[i].x, points[i++].y,\n points[i].x, points[i++].y\n );\n }\n maybeFillStroke(element, page, pdf);\n}\n\nfunction drawText(element, page) {\n var style = PDF.parseFontDef(element.options.font);\n var pos = element._position;\n var mode;\n if (element.fill() && element.stroke()) {\n mode = TEXT_RENDERING_MODE.fillAndStroke;\n } else if (element.fill()) {\n mode = TEXT_RENDERING_MODE.fill;\n } else if (element.stroke()) {\n mode = TEXT_RENDERING_MODE.stroke;\n }\n\n page.transform(1, 0, 0, -1, pos.x, pos.y + style.fontSize);\n page.beginText();\n page.setFont(PDF.getFontURL(style), style.fontSize);\n page.setTextRenderingMode(mode);\n page.showText(element.content(), element._pdfRect ? element._pdfRect.width() : null);\n page.endText();\n}\n\nfunction drawGroup(element, page, pdf) {\n if (element._pdfLink) {\n page.addLink(element._pdfLink.url, element._pdfLink);\n }\n var children = element.children;\n for (var i = 0; i < children.length; ++i) {\n drawElement(children[i], page, pdf);\n }\n}\n\nfunction drawImage(element, page) {\n var url = element.src();\n if (!url) {\n return;\n }\n\n var rect = element.rect();\n var tl = rect.getOrigin();\n var sz = rect.getSize();\n page.transform(sz.width, 0, 0, -sz.height, tl.x, tl.y + sz.height);\n page.drawImage(url);\n}\n\nfunction drawRect(element, page, pdf) {\n var geometry = element.geometry();\n const [ rx, ry ] = geometry.cornerRadius;\n if (rx === 0 && ry === 0) {\n page.rect(geometry.origin.x, geometry.origin.y, geometry.size.width, geometry.size.height);\n maybeFillStroke(element, page, pdf);\n } else {\n drawPath(Path.fromRect(geometry, element.options), page, pdf);\n }\n}\n\nfunction parseColor(value) {\n var color = utils_parseColor(value, true);\n return color ? color.toRGB() : null;\n}\n\nfunction optimize(root) {\n var clipbox = false;\n var matrix = geo.Matrix.unit();\n var currentBox = null;\n var changed;\n do {\n changed = false;\n root = opt(root);\n } while (root && changed);\n return { root: root, bbox: currentBox };\n\n function change(newShape) {\n changed = true;\n return newShape;\n }\n\n function visible(shape) {\n return (shape.visible() && shape.opacity() > 0 &&\n ( shouldDraw(shape.fill()) ||\n shouldDraw(shape.stroke()) ));\n }\n\n function optArray(a) {\n var b = [];\n for (var i = 0; i < a.length; ++i) {\n var el = opt(a[i]);\n if (el != null) {\n b.push(el);\n }\n }\n return b;\n }\n\n function withClipping(shape, f) {\n var saveclipbox = clipbox;\n var savematrix = matrix;\n\n if (shape.transform()) {\n matrix = matrix.multiplyCopy(shape.transform().matrix());\n }\n\n var clip = shape.clip();\n if (clip) {\n clip = clip.bbox();\n if (clip) {\n clip = clip.bbox(matrix);\n clipbox = clipbox ? geo.Rect.intersect(clipbox, clip) : clip;\n }\n }\n\n try {\n return f();\n }\n finally {\n clipbox = saveclipbox;\n matrix = savematrix;\n }\n }\n\n function inClipbox(shape) {\n if (clipbox == null) {\n return false;\n }\n var box = shape.rawBBox().bbox(matrix);\n if (clipbox && box) {\n box = geo.Rect.intersect(box, clipbox);\n }\n return box;\n }\n\n function opt(shape) {\n return withClipping(shape, function(){\n if (!(shape instanceof Group || shape instanceof MultiPath)) {\n var box = inClipbox(shape);\n if (!box) {\n return change(null);\n }\n currentBox = currentBox ? geo.Rect.union(currentBox, box) : box;\n }\n return dispatch({\n Path: function(shape) {\n if (shape.segments.length === 0 || !visible(shape)) {\n return change(null);\n }\n return shape;\n },\n MultiPath: function(shape) {\n if (!visible(shape)) {\n return change(null);\n }\n var el = new MultiPath(shape.options);\n el.paths = optArray(shape.paths);\n if (el.paths.length === 0) {\n return change(null);\n }\n return el;\n },\n Circle: function(shape) {\n if (!visible(shape)) {\n return change(null);\n }\n return shape;\n },\n Arc: function(shape) {\n if (!visible(shape)) {\n return change(null);\n }\n return shape;\n },\n Text: function(shape) {\n if (!/\\S/.test(shape.content()) || !visible(shape)) {\n return change(null);\n }\n return shape;\n },\n Image: function(shape) {\n if (!(shape.visible() && shape.opacity() > 0)) {\n return change(null);\n }\n return shape;\n },\n Group: function(shape) {\n if (!(shape.visible() && shape.opacity() > 0)) {\n return change(null);\n }\n var el = new Group(shape.options);\n el.children = optArray(shape.children);\n el._pdfLink = shape._pdfLink;\n if (shape !== root && el.children.length === 0 && !shape._pdfLink) {\n return change(null);\n }\n return el;\n },\n Rect: function(shape) {\n if (!visible(shape)) {\n return change(null);\n }\n return shape;\n }\n }, shape);\n });\n }\n}\n\nfunction exportPDF(group, options) {\n var promise = createPromise();\n\n for (var i in options) {\n if (i == \"margin\" && group.options.pdf && group.options.pdf._ignoreMargin) {\n // This hackish option is set by the page breaking code in drawDOM. The idea is\n // that margin is already taken into account there (that's required to do proper\n // page breaking) and we don't want to set it again here, as it would double the\n // top-left margin, and truncate the content on bottom/right.\n continue;\n }\n group.options.set(\"pdf.\" + i, options[i]);\n }\n\n toDataURL(group, promise.resolve);\n\n return promise;\n}\n\n// XXX: the duplication is in order to keep exportPDF return a data\n// URI, which is what previous versions do. Currently only IE9 does\n// not support Blob, IMO we should switch to Blob by default\n// everywhere.\nfunction exportPDFToBlob(group, options) {\n var promise = createPromise();\n\n for (var i in options) {\n if (i == \"margin\" && group.options.pdf && group.options.pdf._ignoreMargin) {\n // This hackish option is set by the page breaking code in drawDOM. The idea is\n // that margin is already taken into account there (that's required to do proper\n // page breaking) and we don't want to set it again here, as it would double the\n // top-left margin, and truncate the content on bottom/right.\n continue;\n }\n group.options.set(\"pdf.\" + i, options[i]);\n }\n\n if (window.Blob && !support.browser.safari) {\n toBlob(group, promise.resolve);\n } else {\n toDataURL(group, promise.resolve);\n }\n\n return promise;\n}\n\n\nexport { exportPDF, exportPDFToBlob, saveAs, toDataURL, toBlob, render };\n","/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\n/*****************************************************************************\\\n *\n * The code in this file, although written from scratch, is influenced by the\n * TrueType parser/encoder in PDFKit -- http://pdfkit.org/ (a CoffeeScript\n * library for producing PDF files).\n *\n * PDFKit is (c) Devon Govett 2014 and released under the MIT License.\n *\n\\*****************************************************************************/\n\nimport { BinaryStream, ucs2decode } from \"./utils\";\n\nfunction hasOwnProperty(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction sortedKeys(obj) {\n return Object.keys(obj).sort(function(a, b){ return a - b; }).map(parseFloat);\n}\n\n///\nclass Directory {\n constructor(data) {\n this.raw = data;\n this.scalerType = data.readLong();\n this.tableCount = data.readShort();\n this.searchRange = data.readShort();\n this.entrySelector = data.readShort();\n this.rangeShift = data.readShort();\n\n var tables = this.tables = {};\n for (var i = 0; i < this.tableCount; ++i) {\n var entry = {\n tag : data.readString(4),\n checksum : data.readLong(),\n offset : data.readLong(),\n length : data.readLong()\n };\n tables[entry.tag] = entry;\n }\n }\n\n readTable(name, Ctor) {\n var def = this.tables[name];\n if (!def) {\n throw new Error(\"Table \" + name + \" not found in directory\");\n }\n return (this[name] = def.table = new Ctor(this, def));\n }\n\n render(tables) {\n var tableCount = Object.keys(tables).length;\n\n var maxpow2 = Math.pow(2, Math.floor(Math.log(tableCount) / Math.LN2));\n var searchRange = maxpow2 * 16;\n var entrySelector = Math.floor(Math.log(maxpow2) / Math.LN2);\n var rangeShift = tableCount * 16 - searchRange;\n\n var out = BinaryStream();\n out.writeLong(this.scalerType);\n out.writeShort(tableCount);\n out.writeShort(searchRange);\n out.writeShort(entrySelector);\n out.writeShort(rangeShift);\n\n var directoryLength = tableCount * 16;\n var offset = out.offset() + directoryLength;\n var headOffset = null;\n var tableData = BinaryStream();\n\n for (var tag in tables) {\n if (hasOwnProperty(tables, tag)) {\n var table = tables[tag];\n\n out.writeString(tag);\n out.writeLong(this.checksum(table));\n out.writeLong(offset);\n out.writeLong(table.length);\n\n tableData.write(table);\n if (tag == \"head\") {\n headOffset = offset;\n }\n offset += table.length;\n\n while (offset % 4) {\n tableData.writeByte(0);\n offset++;\n }\n }\n }\n\n out.write(tableData.get());\n var sum = this.checksum(out.get());\n var adjustment = 0xB1B0AFBA - sum;\n\n out.offset(headOffset + 8);\n out.writeLong(adjustment);\n return out.get();\n }\n\n checksum(data) {\n data = BinaryStream(data);\n var sum = 0;\n while (!data.eof()) {\n sum += data.readLong();\n }\n return sum & 0xFFFFFFFF;\n }\n}\n\nclass Table {\n constructor(file, def) {\n this.definition = def;\n this.length = def.length;\n this.offset = def.offset;\n this.file = file;\n this.rawData = file.raw;\n this.parse(file.raw);\n }\n\n raw() {\n return this.rawData.slice(this.offset, this.length);\n }\n\n parse() {} // abstract\n}\n\nclass HeadTable extends Table {\n parse(data) {\n data.offset(this.offset);\n this.version = data.readLong();\n this.revision = data.readLong();\n this.checkSumAdjustment = data.readLong();\n this.magicNumber = data.readLong();\n this.flags = data.readShort();\n this.unitsPerEm = data.readShort();\n this.created = data.read(8);\n this.modified = data.read(8);\n\n this.xMin = data.readShort_();\n this.yMin = data.readShort_();\n this.xMax = data.readShort_();\n this.yMax = data.readShort_();\n\n this.macStyle = data.readShort();\n this.lowestRecPPEM = data.readShort();\n this.fontDirectionHint = data.readShort_();\n this.indexToLocFormat = data.readShort_();\n this.glyphDataFormat = data.readShort_();\n }\n\n render(indexToLocFormat) {\n var out = BinaryStream();\n out.writeLong(this.version);\n out.writeLong(this.revision);\n out.writeLong(0); // checksum adjustment; shall be computed later\n out.writeLong(this.magicNumber);\n out.writeShort(this.flags);\n out.writeShort(this.unitsPerEm);\n out.write(this.created);\n out.write(this.modified);\n out.writeShort_(this.xMin);\n out.writeShort_(this.yMin);\n out.writeShort_(this.xMax);\n out.writeShort_(this.yMax);\n out.writeShort(this.macStyle);\n out.writeShort(this.lowestRecPPEM);\n out.writeShort_(this.fontDirectionHint);\n out.writeShort_(indexToLocFormat); // this will depend on the `loca` table\n out.writeShort_(this.glyphDataFormat);\n return out.get();\n }\n}\n\nclass LocaTable extends Table {\n parse(data) {\n data.offset(this.offset);\n var format = this.file.head.indexToLocFormat;\n if (format === 0) {\n this.offsets = data.times(this.length / 2, function(){\n return 2 * data.readShort();\n });\n } else {\n this.offsets = data.times(this.length / 4, data.readLong);\n }\n }\n\n offsetOf(id) {\n return this.offsets[id];\n }\n\n lengthOf(id) {\n return this.offsets[id + 1] - this.offsets[id];\n }\n\n render(offsets) {\n var out = BinaryStream();\n var needsLongFormat = offsets[offsets.length - 1] > 0xFFFF;\n for (var i = 0; i < offsets.length; ++i) {\n if (needsLongFormat) {\n out.writeLong(offsets[i]);\n } else {\n out.writeShort(offsets[i] / 2);\n }\n }\n return {\n format: needsLongFormat ? 1 : 0,\n table: out.get()\n };\n }\n}\n\nclass HheaTable extends Table {\n parse(data) {\n data.offset(this.offset);\n\n this.version = data.readLong();\n this.ascent = data.readShort_();\n this.descent = data.readShort_();\n this.lineGap = data.readShort_();\n this.advanceWidthMax = data.readShort();\n this.minLeftSideBearing = data.readShort_();\n this.minRightSideBearing = data.readShort_();\n this.xMaxExtent = data.readShort_();\n this.caretSlopeRise = data.readShort_();\n this.caretSlopeRun = data.readShort_();\n this.caretOffset = data.readShort_();\n\n data.skip(4 * 2); // reserved\n\n this.metricDataFormat = data.readShort_();\n this.numOfLongHorMetrics = data.readShort();\n }\n\n render(ids) {\n var out = BinaryStream();\n out.writeLong(this.version);\n out.writeShort_(this.ascent);\n out.writeShort_(this.descent);\n out.writeShort_(this.lineGap);\n out.writeShort(this.advanceWidthMax);\n out.writeShort_(this.minLeftSideBearing);\n out.writeShort_(this.minRightSideBearing);\n out.writeShort_(this.xMaxExtent);\n out.writeShort_(this.caretSlopeRise);\n out.writeShort_(this.caretSlopeRun);\n out.writeShort_(this.caretOffset);\n\n out.write([ 0, 0, 0, 0, 0, 0, 0, 0 ]); // reserved bytes\n\n out.writeShort_(this.metricDataFormat);\n out.writeShort(ids.length);\n return out.get();\n }\n}\n\nclass MaxpTable extends Table {\n parse(data) {\n data.offset(this.offset);\n this.version = data.readLong();\n this.numGlyphs = data.readShort();\n this.maxPoints = data.readShort();\n this.maxContours = data.readShort();\n this.maxComponentPoints = data.readShort();\n this.maxComponentContours = data.readShort();\n this.maxZones = data.readShort();\n this.maxTwilightPoints = data.readShort();\n this.maxStorage = data.readShort();\n this.maxFunctionDefs = data.readShort();\n this.maxInstructionDefs = data.readShort();\n this.maxStackElements = data.readShort();\n this.maxSizeOfInstructions = data.readShort();\n this.maxComponentElements = data.readShort();\n this.maxComponentDepth = data.readShort();\n }\n\n render(glyphIds) {\n var out = BinaryStream();\n out.writeLong(this.version);\n out.writeShort(glyphIds.length);\n out.writeShort(this.maxPoints);\n out.writeShort(this.maxContours);\n out.writeShort(this.maxComponentPoints);\n out.writeShort(this.maxComponentContours);\n out.writeShort(this.maxZones);\n out.writeShort(this.maxTwilightPoints);\n out.writeShort(this.maxStorage);\n out.writeShort(this.maxFunctionDefs);\n out.writeShort(this.maxInstructionDefs);\n out.writeShort(this.maxStackElements);\n out.writeShort(this.maxSizeOfInstructions);\n out.writeShort(this.maxComponentElements);\n out.writeShort(this.maxComponentDepth);\n return out.get();\n }\n}\n\nclass HmtxTable extends Table {\n parse(data) {\n data.offset(this.offset);\n var dir = this.file, hhea = dir.hhea;\n this.metrics = data.times(hhea.numOfLongHorMetrics, function(){\n return {\n advance: data.readShort(),\n lsb: data.readShort_()\n };\n });\n var lsbCount = dir.maxp.numGlyphs - dir.hhea.numOfLongHorMetrics;\n this.leftSideBearings = data.times(lsbCount, data.readShort_);\n }\n\n forGlyph(id) {\n var metrics = this.metrics;\n var n = metrics.length;\n if (id < n) {\n return metrics[id];\n }\n return {\n advance: metrics[n - 1].advance,\n lsb: this.leftSideBearings[id - n]\n };\n }\n\n render(glyphIds) {\n var out = BinaryStream();\n for (var i = 0; i < glyphIds.length; ++i) {\n var m = this.forGlyph(glyphIds[i]);\n out.writeShort(m.advance);\n out.writeShort_(m.lsb);\n }\n return out.get();\n }\n}\n\nvar GlyfTable = (function(){\n class SimpleGlyph {\n get compound() {\n return false;\n }\n\n constructor(raw) {\n this.raw = raw;\n }\n\n render() {\n return this.raw.get();\n }\n }\n\n var ARG_1_AND_2_ARE_WORDS = 0x0001;\n var WE_HAVE_A_SCALE = 0x0008;\n var MORE_COMPONENTS = 0x0020;\n var WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n var WE_HAVE_A_TWO_BY_TWO = 0x0080;\n //var WE_HAVE_INSTRUCTIONS = 0x0100;\n\n class CompoundGlyph {\n get compound() {\n return true;\n }\n\n constructor(data) {\n this.raw = data;\n var ids = this.glyphIds = [];\n var offsets = this.idOffsets = [];\n while (true) { // eslint-disable-line no-constant-condition\n var flags = data.readShort();\n offsets.push(data.offset());\n ids.push(data.readShort());\n\n if (!(flags & MORE_COMPONENTS)) {\n break;\n }\n\n data.skip(flags & ARG_1_AND_2_ARE_WORDS ? 4 : 2);\n\n if (flags & WE_HAVE_A_TWO_BY_TWO) {\n data.skip(8);\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n data.skip(4);\n } else if (flags & WE_HAVE_A_SCALE) {\n data.skip(2);\n }\n }\n }\n\n render(old2new) {\n var out = BinaryStream(this.raw.get());\n for (var i = 0; i < this.glyphIds.length; ++i) {\n var id = this.glyphIds[i];\n out.offset(this.idOffsets[i]);\n out.writeShort(old2new[id]);\n }\n return out.get();\n }\n }\n\n return class extends Table {\n parse() {\n this.cache = {};\n }\n\n glyphFor(id) {\n var cache = this.cache;\n if (hasOwnProperty(cache, id)) {\n return cache[id];\n }\n\n var loca = this.file.loca;\n var length = loca.lengthOf(id);\n\n if (length === 0) {\n return (cache[id] = null);\n }\n\n var data = this.rawData;\n var offset = this.offset + loca.offsetOf(id);\n var raw = BinaryStream(data.slice(offset, length));\n\n var numberOfContours = raw.readShort_();\n var xMin = raw.readShort_();\n var yMin = raw.readShort_();\n var xMax = raw.readShort_();\n var yMax = raw.readShort_();\n\n var glyph = cache[id] = numberOfContours < 0 ? new CompoundGlyph(raw) : new SimpleGlyph(raw);\n\n glyph.numberOfContours = numberOfContours;\n glyph.xMin = xMin;\n glyph.yMin = yMin;\n glyph.xMax = xMax;\n glyph.yMax = yMax;\n\n return glyph;\n }\n\n render(glyphs, oldIds, old2new) {\n var out = BinaryStream(), offsets = [];\n for (var i = 0; i < oldIds.length; ++i) {\n var id = oldIds[i];\n var glyph = glyphs[id];\n if (out.offset() % 2) {\n out.writeByte(0);\n }\n offsets.push(out.offset());\n if (glyph) {\n out.write(glyph.render(old2new));\n }\n }\n if (out.offset() % 2) {\n out.writeByte(0);\n }\n offsets.push(out.offset());\n return {\n table: out.get(),\n offsets: offsets\n };\n }\n };\n}());\n\nvar NameTable = (function(){\n class NameEntry {\n constructor(text, entry) {\n this.text = text;\n this.length = text.length;\n this.platformID = entry.platformID;\n this.platformSpecificID = entry.platformSpecificID;\n this.languageID = entry.languageID;\n this.nameID = entry.nameID;\n }\n }\n\n return class extends Table {\n parse(data) {\n data.offset(this.offset);\n data.readShort(); // format\n var count = data.readShort();\n var stringOffset = this.offset + data.readShort();\n var nameRecords = data.times(count, function(){\n return {\n platformID : data.readShort(),\n platformSpecificID : data.readShort(),\n languageID : data.readShort(),\n nameID : data.readShort(),\n length : data.readShort(),\n offset : data.readShort() + stringOffset\n };\n });\n var strings = this.strings = {};\n for (var i = 0; i < nameRecords.length; ++i) {\n var rec = nameRecords[i];\n data.offset(rec.offset);\n var text = data.readString(rec.length);\n if (!strings[rec.nameID]) {\n strings[rec.nameID] = [];\n }\n strings[rec.nameID].push(new NameEntry(text, rec));\n }\n this.postscriptEntry = strings[6][0];\n this.postscriptName = this.postscriptEntry.text.replace(/[^\\x20-\\x7F]/g, \"\");\n }\n\n render(psName) {\n var strings = this.strings;\n var strCount = 0;\n for (var i in strings) {\n if (hasOwnProperty(strings, i)) {\n strCount += strings[i].length;\n }\n }\n var out = BinaryStream();\n var strTable = BinaryStream();\n\n out.writeShort(0); // format\n out.writeShort(strCount);\n out.writeShort(6 + 12 * strCount); // stringOffset\n\n for (i in strings) {\n if (hasOwnProperty(strings, i)) {\n var list = i == 6 ? [\n new NameEntry(psName, this.postscriptEntry)\n ] : strings[i];\n for (var j = 0; j < list.length; ++j) {\n var str = list[j];\n out.writeShort(str.platformID);\n out.writeShort(str.platformSpecificID);\n out.writeShort(str.languageID);\n out.writeShort(str.nameID);\n out.writeShort(str.length);\n out.writeShort(strTable.offset());\n\n strTable.writeString(str.text);\n }\n }\n }\n\n out.write(strTable.get());\n\n return out.get();\n }\n };\n})();\n\nvar PostTable = (function(){\n var POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at 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 bracketleft backslash bracketright asciicircum underscore grave 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 braceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis Udieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave ecircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve ocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent sterling section bullet paragraph germandbls registered copyright trademark acute dieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu partialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash questiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft guillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash quotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis fraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered quotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis Egrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute Ucircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla hungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth eth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior onehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla Cacute cacute Ccaron ccaron dcroat\".split(/\\s+/g);\n\n return class extends Table {\n parse(data) {\n data.offset(this.offset);\n\n this.format = data.readLong();\n this.italicAngle = data.readFixed_();\n this.underlinePosition = data.readShort_();\n this.underlineThickness = data.readShort_();\n this.isFixedPitch = data.readLong();\n this.minMemType42 = data.readLong();\n this.maxMemType42 = data.readLong();\n this.minMemType1 = data.readLong();\n this.maxMemType1 = data.readLong();\n\n var numberOfGlyphs;\n\n switch (this.format) {\n case 0x00010000:\n case 0x00030000:\n break;\n\n case 0x00020000:\n numberOfGlyphs = data.readShort();\n this.glyphNameIndex = data.times(numberOfGlyphs, data.readShort);\n this.names = [];\n var limit = this.offset + this.length;\n while (data.offset() < limit) {\n this.names.push(data.readString(data.readByte()));\n }\n break;\n\n case 0x00025000:\n numberOfGlyphs = data.readShort();\n this.offsets = data.read(numberOfGlyphs);\n break;\n\n case 0x00040000:\n this.map = data.times(this.file.maxp.numGlyphs, data.readShort);\n break;\n }\n }\n\n glyphFor(code) {\n switch (this.format) {\n case 0x00010000:\n return POSTSCRIPT_GLYPHS[code] || \".notdef\";\n\n case 0x00020000:\n var index = this.glyphNameIndex[code];\n if (index < POSTSCRIPT_GLYPHS.length) {\n return POSTSCRIPT_GLYPHS[index];\n }\n return this.names[index - POSTSCRIPT_GLYPHS.length] || \".notdef\";\n\n case 0x00025000:\n\n case 0x00030000:\n return \".notdef\";\n\n case 0x00040000:\n return this.map[code] || 0xFFFF;\n }\n }\n\n render(mapping) {\n if (this.format == 0x00030000) {\n return this.raw();\n }\n\n // keep original header, but set format to 2.0\n var out = BinaryStream(this.rawData.slice(this.offset, 32));\n out.writeLong(0x00020000);\n out.offset(32);\n\n var indexes = [];\n var strings = [];\n\n for (var i = 0; i < mapping.length; ++i) {\n var id = mapping[i];\n var post = this.glyphFor(id);\n var index = POSTSCRIPT_GLYPHS.indexOf(post);\n if (index >= 0) {\n indexes.push(index);\n } else {\n indexes.push(POSTSCRIPT_GLYPHS.length + strings.length);\n strings.push(post);\n }\n }\n\n out.writeShort(mapping.length);\n\n for (i = 0; i < indexes.length; ++i) {\n out.writeShort(indexes[i]);\n }\n\n for (i = 0; i < strings.length; ++i) {\n out.writeByte(strings[i].length);\n out.writeString(strings[i]);\n }\n\n return out.get();\n }\n };\n})();\n\nvar CmapTable = (function(){\n class CmapEntry {\n constructor(data, offset, codeMap) {\n var self = this;\n self.platformID = data.readShort();\n self.platformSpecificID = data.readShort();\n self.offset = offset + data.readLong();\n\n data.saveExcursion(function(){\n var code;\n data.offset(self.offset);\n self.format = data.readShort();\n\n switch (self.format) {\n case 0:\n self.length = data.readShort();\n self.language = data.readShort();\n for (var i = 0; i < 256; ++i) {\n codeMap[i] = data.readByte();\n }\n break;\n\n case 4:\n self.length = data.readShort();\n self.language = data.readShort();\n var segCount = data.readShort() / 2;\n\n data.skip(6); // searchRange, entrySelector, rangeShift\n var endCode = data.times(segCount, data.readShort);\n data.skip(2); // reserved pad\n var startCode = data.times(segCount, data.readShort);\n var idDelta = data.times(segCount, data.readShort_);\n var idRangeOffset = data.times(segCount, data.readShort);\n\n var count = (self.length + self.offset - data.offset()) / 2;\n var glyphIds = data.times(count, data.readShort);\n\n for (i = 0; i < segCount; ++i) {\n var start = startCode[i], end = endCode[i];\n for (code = start; code <= end; ++code) {\n var glyphId;\n if (idRangeOffset[i] === 0) {\n glyphId = code + idDelta[i];\n } else {\n ///\n // When non-zero, idRangeOffset contains for each segment the byte offset of the Glyph ID\n // into the glyphIds table, from the *current* `i` cell of idRangeOffset. In other words,\n // this offset spans from the first into the second array. This works, because the arrays\n // are consecutive in the TTF file:\n //\n // [ ...idRangeOffset... ][ ...glyphIds... ]\n // ...... 48 ...... .... ID ....\n // ^----- 48 bytes -----^\n //\n // (but I can't stop wondering why is it not just a plain index, possibly incremented by 1\n // so that we can have that special `zero` value.)\n //\n // The elements of idRangeOffset are even numbers, because both arrays contain 16-bit words,\n // yet the offset is in bytes. That is why we divide it by 2. Then we subtract the\n // remaining segments (segCount-i), and add the code-start offset, to which we need to add\n // the corresponding delta to get the actual glyph ID.\n ///\n var index = idRangeOffset[i] / 2 - (segCount - i) + (code - start);\n glyphId = glyphIds[index] || 0;\n if (glyphId !== 0) {\n glyphId += idDelta[i];\n }\n }\n codeMap[code] = glyphId & 0xFFFF;\n }\n }\n break;\n\n case 6:\n self.length = data.readShort();\n self.language = data.readShort();\n code = data.readShort();\n var length = data.readShort();\n while (length-- > 0) {\n codeMap[code++] = data.readShort();\n }\n break;\n\n case 12:\n data.readShort(); // reserved\n self.length = data.readLong();\n self.language = data.readLong();\n var ngroups = data.readLong();\n while (ngroups-- > 0) {\n code = data.readLong();\n var endCharCode = data.readLong();\n var glyphCode = data.readLong();\n while (code <= endCharCode) {\n codeMap[code++] = glyphCode++;\n }\n }\n break;\n\n default:\n if (window.console) {\n window.console.error(\"Unhandled CMAP format: \" + self.format);\n }\n }\n });\n }\n }\n\n function renderCharmap(ncid2ogid, ogid2ngid) {\n var codes = sortedKeys(ncid2ogid);\n var startCodes = [];\n var endCodes = [];\n var last = null;\n var diff = null;\n\n function new_gid(charcode) {\n return ogid2ngid[ncid2ogid[charcode]];\n }\n\n for (var i = 0; i < codes.length; ++i) {\n var code = codes[i];\n var gid = new_gid(code);\n var delta = gid - code;\n if (last == null || delta !== diff) {\n if (last) {\n endCodes.push(last);\n }\n startCodes.push(code);\n diff = delta;\n }\n last = code;\n }\n\n if (last) {\n endCodes.push(last);\n }\n endCodes.push(0xFFFF);\n startCodes.push(0xFFFF);\n\n var segCount = startCodes.length;\n var segCountX2 = segCount * 2;\n var searchRange = 2 * Math.pow(2, Math.floor(Math.log(segCount) / Math.LN2));\n var entrySelector = Math.log(searchRange / 2) / Math.LN2;\n var rangeShift = segCountX2 - searchRange;\n\n var deltas = [];\n var rangeOffsets = [];\n var glyphIds = [];\n\n for (i = 0; i < segCount; ++i) {\n var startCode = startCodes[i];\n var endCode = endCodes[i];\n if (startCode == 0xFFFF) {\n deltas.push(0);\n rangeOffsets.push(0);\n break;\n }\n var startGlyph = new_gid(startCode);\n if (startCode - startGlyph >= 0x8000) {\n deltas.push(0);\n rangeOffsets.push(2 * (glyphIds.length + segCount - i));\n for (var j = startCode; j <= endCode; ++j) {\n glyphIds.push(new_gid(j));\n }\n } else {\n deltas.push(startGlyph - startCode);\n rangeOffsets.push(0);\n }\n }\n\n var out = BinaryStream();\n\n out.writeShort(3); // platformID\n out.writeShort(1); // platformSpecificID\n out.writeLong(12); // offset\n out.writeShort(4); // format\n out.writeShort(16 + segCount * 8 + glyphIds.length * 2); // length\n out.writeShort(0); // language\n out.writeShort(segCountX2);\n out.writeShort(searchRange);\n out.writeShort(entrySelector);\n out.writeShort(rangeShift);\n\n endCodes.forEach(out.writeShort);\n out.writeShort(0); // reserved pad\n startCodes.forEach(out.writeShort);\n deltas.forEach(out.writeShort_);\n rangeOffsets.forEach(out.writeShort);\n glyphIds.forEach(out.writeShort);\n\n return out.get();\n }\n\n return class extends Table {\n parse(data) {\n var self = this;\n var offset = self.offset;\n data.offset(offset);\n self.codeMap = {};\n self.version = data.readShort();\n var tableCount = data.readShort();\n self.tables = data.times(tableCount, function(){\n return new CmapEntry(data, offset, self.codeMap);\n });\n }\n\n static render(ncid2ogid, ogid2ngid) {\n var out = BinaryStream();\n out.writeShort(0); // version\n out.writeShort(1); // tableCount\n out.write(renderCharmap(ncid2ogid, ogid2ngid));\n return out.get();\n }\n };\n\n})();\n\nclass OS2Table extends Table {\n parse(data) {\n data.offset(this.offset);\n this.version = data.readShort();\n this.averageCharWidth = data.readShort_();\n this.weightClass = data.readShort();\n this.widthClass = data.readShort();\n this.type = data.readShort();\n this.ySubscriptXSize = data.readShort_();\n this.ySubscriptYSize = data.readShort_();\n this.ySubscriptXOffset = data.readShort_();\n this.ySubscriptYOffset = data.readShort_();\n this.ySuperscriptXSize = data.readShort_();\n this.ySuperscriptYSize = data.readShort_();\n this.ySuperscriptXOffset = data.readShort_();\n this.ySuperscriptYOffset = data.readShort_();\n this.yStrikeoutSize = data.readShort_();\n this.yStrikeoutPosition = data.readShort_();\n this.familyClass = data.readShort_();\n\n this.panose = data.times(10, data.readByte);\n this.charRange = data.times(4, data.readLong);\n\n this.vendorID = data.readString(4);\n this.selection = data.readShort();\n this.firstCharIndex = data.readShort();\n this.lastCharIndex = data.readShort();\n\n if (this.version > 0) {\n this.ascent = data.readShort_();\n this.descent = data.readShort_();\n this.lineGap = data.readShort_();\n this.winAscent = data.readShort();\n this.winDescent = data.readShort();\n this.codePageRange = data.times(2, data.readLong);\n\n if (this.version > 1) {\n this.xHeight = data.readShort();\n this.capHeight = data.readShort();\n this.defaultChar = data.readShort();\n this.breakChar = data.readShort();\n this.maxContext = data.readShort();\n }\n }\n }\n\n render() {\n return this.raw();\n }\n}\n\nvar subsetTag = 100000;\n\nfunction nextSubsetTag() {\n var ret = \"\", n = String(subsetTag);\n for (var i = 0; i < n.length; ++i) {\n ret += String.fromCharCode(n.charCodeAt(i) - 48 + 65);\n }\n ++subsetTag;\n return ret;\n}\n\nclass Subfont {\n constructor(font) {\n this.font = font;\n this.subset = {};\n this.unicodes = {};\n this.ogid2ngid = { 0: 0 };\n this.ngid2ogid = { 0: 0 };\n this.ncid2ogid = {};\n this.next = this.firstChar = 1;\n this.nextGid = 1;\n this.psName = nextSubsetTag() + \"+\" + this.font.psName;\n }\n\n use(ch) {\n var self = this;\n if (typeof ch == \"string\") {\n return ucs2decode(ch).reduce(function(ret, code){\n return ret + String.fromCharCode(self.use(code));\n }, \"\");\n }\n var code = self.unicodes[ch];\n if (!code) {\n code = self.next++;\n self.subset[code] = ch;\n self.unicodes[ch] = code;\n\n // generate new GID (glyph ID) and maintain newGID ->\n // oldGID and back mappings\n var old_gid = self.font.cmap.codeMap[ch];\n if (old_gid) {\n self.ncid2ogid[code] = old_gid;\n if (self.ogid2ngid[old_gid] == null) {\n var new_gid = self.nextGid++;\n self.ogid2ngid[old_gid] = new_gid;\n self.ngid2ogid[new_gid] = old_gid;\n }\n }\n }\n return code;\n }\n\n encodeText(text) {\n return this.use(text);\n }\n\n glyphIds() {\n return sortedKeys(this.ogid2ngid);\n }\n\n glyphsFor(glyphIds, result) {\n if (!result) {\n result = {};\n }\n for (var i = 0; i < glyphIds.length; ++i) {\n var id = glyphIds[i];\n if (!result[id]) {\n var glyph = result[id] = this.font.glyf.glyphFor(id);\n if (glyph && glyph.compound) {\n this.glyphsFor(glyph.glyphIds, result);\n }\n }\n }\n return result;\n }\n\n render() {\n var glyphs = this.glyphsFor(this.glyphIds());\n\n // add missing sub-glyphs\n for (var old_gid in glyphs) {\n if (hasOwnProperty(glyphs, old_gid)) {\n old_gid = parseInt(old_gid, 10);\n if (this.ogid2ngid[old_gid] == null) {\n var new_gid = this.nextGid++;\n this.ogid2ngid[old_gid] = new_gid;\n this.ngid2ogid[new_gid] = old_gid;\n }\n }\n }\n\n // must obtain old_gid_ids in an order matching sorted\n // new_gid_ids\n var new_gid_ids = sortedKeys(this.ngid2ogid);\n var old_gid_ids = new_gid_ids.map(function(id){\n return this.ngid2ogid[id];\n }, this);\n\n var font = this.font;\n var glyf = font.glyf.render(glyphs, old_gid_ids, this.ogid2ngid);\n var loca = font.loca.render(glyf.offsets);\n\n this.lastChar = this.next - 1;\n\n var tables = {\n \"cmap\" : CmapTable.render(this.ncid2ogid, this.ogid2ngid),\n \"glyf\" : glyf.table,\n \"loca\" : loca.table,\n \"hmtx\" : font.hmtx.render(old_gid_ids),\n \"hhea\" : font.hhea.render(old_gid_ids),\n \"maxp\" : font.maxp.render(old_gid_ids),\n \"post\" : font.post.render(old_gid_ids),\n \"name\" : font.name.render(this.psName),\n \"head\" : font.head.render(loca.format),\n \"OS/2\" : font.os2.render()\n };\n\n return this.font.directory.render(tables);\n }\n\n cidToGidMap() {\n var out = BinaryStream(), len = 0;\n for (var cid = this.firstChar; cid < this.next; ++cid) {\n while (len < cid) {\n out.writeShort(0);\n len++;\n }\n var old_gid = this.ncid2ogid[cid];\n if (old_gid) {\n var new_gid = this.ogid2ngid[old_gid];\n out.writeShort(new_gid);\n } else {\n out.writeShort(0);\n }\n len++;\n }\n return out.get();\n }\n}\n\nclass TTFFont {\n constructor(rawData, name) {\n var self = this;\n var data = self.contents = BinaryStream(rawData);\n if (data.readString(4) == \"ttcf\") {\n var offset;\n const parse = function() {\n data.offset(offset);\n self.parse();\n };\n if (!name) {\n throw new Error(\"Must specify a name for TTC files\");\n }\n data.readLong(); // version\n var numFonts = data.readLong();\n for (var i = 0; i < numFonts; ++i) {\n offset = data.readLong();\n data.saveExcursion(parse);\n if (self.psName == name) {\n return;\n }\n }\n throw new Error(\"Font \" + name + \" not found in collection\");\n } else {\n data.offset(0);\n self.parse();\n }\n }\n\n parse() {\n var dir = this.directory = new Directory(this.contents);\n\n this.head = dir.readTable(\"head\", HeadTable);\n this.loca = dir.readTable(\"loca\", LocaTable);\n this.hhea = dir.readTable(\"hhea\", HheaTable);\n this.maxp = dir.readTable(\"maxp\", MaxpTable);\n this.hmtx = dir.readTable(\"hmtx\", HmtxTable);\n this.glyf = dir.readTable(\"glyf\", GlyfTable);\n this.name = dir.readTable(\"name\", NameTable);\n this.post = dir.readTable(\"post\", PostTable);\n this.cmap = dir.readTable(\"cmap\", CmapTable);\n this.os2 = dir.readTable(\"OS/2\", OS2Table);\n\n this.psName = this.name.postscriptName;\n this.ascent = this.os2.ascent || this.hhea.ascent;\n this.descent = this.os2.descent || this.hhea.descent;\n this.lineGap = this.os2.lineGap || this.hhea.lineGap;\n this.scale = 1000 / this.head.unitsPerEm;\n }\n\n widthOfGlyph(glyph) {\n return this.hmtx.forGlyph(glyph).advance * this.scale;\n }\n\n makeSubset() {\n return new Subfont(this);\n }\n}\n\nexport { TTFFont };\n","import { support } from '../common';\n\n/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\n// XXX: remove this junk (assume `true`) when we no longer have to support IE < 10\n// IE 9 (at least compatibility) reports having Uint8Array but the request response does not contain ArrayBuffer which results in missing table head error\nconst HAS_TYPED_ARRAYS = typeof Uint8Array !== 'undefined' && support.browser && (!support.browser.msie || support.browser.version > 9);\n\nconst BASE64 = (function(){\n var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n return {\n decode: function(str) {\n var input = str.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\"), i = 0, n = input.length, output = [];\n\n while (i < n) {\n var enc1 = keyStr.indexOf(input.charAt(i++));\n var enc2 = keyStr.indexOf(input.charAt(i++));\n var enc3 = keyStr.indexOf(input.charAt(i++));\n var enc4 = keyStr.indexOf(input.charAt(i++));\n\n var chr1 = (enc1 << 2) | (enc2 >>> 4);\n var chr2 = ((enc2 & 15) << 4) | (enc3 >>> 2);\n var chr3 = ((enc3 & 3) << 6) | enc4;\n\n output.push(chr1);\n if (enc3 != 64) {\n output.push(chr2);\n }\n if (enc4 != 64) {\n output.push(chr3);\n }\n }\n\n return output;\n },\n encode: function(bytes) {\n var i = 0, n = bytes.length;\n var output = \"\";\n\n while (i < n) {\n var chr1 = bytes[i++];\n var chr2 = bytes[i++];\n var chr3 = bytes[i++];\n\n var enc1 = chr1 >>> 2;\n var enc2 = ((chr1 & 3) << 4) | (chr2 >>> 4);\n var enc3 = ((chr2 & 15) << 2) | (chr3 >>> 6);\n var enc4 = chr3 & 63;\n\n if (i - n == 2) {\n enc3 = enc4 = 64;\n } else if (i - n == 1) {\n enc4 = 64;\n }\n\n output += keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);\n }\n return output;\n }\n };\n}());\n\nfunction BinaryStream(data) {\n var offset = 0, length = 0;\n if (data == null) {\n data = HAS_TYPED_ARRAYS ? new Uint8Array(256) : [];\n } else {\n length = data.length;\n }\n\n var ensure = HAS_TYPED_ARRAYS ? function(len) {\n if (len >= data.length) {\n var tmp = new Uint8Array(Math.max(len + 256, data.length * 2));\n tmp.set(data, 0);\n data = tmp;\n }\n } : function() {};\n\n var get = HAS_TYPED_ARRAYS ? function() {\n return new Uint8Array(data.buffer, 0, length);\n } : function() {\n return data;\n };\n\n var write = HAS_TYPED_ARRAYS ? function(bytes) {\n if (typeof bytes == \"string\") {\n return writeString(bytes);\n }\n var len = bytes.length;\n ensure(offset + len);\n data.set(bytes, offset);\n offset += len;\n if (offset > length) {\n length = offset;\n }\n } : function(bytes) {\n if (typeof bytes == \"string\") {\n return writeString(bytes);\n }\n for (var i = 0; i < bytes.length; ++i) {\n writeByte(bytes[i]);\n }\n };\n\n var slice = HAS_TYPED_ARRAYS ? function(start, length) {\n if (data.buffer.slice) {\n return new Uint8Array(data.buffer.slice(start, start + length));\n } else {\n // IE10\n var x = new Uint8Array(length);\n x.set(new Uint8Array(data.buffer, start, length));\n return x;\n }\n } : function(start, length) {\n return data.slice(start, start + length);\n };\n\n function eof() {\n return offset >= length;\n }\n function readByte() {\n return offset < length ? data[offset++] : 0;\n }\n function writeByte(b) {\n ensure(offset);\n data[offset++] = b & 0xFF;\n if (offset > length) {\n length = offset;\n }\n }\n function readShort() {\n return (readByte() << 8) | readByte();\n }\n function writeShort(w) {\n writeByte(w >> 8);\n writeByte(w);\n }\n function readShort_() {\n var w = readShort();\n return w >= 0x8000 ? w - 0x10000 : w;\n }\n function writeShort_(w) {\n writeShort(w < 0 ? w + 0x10000 : w);\n }\n function readLong() {\n return (readShort() * 0x10000) + readShort();\n }\n function writeLong(w) {\n writeShort((w >>> 16) & 0xFFFF);\n writeShort(w & 0xFFFF);\n }\n function readLong_() {\n var w = readLong();\n return w >= 0x80000000 ? w - 0x100000000 : w;\n }\n function writeLong_(w) {\n writeLong(w < 0 ? w + 0x100000000 : w);\n }\n function readFixed() {\n return readLong() / 0x10000;\n }\n function writeFixed(f) {\n writeLong(Math.round(f * 0x10000));\n }\n function readFixed_() {\n return readLong_() / 0x10000;\n }\n function writeFixed_(f) {\n writeLong_(Math.round(f * 0x10000));\n }\n function read(len) {\n return times(len, readByte);\n }\n function readString(len) {\n return String.fromCharCode.apply(String, read(len));\n }\n function writeString(str) {\n for (var i = 0; i < str.length; ++i) {\n writeByte(str.charCodeAt(i));\n }\n }\n function times(n, reader) {\n for (var ret = new Array(n), i = 0; i < n; ++i) {\n ret[i] = reader();\n }\n return ret;\n }\n\n var stream = {\n eof : eof,\n readByte : readByte,\n writeByte : writeByte,\n readShort : readShort,\n writeShort : writeShort,\n readLong : readLong,\n writeLong : writeLong,\n readFixed : readFixed,\n writeFixed : writeFixed,\n\n // signed numbers.\n readShort_ : readShort_,\n writeShort_ : writeShort_,\n readLong_ : readLong_,\n writeLong_ : writeLong_,\n readFixed_ : readFixed_,\n writeFixed_ : writeFixed_,\n\n read : read,\n write : write,\n readString : readString,\n writeString : writeString,\n\n times : times,\n get : get,\n slice : slice,\n\n offset: function(pos) {\n if (pos != null) {\n offset = pos;\n return stream;\n }\n return offset;\n },\n\n skip: function(nbytes) {\n offset += nbytes;\n },\n\n toString: function() {\n throw new Error(\"FIX CALLER. BinaryStream is no longer convertible to string!\");\n },\n\n length: function() { return length; },\n\n saveExcursion: function(f) {\n var pos = offset;\n try {\n return f();\n } finally {\n offset = pos;\n }\n },\n\n writeBase64: function(base64) {\n if (window.atob) {\n writeString(window.atob(base64));\n } else {\n write(BASE64.decode(base64));\n }\n },\n base64: function() {\n return BASE64.encode(get());\n }\n };\n\n return stream;\n}\n\nfunction ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n while (counter < length) {\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\n\nfunction ucs2encode(array) {\n return array.map(function(value){\n var output = \"\";\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += String.fromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n output += String.fromCharCode(value);\n return output;\n }).join(\"\");\n}\n\nfunction atobUint8Array(base64) {\n const data = window.atob(base64);\n const result = new Uint8Array(data.length);\n\n for (let idx = 0; idx < data.length; idx++) {\n result[idx] = data.charCodeAt(idx);\n }\n\n return result;\n}\n\nfunction createUint8Array(data) {\n const result = new Uint8Array(data.length);\n\n for (let idx = 0; idx < data.length; idx++) {\n result[idx] = data[idx];\n }\n\n return result;\n}\n\nfunction base64ToUint8Array(base64) {\n if (window.atob) {\n return atobUint8Array(base64);\n }\n\n return createUint8Array(BASE64.decode(base64));\n}\n\nexport {\n HAS_TYPED_ARRAYS,\n BASE64,\n BinaryStream,\n ucs2decode,\n ucs2encode,\n base64ToUint8Array\n};\n","import GeometryCircle from '../geometry/circle';\nimport paintable from '../mixins/paintable';\nimport measurable from '../mixins/measurable';\nimport withGeometry from '../mixins/with-geometry';\nimport Element from './element';\nimport { defined } from '../util';\n\nconst DEFAULT_STROKE = \"#000\";\n\nclass Circle extends paintable(measurable(withGeometry(Element))) {\n get nodeType() {\n return \"Circle\";\n }\n\n constructor(geometry = new GeometryCircle(), options = {}) {\n super(options);\n\n this.geometry(geometry);\n\n if (!defined(this.options.stroke)) {\n this.stroke(DEFAULT_STROKE);\n }\n }\n\n rawBBox() {\n return this._geometry.bbox();\n }\n\n _bbox(matrix) {\n return this._geometry.bbox(matrix);\n }\n\n _containsPoint(point) {\n return this.geometry().containsPoint(point);\n }\n\n _isOnPath(point) {\n return this.geometry()._isOnPath(point, this.options.stroke.width / 2);\n }\n}\n\nexport default Circle;\n","import OptionsStore from '../core/options-store';\nimport Rect from '../geometry/rect';\nimport Matrix from '../geometry/matrix';\nimport createTransform from '../geometry/transform';\nimport toMatrix from '../geometry/to-matrix';\nimport HasObservers from '../core/has-observers';\nimport { defined, definitionId, isTransparent, valueOrDefault } from '../util';\n\nclass Element extends HasObservers {\n get nodeType() {\n return \"Rect\";\n }\n\n constructor(options) {\n super();\n\n this._initOptions(options);\n }\n\n _initOptions(options = {}) {\n const { clip, transform } = options;\n\n if (transform) {\n options.transform = createTransform(transform);\n }\n\n if (clip && !clip.id) {\n clip.id = definitionId();\n }\n\n this.options = new OptionsStore(options);\n this.options.addObserver(this);\n }\n\n transform(value) {\n if (defined(value)) {\n this.options.set(\"transform\", createTransform(value));\n } else {\n return this.options.get(\"transform\");\n }\n }\n\n parentTransform() {\n let element = this;\n let parentMatrix;\n\n while (element.parent) {\n element = element.parent;\n let transformation = element.transform();\n if (transformation) {\n parentMatrix = transformation.matrix().multiplyCopy(parentMatrix || Matrix.unit());\n }\n }\n\n if (parentMatrix) {\n return createTransform(parentMatrix);\n }\n }\n\n currentTransform(parentTransform = this.parentTransform()) {\n const elementTransform = this.transform();\n const elementMatrix = toMatrix(elementTransform);\n\n let parentMatrix = toMatrix(parentTransform);\n let combinedMatrix;\n\n if (elementMatrix && parentMatrix) {\n combinedMatrix = parentMatrix.multiplyCopy(elementMatrix);\n } else {\n combinedMatrix = elementMatrix || parentMatrix;\n }\n\n if (combinedMatrix) {\n return createTransform(combinedMatrix);\n }\n }\n\n visible(value) {\n if (defined(value)) {\n this.options.set(\"visible\", value);\n return this;\n }\n\n return this.options.get(\"visible\") !== false;\n }\n\n clip(value) {\n const options = this.options;\n if (defined(value)) {\n if (value && !value.id) {\n value.id = definitionId();\n }\n options.set(\"clip\", value);\n return this;\n }\n\n return options.get(\"clip\");\n }\n\n opacity(value) {\n if (defined(value)) {\n this.options.set(\"opacity\", value);\n return this;\n }\n\n return valueOrDefault(this.options.get(\"opacity\"), 1);\n }\n\n clippedBBox(transformation) {\n const bbox = this._clippedBBox(transformation);\n if (bbox) {\n const clip = this.clip();\n return clip ? Rect.intersect(bbox, clip.bbox(transformation)) : bbox;\n }\n }\n\n containsPoint(point, parentTransform) {\n if (this.visible()) {\n const transform = this.currentTransform(parentTransform);\n let transformedPoint = point;\n if (transform) {\n transformedPoint = point.transformCopy(transform.matrix().invert());\n }\n return (this._hasFill() && this._containsPoint(transformedPoint)) || (this._isOnPath && this._hasStroke() && this._isOnPath(transformedPoint));\n }\n return false;\n }\n\n _hasFill() {\n const fill = this.options.fill;\n return fill && !isTransparent(fill.color);\n }\n\n _hasStroke() {\n const stroke = this.options.stroke;\n return stroke && stroke.width > 0 && !isTransparent(stroke.color);\n }\n\n _clippedBBox(transformation) {\n return this.bbox(transformation);\n }\n}\n\nexport default Element;\n","import HasObservers from '../core/has-observers';\n\nconst push = [].push;\nconst pop = [].pop;\nconst splice = [].splice;\nconst shift = [].shift;\nconst slice = [].slice;\nconst unshift = [].unshift;\n\nclass ElementsArray extends HasObservers {\n constructor(array = []) {\n super();\n\n this.length = 0;\n this._splice(0, array.length, array);\n }\n\n elements(value) {\n if (value) {\n this._splice(0, this.length, value);\n\n this._change();\n return this;\n }\n\n return this.slice(0);\n }\n\n push() {\n const elements = arguments;\n const result = push.apply(this, elements);\n\n this._add(elements);\n\n return result;\n }\n\n slice() {\n return slice.call(this);\n }\n\n pop() {\n const length = this.length;\n const result = pop.apply(this);\n\n if (length) {\n this._remove([ result ]);\n }\n\n return result;\n }\n\n splice(index, howMany) {\n const elements = slice.call(arguments, 2);\n const result = this._splice(index, howMany, elements);\n\n this._change();\n\n return result;\n }\n\n shift() {\n const length = this.length;\n const result = shift.apply(this);\n\n if (length) {\n this._remove([ result ]);\n }\n\n return result;\n }\n\n unshift() {\n const elements = arguments;\n const result = unshift.apply(this, elements);\n\n this._add(elements);\n\n return result;\n }\n\n indexOf(element) {\n const length = this.length;\n\n for (let idx = 0; idx < length; idx++) {\n if (this[idx] === element) {\n return idx;\n }\n }\n return -1;\n }\n\n _splice(index, howMany, elements) {\n const result = splice.apply(this, [ index, howMany ].concat(elements));\n\n this._clearObserver(result);\n this._setObserver(elements);\n\n return result;\n }\n\n _add(elements) {\n this._setObserver(elements);\n this._change();\n }\n\n _remove(elements) {\n this._clearObserver(elements);\n this._change();\n }\n\n _setObserver(elements) {\n for (let idx = 0; idx < elements.length; idx++) {\n elements[idx].addObserver(this);\n }\n }\n\n _clearObserver(elements) {\n for (let idx = 0; idx < elements.length; idx++) {\n elements[idx].removeObserver(this);\n }\n }\n\n _change() {}\n}\n\nexport default ElementsArray;\n","import ElementsArray from './elements-array';\n\nclass GeometryElementsArray extends ElementsArray {\n _change() {\n this.geometryChange();\n }\n}\n\nexport default GeometryElementsArray;","import Element from './element';\nimport traversable from '../mixins/traversable';\nimport { append } from '../util';\nimport elementsBoundingBox from './utils/elements-bounding-box';\nimport elementsClippedBoundingBox from './utils/elements-clippend-bounding-box';\n\n\nclass Group extends traversable(Element, \"children\") {\n get nodeType() {\n return \"Group\";\n }\n\n constructor(options) {\n super(options);\n this.children = [];\n }\n\n childrenChange(action, items, index) {\n this.trigger(\"childrenChange\",{\n action: action,\n items: items,\n index: index\n });\n }\n\n append() {\n append(this.children, arguments);\n this._reparent(arguments, this);\n\n this.childrenChange(\"add\", arguments);\n\n return this;\n }\n\n insert(index, element) {\n this.children.splice(index, 0, element);\n element.parent = this;\n\n this.childrenChange(\"add\", [ element ], index);\n\n return this;\n }\n\n insertAt(element, index) {\n return this.insert(index, element);\n }\n\n remove(element) {\n const index = this.children.indexOf(element);\n if (index >= 0) {\n this.children.splice(index, 1);\n element.parent = null;\n this.childrenChange(\"remove\", [ element ], index);\n }\n\n return this;\n }\n\n removeAt(index) {\n if (0 <= index && index < this.children.length) {\n let element = this.children[index];\n this.children.splice(index, 1);\n element.parent = null;\n this.childrenChange(\"remove\", [ element ], index);\n }\n\n return this;\n }\n\n clear() {\n const items = this.children;\n this.children = [];\n this._reparent(items, null);\n\n this.childrenChange(\"remove\", items, 0);\n\n return this;\n }\n\n bbox(transformation) {\n return elementsBoundingBox(this.children, true, this.currentTransform(transformation));\n }\n\n rawBBox() {\n return elementsBoundingBox(this.children, false);\n }\n\n _clippedBBox(transformation) {\n return elementsClippedBoundingBox(this.children, this.currentTransform(transformation));\n }\n\n currentTransform(transformation) {\n return Element.prototype.currentTransform.call(this, transformation) || null;\n }\n\n containsPoint(point, parentTransform) {\n if (this.visible()) {\n const children = this.children;\n const transform = this.currentTransform(parentTransform);\n for (let idx = 0; idx < children.length; idx++) {\n if (children[idx].containsPoint(point, transform)) {\n return true;\n }\n }\n }\n return false;\n }\n\n _reparent(elements, newParent) {\n for (let i = 0; i < elements.length; i++) {\n const child = elements[i];\n const parent = child.parent;\n if (parent && parent !== this && parent.remove) {\n parent.remove(child);\n }\n\n child.parent = newParent;\n }\n }\n}\n\nexport default Group;","import withGeometry from '../mixins/with-geometry';\nimport Element from './element';\nimport Rect from '../geometry/rect';\nimport toMatrix from '../geometry/to-matrix';\nimport { defined } from '../util';\n\n\nclass Image extends withGeometry(Element, [ \"rect\" ]) {\n get nodeType() {\n return \"Image\";\n }\n\n constructor(src, rect = new Rect(), options = {}) {\n super(options);\n\n this.src(src);\n this.rect(rect);\n }\n\n src(value) {\n if (defined(value)) {\n this.options.set(\"src\", value);\n return this;\n }\n\n return this.options.get(\"src\");\n }\n\n bbox(transformation) {\n const combinedMatrix = toMatrix(this.currentTransform(transformation));\n return this._rect.bbox(combinedMatrix);\n }\n\n rawBBox() {\n return this._rect.bbox();\n }\n\n _containsPoint(point) {\n return this._rect.containsPoint(point);\n }\n\n _hasFill() {\n return this.src();\n }\n}\n\nexport default Image;","import GeometryElementsArray from './geometry-elements-array';\nimport Element from './element';\nimport paintable from '../mixins/paintable';\nimport measurable from '../mixins/measurable';\nimport Arc from '../geometry/arc';\nimport Rect from '../geometry/rect';\nimport Segment from '../geometry/segment';\nimport Point from '../geometry/point';\nimport Size from '../geometry/size';\nimport lineIntersectionsCount from '../geometry/math/line-intersections-count';\nimport { defined, last, rad } from '../util';\nimport parsePath from '../parsing/parse-path';\nimport elementsBoundingBox from './utils/elements-bounding-box';\nimport elementsClippedBoundingBox from './utils/elements-clippend-bounding-box';\nimport limitValue from '../util/limit-value';\n\n\nexport class Path extends paintable(measurable(Element)) {\n static parse(str, options) {\n return MultiPath.parse(str, options);\n }\n\n get nodeType() {\n return \"Path\";\n }\n\n constructor(options) {\n super(options);\n this.segments = new GeometryElementsArray();\n this.segments.addObserver(this);\n\n if (!defined(this.options.stroke)) {\n this.stroke(\"#000\");\n\n if (!defined(this.options.stroke.lineJoin)) {\n this.options.set(\"stroke.lineJoin\", \"miter\");\n }\n }\n }\n\n moveTo(x, y) {\n this.suspend();\n this.segments.elements([]);\n this.resume();\n\n this.lineTo(x, y);\n\n return this;\n }\n\n lineTo(x, y) {\n const point = defined(y) ? new Point(x, y) : x;\n const segment = new Segment(point);\n\n this.segments.push(segment);\n\n return this;\n }\n\n curveTo(controlOut, controlIn, point) {\n if (this.segments.length > 0) {\n const lastSegment = last(this.segments);\n const segment = new Segment(point, controlIn);\n this.suspend();\n lastSegment.controlOut(controlOut);\n this.resume();\n\n this.segments.push(segment);\n }\n\n return this;\n }\n\n arc(startAngle, endAngle, radiusX, radiusY, anticlockwise) {\n if (this.segments.length > 0) {\n const lastSegment = last(this.segments);\n const anchor = lastSegment.anchor();\n const start = rad(startAngle);\n const center = new Point(anchor.x - radiusX * Math.cos(start),\n anchor.y - radiusY * Math.sin(start));\n const arc = new Arc(center, {\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: radiusX,\n radiusY: radiusY,\n anticlockwise: anticlockwise\n });\n\n this._addArcSegments(arc);\n }\n\n return this;\n }\n\n arcTo(end, rx, ry, largeArc, swipe, rotation) {\n if (this.segments.length > 0) {\n const lastSegment = last(this.segments);\n const anchor = lastSegment.anchor();\n const arc = Arc.fromPoints(anchor, Point.create(end), rx, ry, largeArc, swipe, rotation);\n\n this._addArcSegments(arc);\n }\n return this;\n }\n\n _addArcSegments(arc) {\n this.suspend();\n\n const curvePoints = arc.curvePoints();\n\n for (let i = 1; i < curvePoints.length; i += 3) {\n this.curveTo(curvePoints[i], curvePoints[i + 1], curvePoints[i + 2]);\n }\n\n this.resume();\n this.geometryChange();\n }\n\n close() {\n this.options.closed = true;\n this.geometryChange();\n\n return this;\n }\n\n rawBBox() {\n return this._bbox();\n }\n\n _containsPoint(point) {\n const segments = this.segments;\n const length = segments.length;\n let intersectionsCount = 0;\n let previous, current;\n\n for (let idx = 1; idx < length; idx++) {\n previous = segments[idx - 1];\n current = segments[idx];\n intersectionsCount += previous._intersectionsTo(current, point);\n }\n\n if (this.options.closed || !segments[0].anchor().equals(segments[length - 1].anchor())) {\n intersectionsCount += lineIntersectionsCount(segments[0].anchor(), segments[length - 1].anchor(), point);\n }\n\n return intersectionsCount % 2 !== 0;\n }\n\n _isOnPath(point, width) {\n const segments = this.segments;\n const length = segments.length;\n const pathWidth = width || this.options.stroke.width;\n\n if (length > 1) {\n if (segments[0]._isOnPathTo(segments[1], point, pathWidth, \"start\")) {\n return true;\n }\n\n for (let idx = 2; idx <= length - 2; idx++) {\n if (segments[idx - 1]._isOnPathTo(segments[idx], point, pathWidth)) {\n return true;\n }\n }\n\n if (segments[length - 2]._isOnPathTo(segments[length - 1], point, pathWidth, \"end\")) {\n return true;\n }\n }\n return false;\n }\n\n _bbox(matrix) {\n const segments = this.segments;\n const length = segments.length;\n let boundingBox;\n\n if (length === 1) {\n let anchor = segments[0].anchor().transformCopy(matrix);\n boundingBox = new Rect(anchor, Size.ZERO);\n } else if (length > 0) {\n for (let i = 1; i < length; i++) {\n let segmentBox = segments[i - 1].bboxTo(segments[i], matrix);\n if (boundingBox) {\n boundingBox = Rect.union(boundingBox, segmentBox);\n } else {\n boundingBox = segmentBox;\n }\n }\n }\n\n return boundingBox;\n }\n\n static fromRect(rect, options) {\n const path = new Path(options);\n let [ rx, ry ] = rect.cornerRadius;\n\n if (rx === 0 && ry === 0) {\n path.moveTo(rect.topLeft())\n .lineTo(rect.topRight())\n .lineTo(rect.bottomRight())\n .lineTo(rect.bottomLeft())\n .close();\n } else {\n const origin = rect.origin;\n const { x, y } = origin;\n const width = rect.width();\n const height = rect.height();\n rx = limitValue(rx, 0, width / 2);\n ry = limitValue(ry, 0, height / 2);\n\n path.moveTo(x + rx, y)\n .lineTo(x + width - rx, y)\n .arcTo([ x + width, y + ry ], rx, ry, false)\n .lineTo(x + width, y + height - ry)\n .arcTo([ x + width - rx, y + height ], rx, ry, false)\n .lineTo(x + rx, y + height)\n .arcTo([ x, y + height - ry ], rx, ry, false)\n .lineTo(x, y + ry)\n .arcTo([ x + rx, y ], rx, ry, false);\n }\n\n return path;\n }\n\n static fromPoints(points, options) {\n if (points) {\n const path = new Path(options);\n\n for (let i = 0; i < points.length; i++) {\n let point = Point.create(points[i]);\n if (point) {\n if (i === 0) {\n path.moveTo(point);\n } else {\n path.lineTo(point);\n }\n }\n }\n\n return path;\n }\n }\n\n static fromArc(arc, options) {\n const path = new Path(options);\n const startAngle = arc.startAngle;\n const start = arc.pointAt(startAngle);\n path.moveTo(start.x, start.y);\n path.arc(startAngle, arc.endAngle, arc.radiusX, arc.radiusY, arc.anticlockwise);\n return path;\n }\n}\n\nexport class MultiPath extends paintable(measurable(Element)) {\n static parse(str, options) {\n const instance = new MultiPath(options);\n return parsePath(instance, str);\n }\n\n get nodeType() {\n return \"MultiPath\";\n }\n\n constructor(options) {\n super(options);\n this.paths = new GeometryElementsArray();\n this.paths.addObserver(this);\n\n if (!defined(this.options.stroke)) {\n this.stroke(\"#000\");\n }\n }\n\n moveTo(x, y) {\n const path = new Path();\n path.moveTo(x, y);\n\n this.paths.push(path);\n\n return this;\n }\n\n lineTo(x, y) {\n if (this.paths.length > 0) {\n last(this.paths).lineTo(x, y);\n }\n\n return this;\n }\n\n curveTo(controlOut, controlIn, point) {\n if (this.paths.length > 0) {\n last(this.paths).curveTo(controlOut, controlIn, point);\n }\n\n return this;\n }\n\n arc(startAngle, endAngle, radiusX, radiusY, anticlockwise) {\n if (this.paths.length > 0) {\n last(this.paths).arc(startAngle, endAngle, radiusX, radiusY, anticlockwise);\n }\n\n return this;\n }\n\n arcTo(end, rx, ry, largeArc, swipe, rotation) {\n if (this.paths.length > 0) {\n last(this.paths).arcTo(end, rx, ry, largeArc, swipe, rotation);\n }\n\n return this;\n }\n\n close() {\n if (this.paths.length > 0) {\n last(this.paths).close();\n }\n\n return this;\n }\n\n _bbox(matrix) {\n return elementsBoundingBox(this.paths, true, matrix);\n }\n\n rawBBox() {\n return elementsBoundingBox(this.paths, false);\n }\n\n _containsPoint(point) {\n const paths = this.paths;\n\n for (let idx = 0; idx < paths.length; idx++) {\n if (paths[idx]._containsPoint(point)) {\n return true;\n }\n }\n return false;\n }\n\n _isOnPath(point) {\n const paths = this.paths;\n const width = this.options.stroke.width;\n\n for (let idx = 0; idx < paths.length; idx++) {\n if (paths[idx]._isOnPath(point, width)) {\n return true;\n }\n }\n return false;\n }\n\n _clippedBBox(transformation) {\n return elementsClippedBoundingBox(this.paths, this.currentTransform(transformation));\n }\n}\n\n","import Element from './element';\nimport Point from '../geometry/point';\nimport Rect from '../geometry/rect';\nimport toMatrix from '../geometry/to-matrix';\nimport paintable from '../mixins/paintable';\nimport withPoints from '../mixins/with-points';\nimport { defined, measureText } from '../util';\n\n\nconst DEFAULT_FONT = \"12px sans-serif\";\nconst DEFAULT_FILL = \"#000\";\n\nclass Text extends paintable(withPoints(Element, [ \"position\" ])) {\n get nodeType() {\n return \"Text\";\n }\n\n constructor(content, position = new Point(), options = {}) {\n super(options);\n\n this.content(content);\n this.position(position);\n\n if (!this.options.font) {\n this.options.font = DEFAULT_FONT;\n }\n\n if (!defined(this.options.fill)) {\n this.fill(DEFAULT_FILL);\n }\n }\n\n content(value) {\n if (defined(value)) {\n this.options.set(\"content\", value);\n return this;\n }\n\n return this.options.get(\"content\");\n }\n\n measure() {\n const metrics = measureText(this.content(), {\n font: this.options.get(\"font\")\n });\n\n return metrics;\n }\n\n rect() {\n const size = this.measure();\n const pos = this.position().clone();\n return new Rect(pos, [ size.width, size.height ]);\n }\n\n bbox(transformation) {\n const combinedMatrix = toMatrix(this.currentTransform(transformation));\n return this.rect().bbox(combinedMatrix);\n }\n\n rawBBox() {\n return this.rect().bbox();\n }\n\n _containsPoint(point) {\n return this.rect().containsPoint(point);\n }\n}\n\nexport default Text;\n","import Rect from '../../geometry/rect';\n\nexport default function elementsBoundingBox(elements, applyTransform, transformation) {\n let boundingBox;\n\n for (let i = 0; i < elements.length; i++) {\n let element = elements[i];\n if (element.visible()) {\n let elementBoundingBox = applyTransform ? element.bbox(transformation) : element.rawBBox();\n if (elementBoundingBox) {\n if (boundingBox) {\n boundingBox = Rect.union(boundingBox, elementBoundingBox);\n } else {\n boundingBox = elementBoundingBox;\n }\n }\n }\n }\n\n return boundingBox;\n}\n\n","import Rect from '../../geometry/rect';\n\nexport default function elementsClippedBoundingBox(elements, transformation) {\n let boundingBox;\n\n for (let i = 0; i < elements.length; i++) {\n let element = elements[i];\n if (element.visible()) {\n let elementBoundingBox = element.clippedBBox(transformation);\n if (elementBoundingBox) {\n if (boundingBox) {\n boundingBox = Rect.union(boundingBox, elementBoundingBox);\n } else {\n boundingBox = elementBoundingBox;\n }\n }\n }\n }\n\n return boundingBox;\n}","import { Class } from '../common';\n\nclass LRUCache extends Class {\n constructor(size) {\n super();\n\n this._size = size;\n this._length = 0;\n this._map = {};\n }\n\n put(key, value) {\n const map = this._map;\n const entry = { key: key, value: value };\n\n map[key] = entry;\n\n if (!this._head) {\n this._head = this._tail = entry;\n } else {\n this._tail.newer = entry;\n entry.older = this._tail;\n this._tail = entry;\n }\n\n if (this._length >= this._size) {\n map[this._head.key] = null;\n this._head = this._head.newer;\n this._head.older = null;\n } else {\n this._length++;\n }\n }\n\n get(key) {\n const entry = this._map[key];\n\n if (entry) {\n if (entry === this._head && entry !== this._tail) {\n this._head = entry.newer;\n this._head.older = null;\n }\n\n if (entry !== this._tail) {\n if (entry.older) {\n entry.older.newer = entry.newer;\n entry.newer.older = entry.older;\n }\n\n entry.older = this._tail;\n entry.newer = null;\n\n this._tail.newer = entry;\n this._tail = entry;\n }\n\n return entry.value;\n }\n }\n}\n\nexport default LRUCache;","import TextMetrics from './text-metrics';\n\nexport default function measureText(text, style, measureBox) {\n return TextMetrics.current.measure(text, style, measureBox);\n}\n","import LRUCache from './lru-cache';\nimport { Class } from '../common';\nimport { objectKey, hashKey, normalizeText } from './util';\n\nfunction zeroSize() {\n return { width: 0, height: 0, baseline: 0 };\n}\n\nconst DEFAULT_OPTIONS = {\n baselineMarkerSize: 1\n};\n\nlet defaultMeasureBox;\n\nif (typeof document !== \"undefined\") {\n defaultMeasureBox = document.createElement(\"div\");\n defaultMeasureBox.style.cssText = \"position: absolute !important; top: -4000px !important; width: auto !important; height: auto !important;\" +\n \"padding: 0 !important; margin: 0 !important; border: 0 !important;\" +\n \"line-height: normal !important; visibility: hidden !important; white-space: pre!important;\";\n}\n\nclass TextMetrics extends Class {\n constructor(options) {\n super();\n\n this._cache = new LRUCache(1000);\n this.options = Object.assign({}, DEFAULT_OPTIONS, options);\n }\n\n measure(text, style, options = {}) {\n if (typeof text === 'undefined' || text === null) {\n return zeroSize();\n }\n\n const styleKey = objectKey(style);\n const cacheKey = hashKey(text + styleKey);\n const cachedResult = this._cache.get(cacheKey);\n\n if (cachedResult) {\n return cachedResult;\n }\n\n const size = zeroSize();\n const measureBox = options.box || defaultMeasureBox;\n const baselineMarker = this._baselineMarker().cloneNode(false);\n\n for (let key in style) {\n let value = style[key];\n if (typeof value !== \"undefined\") {\n measureBox.style[key] = value;\n }\n }\n\n const textStr = options.normalizeText !== false ? normalizeText(text) : String(text);\n\n measureBox.textContent = textStr;\n measureBox.appendChild(baselineMarker);\n document.body.appendChild(measureBox);\n\n if (textStr.length) {\n size.width = measureBox.offsetWidth - this.options.baselineMarkerSize;\n size.height = measureBox.offsetHeight;\n size.baseline = baselineMarker.offsetTop + this.options.baselineMarkerSize;\n }\n\n if (size.width > 0 && size.height > 0) {\n this._cache.put(cacheKey, size);\n }\n\n measureBox.parentNode.removeChild(measureBox);\n\n return size;\n }\n\n _baselineMarker() {\n const marker = document.createElement(\"div\");\n marker.style.cssText = \"display: inline-block; vertical-align: baseline;width: \" +\n this.options.baselineMarkerSize + \"px; height: \" + this.options.baselineMarkerSize + \"px;overflow: hidden;\";\n\n return marker;\n }\n}\n\nTextMetrics.current = new TextMetrics();\n\nexport default TextMetrics;\n","const REPLACE_REGEX = /\\r?\\n|\\r|\\t/g;\nconst SPACE = ' ';\n\nfunction normalizeText(text) {\n return String(text).replace(REPLACE_REGEX, SPACE);\n}\n\nfunction objectKey(object) {\n const parts = [];\n for (let key in object) {\n parts.push(key + object[key]);\n }\n\n return parts.sort().join(\"\");\n}\n\n// Computes FNV-1 hash\n// See http://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function\nfunction hashKey(str) {\n // 32-bit FNV-1 offset basis\n // See http://isthe.com/chongo/tech/comp/fnv/#FNV-param\n let hash = 0x811C9DC5;\n\n for (let i = 0; i < str.length; ++i) {\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n hash ^= str.charCodeAt(i);\n }\n\n return hash >>> 0;\n}\n\nexport { objectKey, hashKey, normalizeText };","export default function append(first, second) {\n first.push.apply(first, second);\n return first;\n}","/* eslint-disable key-spacing,no-multi-spaces,no-param-reassign */\n\nconst literals = {\n 1 : \"i\", 10 : \"x\", 100 : \"c\",\n 2 : \"ii\", 20 : \"xx\", 200 : \"cc\",\n 3 : \"iii\", 30 : \"xxx\", 300 : \"ccc\",\n 4 : \"iv\", 40 : \"xl\", 400 : \"cd\",\n 5 : \"v\", 50 : \"l\", 500 : \"d\",\n 6 : \"vi\", 60 : \"lx\", 600 : \"dc\",\n 7 : \"vii\", 70 : \"lxx\", 700 : \"dcc\",\n 8 : \"viii\", 80 : \"lxxx\", 800 : \"dccc\",\n 9 : \"ix\", 90 : \"xc\", 900 : \"cm\",\n 1000 : \"m\"\n};\n\nexport default function arabicToRoman(n) {\n const values = [ 1000,\n 900 , 800, 700, 600, 500, 400, 300, 200, 100,\n 90 , 80 , 70 , 60 , 50 , 40 , 30 , 20 , 10 ,\n 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ];\n\n let roman = \"\";\n while (n > 0) {\n if (n < values[0]) {\n values.shift();\n } else {\n roman += literals[values[0]];\n n -= values[0];\n }\n }\n return roman;\n}","const DEG_TO_RAD = Math.PI / 180;\nconst MAX_NUM = Number.MAX_VALUE;\nconst MIN_NUM = -Number.MAX_VALUE;\n\nexport { DEG_TO_RAD, MAX_NUM, MIN_NUM };","export default function createPromise() {\n let resolveFn, rejectFn;\n const promise = new Promise((resolve, reject) => {\n resolveFn = (data) => {\n promise._state = \"resolved\";\n resolve(data);\n return promise;\n };\n rejectFn = (data) => {\n promise._state = \"rejected\";\n reject(data);\n\n return promise;\n };\n });\n promise._state = \"pending\";\n promise.resolve = resolveFn;\n promise.reject = rejectFn;\n promise.state = () => promise._state;\n\n return promise;\n}\n","const UNDEFINED = \"undefined\";\n\nexport default function defined(value) {\n return typeof value !== UNDEFINED;\n}","let defId = 1;\n\nexport default function definitionId() {\n return \"kdef\" + defId++;\n}","import { DEG_TO_RAD } from './constants';\n\nexport default function deg(radians) {\n return radians / DEG_TO_RAD;\n}","import { encodeUTF8 } from './encode-utf';\n\nconst KEY_STR = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nexport default function encodeBase64(input) {\n let output = \"\";\n let i = 0;\n\n const utfInput = encodeUTF8(input);\n\n while (i < utfInput.length) {\n let chr1 = utfInput.charCodeAt(i++);\n let chr2 = utfInput.charCodeAt(i++);\n let chr3 = utfInput.charCodeAt(i++);\n\n let enc1 = chr1 >> 2;\n let enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n let enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n let enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output +\n KEY_STR.charAt(enc1) + KEY_STR.charAt(enc2) +\n KEY_STR.charAt(enc3) + KEY_STR.charAt(enc4);\n }\n\n return output;\n}","const fromCharCode = String.fromCharCode;\n\nexport const BOM = '\\xfe\\xff';\n\n// Encodes a string as UTF-8\nexport function encodeUTF8(input) {\n let output = \"\";\n\n for (let i = 0; i < input.length; i++) {\n let code = input.charCodeAt(i);\n\n if (0xD800 <= code && code <= 0xDBFF) {\n const hi = code;\n const low = input.charCodeAt(++i);\n\n if (!isNaN(low)) {\n // Combine high and low surrogate\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n code = (hi - 0xD800) * 0x400 +\n (low - 0xDC00) + 0x10000;\n }\n }\n\n if (code < 0x80) {\n // One byte\n output += fromCharCode(code);\n } else if (code < 0x800) {\n // Two bytes\n output += fromCharCode(0xC0 | (code >>> 6));\n output += fromCharCode(0x80 | (code & 0x3f));\n } else if (code < 0x10000) {\n // Three bytes\n output += fromCharCode(0xE0 | (code >>> 12));\n output += fromCharCode(0x80 | (code >>> 6 & 0x3f));\n output += fromCharCode(0x80 | (code & 0x3f));\n } else if (code < 0x10FFFF) {\n // Four bytes\n output += fromCharCode(0xF0 | (code >>> 18));\n output += fromCharCode(0x80 | (code >>> 12 & 0x3f));\n output += fromCharCode(0x80 | (code >>> 6 & 0x3f));\n output += fromCharCode(0x80 | (code & 0x3f));\n }\n }\n\n return output;\n}\n\nfunction encodeUnit(codeUnit) {\n return fromCharCode(codeUnit >> 8) + fromCharCode(codeUnit & 0x00ff);\n}\n\n// Encodes a string as UTF-16 big-endian\nexport function encodeUTF16BE(input) {\n let output = '';\n\n for (let i = 0; i < input.length; i++) {\n const c = input.charCodeAt(i);\n\n if (c < 0xFFFF) {\n output += encodeUnit(c);\n } else {\n const lead = ((c - 0x10000) >> 10) + 0xD800;\n const trail = ((c - 0x10000) & 0x3FF) + 0xDC00;\n output += encodeUnit(lead);\n output += encodeUnit(trail);\n }\n }\n\n return output;\n}\n","import defined from './defined';\n\nexport default function isTransparent(color) {\n return color === \"\" || color === null || color === \"none\" || color === \"transparent\" || !defined(color);\n}","export default function last(array) {\n if (array) {\n return array[array.length - 1];\n }\n}","export default function limitValue(value, min, max) {\n return Math.max(Math.min(value, max), min);\n}","/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\n// mergeSort is stable.\nexport default function mergeSort(a, cmp) {\n if (a.length < 2) {\n return a.slice();\n }\n function merge(a, b) {\n var r = [], ai = 0, bi = 0, i = 0;\n while (ai < a.length && bi < b.length) {\n if (cmp(a[ai], b[bi]) <= 0) {\n r[i++] = a[ai++];\n } else {\n r[i++] = b[bi++];\n }\n }\n if (ai < a.length) {\n r.push.apply(r, a.slice(ai));\n }\n if (bi < b.length) {\n r.push.apply(r, b.slice(bi));\n }\n return r;\n }\n return (function sort(a) {\n if (a.length <= 1) {\n return a;\n }\n var m = Math.floor(a.length / 2);\n var left = a.slice(0, m);\n var right = a.slice(m);\n left = sort(left);\n right = sort(right);\n return merge(left, right);\n })(a);\n}","import { DEG_TO_RAD } from './constants';\n\nexport default function rad(degrees) {\n return degrees * DEG_TO_RAD;\n}\n","function pow(p) {\n if (p) {\n return Math.pow(10, p);\n }\n\n return 1;\n}\n\nexport default function round(value, precision) {\n const power = pow(precision);\n return Math.round(value * power) / power;\n}","import defined from './defined';\n\nexport default function valueOrDefault(value, defaultValue) {\n return defined(value) ? value : defaultValue;\n}","const KEY_STR = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nconst fromCharCode = String.fromCharCode;\n\nexport function encodeBase64(plainText) {\n const input = encodeUTF8(plainText);\n let output = \"\";\n let chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n let i = 0;\n\n while (i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output +\n KEY_STR.charAt(enc1) + KEY_STR.charAt(enc2) +\n KEY_STR.charAt(enc3) + KEY_STR.charAt(enc4);\n }\n\n return output;\n}\n\nfunction encodeUTF8(input) {\n let output = \"\";\n\n for (let i = 0; i < input.length; i++) {\n const c = input.charCodeAt(i);\n\n if (c < 0x80) {\n // One byte\n output += fromCharCode(c);\n } else if (c < 0x800) {\n // Two bytes\n output += fromCharCode(0xC0 | (c >>> 6));\n output += fromCharCode(0x80 | (c & 0x3f));\n } else if (c < 0x10000) {\n // Three bytes\n output += fromCharCode(0xE0 | (c >>> 12));\n output += fromCharCode(0x80 | (c >>> 6 & 0x3f));\n output += fromCharCode(0x80 | (c & 0x3f));\n }\n }\n\n return output;\n}\n","export { saveAs } from './save-as';\nexport { encodeBase64 } from './base64';\n","export function saveAs(data, fileName, options = {}) {\n let save = postToProxy;\n\n if (options.forceProxy && !options.proxyURL) {\n throw new Error('No proxyURL is set, but forceProxy is true');\n }\n\n if (!options.forceProxy) {\n if (canDownload()) {\n save = saveAsDataURI;\n }\n\n if (navigator.msSaveBlob) {\n save = saveAsBlob;\n }\n }\n\n save(data, fileName, options);\n}\n\nconst anchor = () => document.createElement('a');\nconst canDownload = () => 'download' in anchor();\n\nfunction saveAsBlob(data, fileName) {\n let blob = data; // could be a Blob object\n\n if (typeof data === 'string') {\n const parts = data.split(';base64,');\n const contentType = parts[0];\n const base64 = atob(parts[1]);\n const array = new Uint8Array(base64.length);\n\n for (let idx = 0; idx < base64.length; idx++) {\n array[idx] = base64.charCodeAt(idx);\n }\n\n blob = new Blob([ array.buffer ], { type: contentType });\n }\n\n navigator.msSaveBlob(blob, fileName);\n}\n\nfunction saveAsDataURI(data, fileName) {\n let dataURI = data;\n if (window.Blob && data instanceof Blob) {\n dataURI = URL.createObjectURL(data);\n }\n\n const fileSaver = anchor();\n fileSaver.download = fileName;\n fileSaver.href = dataURI;\n\n const e = document.createEvent('MouseEvents');\n e.initMouseEvent('click', true, false, window,\n 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\n fileSaver.dispatchEvent(e);\n setTimeout(() => URL.revokeObjectURL(dataURI));\n}\n\nfunction postToProxy(dataURI, fileName, options) {\n if (!options.proxyURL) {\n return;\n }\n\n const form = document.createElement('form');\n form.setAttribute('action', options.proxyURL);\n form.setAttribute('method', 'POST');\n form.setAttribute('target', options.proxyTarget || '_self');\n\n const formData = options.proxyData || {};\n formData.fileName = fileName;\n\n const parts = dataURI.split(\";base64,\");\n formData.contentType = parts[0].replace(\"data:\", \"\");\n formData.base64 = parts[1];\n\n for (let name in formData) {\n if (formData.hasOwnProperty(name)) {\n const input = document.createElement('input');\n input.setAttribute('type', 'hidden');\n input.setAttribute('name', name);\n input.setAttribute('value', formData[name]);\n\n form.appendChild(input);\n }\n }\n\n document.body.appendChild(form);\n form.submit();\n document.body.removeChild(form);\n}\n\n","var _0x4364=['EMfOwhq=','z3jVDxbfBMq=','B2jQzwn0','u2vLia==','BKDQzKK=','zNvUy3rPB24=','zgf0yq==','D1rPsKq=','z2v0','BgLJzw5Zzuv4CgLYyxrPB25eyxrL','DgLTzxn0yw1W','y29Kzq==','DhLWzq==','C2v0','DMvYC2LVBG==','ChjVzhvJDenVzgvZ','u3PgAeu=','BMfTzq==','sg94tgG=','zun0Beq=','z3jVDxa=','ChjVzhvJDhm=','CgfYC2u=','BfP2zKS=','lcb0AguGCgfJA2fNzsb3yxmGChvIBgLZAgvKig9Uia==','Cfj6wKC=','tM8GBgLJzw5ZzsbMB3vUzc4k','ChjVzhvJDe5HBwu=','uwrAy0q=','BefHr0m=','t3jquwq=','s1Ldrvi=','CNvlCgC=','AgfZ','zxHWAxj5rgf0zq==','CgfJA2fNzu5HBwu=','y3LqC08=','CMr1Aui=','CNvHzve=','zg9JC1vYBa==','uhjVz3jLC3mG','ChvIBgLZAerHDgu=','vgHLihbYB2r1y3qGAxmGBM90igLUy2X1zgvKigLUihrOzsbSAwnLBNnLlGO=','D2fYBG==','B3nTvxa=','swTrwfO=','CLfMrLm=','igzVCIbTB3jLigLUzM9YBwf0Aw9UlGO=','whv2wMO=','rLbJyLa=','ww91CIbSAwnLBNnLigv4CgLYzwqGB24G','C2nYAxb0s2v5','BgLJzw5ZAw5Nrg9JC1vYBa==','tgLJzw5ZzsbHy3rPDMf0Aw9UigzHAwXLzcbMB3iG','EfbArNi=','zMLUza==','Dw5KzwzPBMvK','Dg9mB2nHBgvtDhjPBMC=','BgvUz3rO'];(function(_0x7861a8,_0x436456){var _0x5c1a2f=function(_0x5bb78a){while(--_0x5bb78a){_0x7861a8['push'](_0x7861a8['shift']());}};_0x5c1a2f(++_0x436456);}(_0x4364,0x83));var _0x5c1a=function(_0x7861a8,_0x436456){_0x7861a8=_0x7861a8-0x0;var _0x5c1a2f=_0x4364[_0x7861a8];if(_0x5c1a['eVebMg']===undefined){var _0x5bb78a=function(_0x1df509){var _0x594780='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=',_0x17b0df=String(_0x1df509)['replace'](/=+$/,'');var _0x3c70ec='';for(var _0x457d16=0x0,_0xa05c9a,_0x1d527d,_0x5817cb=0x0;_0x1d527d=_0x17b0df['charAt'](_0x5817cb++);~_0x1d527d&&(_0xa05c9a=_0x457d16%0x4?_0xa05c9a*0x40+_0x1d527d:_0x1d527d,_0x457d16++%0x4)?_0x3c70ec+=String['fromCharCode'](0xff&_0xa05c9a>>(-0x2*_0x457d16&0x6)):0x0){_0x1d527d=_0x594780['indexOf'](_0x1d527d);}return _0x3c70ec;};_0x5c1a['JsjtEd']=function(_0x10b9bf){var _0x16a0de=_0x5bb78a(_0x10b9bf);var _0x1c90e4=[];for(var _0x3d01e8=0x0,_0x366abb=_0x16a0de['length'];_0x3d01e8<_0x366abb;_0x3d01e8++){_0x1c90e4+='%'+('00'+_0x16a0de['charCodeAt'](_0x3d01e8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1c90e4);},_0x5c1a['rqrXoU']={},_0x5c1a['eVebMg']=!![];}var _0x53878b=_0x5c1a['rqrXoU'][_0x7861a8];return _0x53878b===undefined?(_0x5c1a2f=_0x5c1a['JsjtEd'](_0x5c1a2f),_0x5c1a['rqrXoU'][_0x7861a8]=_0x5c1a2f):_0x5c1a2f=_0x53878b,_0x5c1a2f;};var context={data:' {\\\"timestamp\\\":1615892795,\\\"products\\\":[{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUIREACT\\\",\\\"licenseExpirationDate\\\":1621054866},{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUICOMPLETE\\\",\\\"licenseExpirationDate\\\":1621054866},{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUIVUE\\\",\\\"licenseExpirationDate\\\":1621054866},{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUIANGULAR\\\",\\\"licenseExpirationDate\\\":1621054866}],\\\"integrity\\\":\\\"FW9PDjRH4K/oyi2th/viMVjzLJE=\\\"} '},cache=new Map();function setScriptKey(_0x25b2b1){}function validatePackage(_0x36c470){if(cache[_0x5c1a('0x14')](_0x36c470[_0x5c1a('0x4')])){if(_0x5c1a('0x35')!==_0x5c1a('0x35')){function _0x43d4c6(){_0x58c626[_0x5c1a('0x7')](_0x4f3a6b);}}else return cache[_0x5c1a('0x36')](_0x36c470[_0x5c1a('0x4')]);}var _0xcadca1=_0x36c470[_0x5c1a('0x1')]?'\\x20v'+_0x36c470[_0x5c1a('0x1')]:'',_0x26985a=_0x36c470[_0x5c1a('0x4')]+_0xcadca1,_0x1692a7=JSON[_0x5c1a('0x9')](context[_0x5c1a('0x34')]),_0x7f5683=!_0x1692a7[_0x5c1a('0x26')]&&!_0x1692a7[_0x5c1a('0x38')],_0x1309d9=_0x1692a7[_0x5c1a('0x26')]&&typeof KendoLicensing===_0x5c1a('0x2b'),_0x1f8788=matchProduct(_0x1692a7,_0x36c470[_0x5c1a('0x2')]),_0x5ed7ca;if(_0x7f5683||_0x1309d9){if(_0x5c1a('0x29')!==_0x5c1a('0x29')){function _0x2f1e7e(){var _0x388ce5=_0x5c1a('0x1b')+_0x33655a[_0x5c1a('0xe')],_0x3d860e=typeof _0x418368[_0x5c1a('0x7')]===_0x5c1a('0x33');_0x3d860e?_0x3b1deb[_0x5c1a('0x7')](_0x388ce5):_0x6a3fbd[_0x5c1a('0x1e')](_0x388ce5),_0x523767[_0x5c1a('0x1e')](_0x14b753(_0x322330)),_0x3d860e&&_0x1197e0[_0x5c1a('0x2f')]();}}else _0x5ed7ca={'type':0x0,'packageName':_0x26985a,'docsUrl':_0x36c470[_0x5c1a('0x27')]};}else{if(_0x5c1a('0xf')===_0x5c1a('0x24')){function _0x4dfedf(){_0x50b5b8[_0x5c1a('0x37')]<_0xeabda3[_0x5c1a('0x1c')]&&(_0x132841={'type':0x2,'packageName':_0x9f99fc,'publishDate':_0x3c1a6b(_0x125dc5[_0x5c1a('0x1c')]),'expiryDate':_0x57412b(_0xaf078e[_0x5c1a('0x37')]),'docsUrl':_0x49464e[_0x5c1a('0x27')]});}}else{if(!_0x1f8788){if(_0x5c1a('0x6')!==_0x5c1a('0x6')){function _0x344115(){var _0xf14a00=_0x5222e0[_0x5c1a('0x8')];if(!_0xf14a00||!_0xf14a00[_0x5c1a('0x2d')])return null;var _0x396062=new _0x5793bd(_0x28cbe8);return _0xf14a00[_0x5c1a('0x2a')](function(_0x365d94){return _0x396062[_0x5c1a('0x14')](_0x365d94[_0x5c1a('0x39')]);});}}else _0x5ed7ca={'type':0x1,'packageName':_0x26985a,'docsUrl':_0x36c470[_0x5c1a('0x27')]};}else{if(_0x5c1a('0x12')!==_0x5c1a('0x12')){function _0x1776c6(){return null;}}else{if(_0x1f8788[_0x5c1a('0x37')]<_0x36c470[_0x5c1a('0x1c')]){if(_0x5c1a('0x21')===_0x5c1a('0x32')){function _0x1a41c6(){_0xfaae0d+=_0x5c1a('0xd');}}else _0x5ed7ca={'type':0x2,'packageName':_0x26985a,'publishDate':parseDate(_0x36c470[_0x5c1a('0x1c')]),'expiryDate':parseDate(_0x1f8788[_0x5c1a('0x37')]),'docsUrl':_0x36c470[_0x5c1a('0x27')]};}}}}}if(_0x5ed7ca&&typeof console===_0x5c1a('0x30')){if(_0x5c1a('0x5')===_0x5c1a('0x3')){function _0x95015b(){_0x4b786f[_0x5c1a('0x2f')]();}}else{var _0x598f01=_0x5c1a('0x1b')+_0x36c470[_0x5c1a('0xe')],_0x194c9d=typeof console[_0x5c1a('0x7')]===_0x5c1a('0x33');if(_0x194c9d){if(_0x5c1a('0xc')!==_0x5c1a('0xc')){function _0x3e7eb6(){_0xf344fe[_0x5c1a('0x1e')](_0x141e24);}}else console[_0x5c1a('0x7')](_0x598f01);}else{if(_0x5c1a('0x17')!==_0x5c1a('0x17')){function _0x246f1b(){var _0x2f1652=_0x5c1a('0x28')+_0x2644c0[_0x5c1a('0x16')]+'\\x0a';if(_0x5f5599[_0x5c1a('0x3a')]===0x2)_0x2f1652+=_0x5c1a('0x25')+_0x24c003[_0x5c1a('0x15')][_0x5c1a('0x2c')]()+_0x5c1a('0xb')+_0x3ad6d6[_0x5c1a('0x1c')][_0x5c1a('0x2c')]()+'.\\x0a';else{if(_0x5451ba[_0x5c1a('0x3a')]===0x0)_0x2f1652+=_0x5c1a('0xd');else _0x110ba8[_0x5c1a('0x3a')]===0x1&&(_0x2f1652+=_0x5c1a('0x1d'));}return _0x2f1652+=_0x5c1a('0x31')+_0x308c56[_0x5c1a('0x1a')]+_0x5c1a('0x22'),_0x2f1652;}}else console[_0x5c1a('0x1e')](_0x598f01);}console[_0x5c1a('0x1e')](formatError(_0x5ed7ca));if(_0x194c9d){if(_0x5c1a('0x1f')!==_0x5c1a('0x19'))console[_0x5c1a('0x2f')]();else{function _0x188f8b(){_0x3d01e8={'type':0x0,'packageName':_0x366abb,'docsUrl':_0x3047b9[_0x5c1a('0x27')]};}}}}}var _0xb593c9=!_0x5ed7ca;return cache[_0x5c1a('0x0')](_0x36c470[_0x5c1a('0x4')],_0xb593c9),_0xb593c9;}function formatError(_0x1fff02){var _0x2d2f37=_0x5c1a('0x28')+_0x1fff02[_0x5c1a('0x16')]+'\\x0a';if(_0x1fff02[_0x5c1a('0x3a')]===0x2){if(_0x5c1a('0x20')!==_0x5c1a('0x20')){function _0x54c6f4(){_0x3c1575={'type':0x2,'packageName':_0x1b19c9,'publishDate':_0x573b69(_0x4faf34[_0x5c1a('0x1c')]),'expiryDate':_0x183ff8(_0x58364c[_0x5c1a('0x37')]),'docsUrl':_0x50a3f6[_0x5c1a('0x27')]};}}else _0x2d2f37+=_0x5c1a('0x25')+_0x1fff02[_0x5c1a('0x15')][_0x5c1a('0x2c')]()+_0x5c1a('0xb')+_0x1fff02[_0x5c1a('0x1c')][_0x5c1a('0x2c')]()+'.\\x0a';}else{if(_0x1fff02[_0x5c1a('0x3a')]===0x0){if(_0x5c1a('0x13')!==_0x5c1a('0x10'))_0x2d2f37+=_0x5c1a('0xd');else{function _0x3af9dd(){_0x2fb0e1+=_0x5c1a('0x25')+_0x3e9e23[_0x5c1a('0x15')][_0x5c1a('0x2c')]()+_0x5c1a('0xb')+_0x4240d2[_0x5c1a('0x1c')][_0x5c1a('0x2c')]()+'.\\x0a';}}}else{if(_0x1fff02[_0x5c1a('0x3a')]===0x1){if(_0x5c1a('0x2e')===_0x5c1a('0x23')){function _0x19f89f(){!_0xb6e4d?_0x407247={'type':0x1,'packageName':_0x2691fa,'docsUrl':_0x23e58a[_0x5c1a('0x27')]}:_0x2ae2a1[_0x5c1a('0x37')]<_0x378eb4[_0x5c1a('0x1c')]&&(_0x39b209={'type':0x2,'packageName':_0x14e19a,'publishDate':_0x3af7fe(_0x38e4e4[_0x5c1a('0x1c')]),'expiryDate':_0x2e2e51(_0x2b5bf6[_0x5c1a('0x37')]),'docsUrl':_0x27a0c2[_0x5c1a('0x27')]});}}else _0x2d2f37+=_0x5c1a('0x1d');}}}return _0x2d2f37+=_0x5c1a('0x31')+_0x1fff02[_0x5c1a('0x1a')]+_0x5c1a('0x22'),_0x2d2f37;}function matchProduct(_0x51d9e5,_0x3fff18){var _0x44ef28=_0x51d9e5[_0x5c1a('0x8')];if(!_0x44ef28||!_0x44ef28[_0x5c1a('0x2d')]){if(_0x5c1a('0x11')!==_0x5c1a('0x11')){function _0x5f109c(){_0xc65206={'type':0x1,'packageName':_0x393daa,'docsUrl':_0x33c283[_0x5c1a('0x27')]};}}else return null;}var _0x11f6ae=new Set(_0x3fff18);return _0x44ef28[_0x5c1a('0x2a')](function(_0x590c4a){if(_0x5c1a('0xa')!==_0x5c1a('0x18'))return _0x11f6ae[_0x5c1a('0x14')](_0x590c4a[_0x5c1a('0x39')]);else{function _0x295075(){_0x576540+=_0x5c1a('0x1d');}}});}function parseDate(_0x31cf48){return new Date(_0x31cf48*0x3e8);}export{setScriptKey,validatePackage};\n","import TemplateService from './services/template-service';\nimport getter from './utils/getter';\nimport map from './utils/map';\n\nfunction defaultGroupHeaderTemplate(data) {\n return `${ data.title }: ${ data.value }`;\n}\n\nfunction createArray(length, callback) {\n const result = [];\n\n for (let idx = 0; idx < length; idx++) {\n result.push(callback(idx));\n }\n\n return result;\n}\n\nfunction defaultItemId(item) {\n return item.id;\n}\n\nclass ExcelExporter {\n constructor(options) {\n options.columns = this._trimColumns(options.columns || []);\n\n this.allColumns = map(this._leafColumns(options.columns || []), this._prepareColumn);\n\n this.columns = this.allColumns.filter(function(column) { return !column.hidden; });\n\n this.options = options;\n this.data = options.data || [];\n this.aggregates = options.aggregates || {};\n this.groups = [].concat(options.groups || []);\n this.hasGroups = this.groups.length > 0;\n this.hierarchy = options.hierarchy;\n this.hasGroupHeaderColumn = this.columns.some(column => column.groupHeaderColumnTemplate);\n this.collapsible = this.options.collapsible;\n }\n\n workbook() {\n const workbook = {\n sheets: [ {\n columns: this._columns(),\n rows: this.hierarchy ? this._hierarchyRows() : this._rows(),\n freezePane: this._freezePane(),\n filter: this._filter()\n } ]\n };\n\n return workbook;\n }\n\n _trimColumns(columns) {\n return columns.filter((column) => {\n let result = Boolean(column.field);\n\n if (!result && column.columns) {\n result = this._trimColumns(column.columns).length > 0;\n }\n\n return result;\n });\n }\n\n _leafColumns(columns) {\n let result = [];\n\n for (let idx = 0; idx < columns.length; idx++) {\n if (!columns[idx].columns) {\n result.push(columns[idx]);\n } else {\n result = result.concat(this._leafColumns(columns[idx].columns));\n }\n }\n\n return result;\n }\n\n _prepareColumn(column) {\n if (!column.field) {\n return null;\n }\n\n let value = function(dataItem) {\n return getter(column.field, true)(dataItem);\n };\n\n let values = null;\n\n if (column.values) {\n values = {};\n\n column.values.forEach(function(item) {\n values[item.value] = item.text;\n });\n\n value = function(dataItem) {\n return values[getter(column.field, true)(dataItem)];\n };\n }\n\n return Object.assign({}, column, {\n value: value,\n values: values,\n groupHeaderTemplate: column.groupHeaderTemplate ? TemplateService.compile(column.groupHeaderTemplate) : defaultGroupHeaderTemplate,\n groupHeaderColumnTemplate: column.groupHeaderColumnTemplate ? TemplateService.compile(column.groupHeaderColumnTemplate) : null,\n groupFooterTemplate: column.groupFooterTemplate ? TemplateService.compile(column.groupFooterTemplate) : null,\n footerTemplate: column.footerTemplate ? TemplateService.compile(column.footerTemplate) : null\n });\n }\n\n _filter() {\n if (!this.options.filterable) {\n return null;\n }\n\n const depth = this._depth();\n\n return {\n from: depth,\n to: depth + this.columns.length - 1\n };\n }\n\n _createPaddingCells(length) {\n return createArray(length, () => Object.assign({\n background: \"#dfdfdf\",\n color: \"#333\"\n }, this.options.paddingCellOptions));\n }\n\n _dataRow(dataItem, level, depth) {\n let cells = this._createPaddingCells(level);\n\n // grouped\n if (this.hasGroups && depth && dataItem.items) {\n cells = cells.concat(this._groupHeaderCells(dataItem, level, depth));\n const rows = this._dataRows(dataItem.items, level + 1);\n\n rows.unshift({\n type: \"group-header\",\n cells: cells,\n level: this.collapsible ? level : null\n });\n\n return rows.concat(this._footer(dataItem, level));\n }\n\n const dataCells = [];\n\n for (let cellIdx = 0; cellIdx < this.columns.length; cellIdx++) {\n dataCells[cellIdx] = this._cell(dataItem, this.columns[cellIdx]);\n }\n\n if (this.hierarchy) {\n dataCells[0].colSpan = depth - level + 1;\n }\n\n return [ {\n type: \"data\",\n cells: cells.concat(dataCells),\n level: this.collapsible ? level : null\n } ];\n }\n\n _groupHeaderCells(dataItem, level, depth) {\n const cells = [];\n\n const column = this.allColumns.filter(function(column) {\n return column.field === dataItem.field;\n })[0] || {};\n\n const title = column && column.title ? column.title : dataItem.field;\n const template = column ? column.groupHeaderTemplate || column.groupHeaderColumnTemplate : null;\n const group = Object.assign({\n title: title,\n field: dataItem.field,\n value: column && column.values ? column.values[dataItem.value] : dataItem.value,\n aggregates: dataItem.aggregates,\n items: dataItem.items\n }, dataItem.aggregates[dataItem.field]);\n\n const value = template ? template(group) : `${ title }: ${ dataItem.value }`;\n\n cells.push(Object.assign({\n value: value,\n background: \"#dfdfdf\",\n color: \"#333\",\n colSpan: (this.hasGroupHeaderColumn ? 1 : this.columns.length) + depth - level\n }, column.groupHeaderCellOptions));\n\n if (this.hasGroupHeaderColumn) {\n this.columns.forEach(function(column, index) {\n if (index > 0) {\n cells.push(Object.assign({\n background: \"#dfdfdf\",\n color: \"#333\",\n value: column.groupHeaderColumnTemplate ?\n column.groupHeaderColumnTemplate(Object.assign({ group: group }, group, dataItem.aggregates[column.field])) :\n undefined\n }, column.groupHeaderCellOptions));\n }\n });\n }\n\n return cells;\n }\n\n _dataRows(dataItems, level) {\n const depth = this._depth();\n const rows = [];\n\n for (let idx = 0; idx < dataItems.length; idx++) {\n rows.push.apply(rows, this._dataRow(dataItems[idx], level, depth));\n }\n\n return rows;\n }\n\n _hierarchyRows() {\n const depth = this._depth();\n const data = this.data;\n const itemLevel = this.hierarchy.itemLevel;\n const itemId = this.hierarchy.itemId || defaultItemId;\n const hasFooter = this._hasFooterTemplate();\n const rows = [];\n const parents = [];\n let previousLevel = 0;\n let previousItemId;\n\n if (!hasFooter) {\n this.collapsible = false;\n }\n\n for (let idx = 0; idx < data.length; idx++) {\n const item = data[idx];\n const level = itemLevel(item, idx);\n\n if (hasFooter) {\n if (level > previousLevel) {\n parents.push({ id: previousItemId, level: previousLevel });\n } else if (level < previousLevel) {\n rows.push.apply(rows, this._hierarchyFooterRows(parents, level, depth));\n }\n\n previousLevel = level;\n previousItemId = itemId(item, idx);\n }\n\n rows.push.apply(rows, this._dataRow(item, level + 1, depth));\n }\n\n if (hasFooter) {\n rows.push.apply(rows, this._hierarchyFooterRows(parents, 0, depth));\n\n const rootAggregate = data.length ? this.aggregates[data[0].parentId] : {};\n rows.push(this._hierarchyFooter(rootAggregate, 0, depth));\n }\n\n this._prependHeaderRows(rows);\n\n return rows;\n }\n\n _hierarchyFooterRows(parents, currentLevel, depth) {\n const rows = [];\n while (parents.length && parents[parents.length - 1].level >= currentLevel) {\n const parent = parents.pop();\n rows.push(this._hierarchyFooter(this.aggregates[parent.id], parent.level + 1, depth));\n }\n\n return rows;\n }\n\n _hasFooterTemplate() {\n const columns = this.columns;\n for (let idx = 0; idx < columns.length; idx++) {\n if (columns[idx].footerTemplate) {\n return true;\n }\n }\n }\n\n _hierarchyFooter(aggregates, level, depth) {\n const cells = this.columns.map(function(column, index) {\n const colSpan = index ? 1 : depth - level + 1;\n if (column.footerTemplate) {\n const fieldAggregates = (aggregates || {})[column.field];\n return Object.assign({\n background: \"#dfdfdf\",\n color: \"#333\",\n colSpan: colSpan,\n value: column.footerTemplate(Object.assign({ aggregates: aggregates }, fieldAggregates))\n }, column.footerCellOptions);\n }\n\n return Object.assign({\n background: \"#dfdfdf\",\n color: \"#333\",\n colSpan: colSpan\n }, column.footerCellOptions);\n });\n\n return {\n type: \"footer\",\n cells: this._createPaddingCells(level).concat(cells),\n level: this.collapsible ? level : null\n };\n }\n\n _footer(dataItem, level) {\n const rows = [];\n const footer = this.columns.some(column => column.groupFooterTemplate);\n\n let templateData, group;\n if (footer) {\n group = {\n group: { items: dataItem.items,\n field: dataItem.field,\n value: dataItem.value }\n };\n templateData = {};\n Object.keys(dataItem.aggregates).forEach(key => {\n templateData[key] = Object.assign({}, dataItem.aggregates[key], group);\n });\n }\n\n const cells = this.columns.map((column) => {\n if (column.groupFooterTemplate) {\n let data = Object.assign({}, templateData, dataItem.aggregates[column.field], group);\n return Object.assign({\n background: \"#dfdfdf\",\n color: \"#333\",\n value: column.groupFooterTemplate(data)\n }, column.groupFooterCellOptions);\n }\n\n return Object.assign({\n background: \"#dfdfdf\",\n color: \"#333\"\n }, column.groupFooterCellOptions);\n });\n\n if (footer) {\n rows.push({\n type: \"group-footer\",\n cells: this._createPaddingCells(this.groups.length).concat(cells),\n level: this.collapsible ? level : null\n });\n }\n\n return rows;\n }\n\n _isColumnVisible(column) {\n return this._visibleColumns([ column ]).length > 0 && (column.field || column.columns);\n }\n\n _visibleColumns(columns) {\n return columns.filter((column) => {\n let result = !column.hidden;\n if (result && column.columns) {\n result = this._visibleColumns(column.columns).length > 0;\n }\n return result;\n });\n }\n\n _headerRow(row, groups) {\n const headers = row.cells.map(function(cell) {\n return Object.assign(cell, {\n colSpan: cell.colSpan > 1 ? cell.colSpan : 1,\n rowSpan: row.rowSpan > 1 && !cell.colSpan ? row.rowSpan : 1\n });\n });\n\n if (this.hierarchy && headers[0].firstCell) {\n headers[0].colSpan += this._depth();\n }\n\n return {\n type: \"header\",\n cells: createArray(groups.length, () => Object.assign({\n background: \"#7a7a7a\",\n color: \"#fff\"\n }, this.options.headerPaddingCellOptions)).concat(headers)\n };\n }\n\n _prependHeaderRows(rows) {\n const groups = this.groups;\n\n const headerRows = [ { rowSpan: 1, cells: [], index: 0 } ];\n\n this._prepareHeaderRows(headerRows, this.options.columns);\n\n for (let idx = headerRows.length - 1; idx >= 0; idx--) {\n rows.unshift(this._headerRow(headerRows[idx], groups));\n }\n }\n\n _prepareHeaderRows(rows, columns, parentCell, parentRow) {\n const row = parentRow || rows[rows.length - 1];\n let childRow = rows[row.index + 1];\n let totalColSpan = 0;\n\n for (let idx = 0; idx < columns.length; idx++) {\n const column = columns[idx];\n if (this._isColumnVisible(column)) {\n\n const cell = Object.assign({\n background: \"#7a7a7a\",\n color: \"#fff\",\n value: column.title || column.field,\n colSpan: 0,\n firstCell: idx === 0 && (!parentCell || parentCell.firstCell)\n }, column.headerCellOptions);\n row.cells.push(cell);\n\n if (column.columns && column.columns.length) {\n if (!childRow) {\n childRow = { rowSpan: 0, cells: [], index: rows.length };\n rows.push(childRow);\n }\n cell.colSpan = this._trimColumns(this._visibleColumns(column.columns)).length;\n this._prepareHeaderRows(rows, column.columns, cell, childRow);\n totalColSpan += cell.colSpan - 1;\n row.rowSpan = rows.length - row.index;\n }\n }\n }\n\n if (parentCell) {\n parentCell.colSpan += totalColSpan;\n }\n }\n\n _rows() {\n const rows = this._dataRows(this.data, 0);\n\n if (this.columns.length) {\n this._prependHeaderRows(rows);\n let footer = false;\n\n const cells = this.columns.map((column) => {\n if (column.footerTemplate) {\n footer = true;\n\n return Object.assign({\n background: \"#dfdfdf\",\n color: \"#333\",\n value: column.footerTemplate(Object.assign({}, this.aggregates, this.aggregates[column.field]))\n }, column.footerCellOptions);\n }\n\n return Object.assign({\n background: \"#dfdfdf\",\n color: \"#333\"\n }, column.footerCellOptions);\n });\n\n if (footer) {\n rows.push({\n type: \"footer\",\n cells: this._createPaddingCells(this.groups.length).concat(cells)\n });\n }\n }\n\n return rows;\n }\n\n _headerDepth(columns) {\n const result = 1;\n let max = 0;\n\n for (let idx = 0; idx < columns.length; idx++) {\n if (columns[idx].columns) {\n const temp = this._headerDepth(columns[idx].columns);\n if (temp > max) {\n max = temp;\n }\n }\n }\n return result + max;\n }\n\n _freezePane() {\n const columns = this._visibleColumns(this.options.columns || []);\n\n const colSplit = this._visibleColumns(this._trimColumns(this._leafColumns(columns.filter(function(column) {\n return column.locked;\n })))).length;\n\n return {\n rowSplit: this._headerDepth(columns),\n colSplit: colSplit ? colSplit + this.groups.length : 0\n };\n }\n\n _cell(dataItem, column) {\n return Object.assign({\n value: column.value(dataItem)\n }, column.cellOptions);\n }\n\n _depth() {\n let depth = 0;\n\n if (this.hierarchy) {\n depth = this.hierarchy.depth;\n } else {\n depth = this.groups.length;\n }\n\n return depth;\n }\n\n _columns() {\n const depth = this._depth();\n const columns = createArray(depth, () => ({ width: 20 }));\n\n return columns.concat(this.columns.map(function(column) {\n return {\n width: parseInt(column.width, 10),\n autoWidth: column.width ? false : true\n };\n }));\n }\n}\n\nexport default ExcelExporter;\n","export { default as ExcelExporter } from './excel-exporter';\nexport * from './services';\nexport * from './ooxml';","import map from './utils/map';\nimport createZip from './utils/create-zip';\nimport IntlService from './services/intl-service';\nimport dateToSerial from './utils/time';\n\nconst MIME_TYPE = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\nconst DATA_URL_PREFIX = `data:${MIME_TYPE};base64,`;\nconst DATA_URL_OPTIONS = { compression: \"DEFLATE\", type: \"base64\" };\nconst BLOB_OPTIONS = { compression: \"DEFLATE\", type: \"blob\" };\nconst ARRAYBUFFER_OPTIONS = { compression: \"DEFLATE\", type: \"arraybuffer\" };\n\n/* eslint-disable key-spacing, no-arrow-condition, indent, no-nested-ternary, consistent-return */\n\nfunction toDataURI(content) {\n return DATA_URL_PREFIX + content;\n}\n\nfunction indexOf(thing, array) {\n return array.indexOf(thing);\n}\n\nconst parseJSON = JSON.parse.bind(JSON);\n\nfunction ESC(val) {\n return String(val)\n .replace(/&/g, \"&\")\n .replace(//g, \">\")\n .replace(/\\\"/g, \""\")\n .replace(/\\'/g, \"'\");\n}\n\nfunction repeat(count, func) {\n let str = \"\";\n for (let i = 0; i < count; ++i) {\n str += func(i);\n }\n return str;\n}\n\nfunction foreach(arr, func) {\n let str = \"\";\n if (arr != null) {\n if (Array.isArray(arr)) {\n for (let i = 0; i < arr.length; ++i) {\n str += func(arr[i], i);\n }\n } else if (typeof arr == \"object\") {\n Object.keys(arr).forEach((key, i) => {\n str += func(arr[key], key, i);\n });\n }\n }\n return str;\n}\n\nconst XMLHEAD = '\\r';\n\nconst RELS = `${XMLHEAD}\n \n \n \n \n `;\n\nconst CORE = ({ creator, lastModifiedBy, created, modified }) => `${XMLHEAD}\n \n ${ESC(creator)}\n ${ESC(lastModifiedBy)}\n ${ESC(created)}\n ${ESC(modified)}\n`;\n\nconst APP = ({ sheets }) => `${XMLHEAD}\n\n Microsoft Excel\n 0\n false\n \n \n \n Worksheets\n \n \n ${sheets.length}\n \n \n \n \n ${\n foreach(sheets, (sheet, i) =>\n sheet.options.title\n ? `${ESC(sheet.options.title)}`\n : `Sheet${i + 1}`\n )\n }\n \n false\n false\n false\n 14.0300\n`;\n\nconst CONTENT_TYPES = ({ sheetCount, commentFiles, drawingFiles }) => `${XMLHEAD}\n\n \n \n \n \n \n \n \n \n \n ${repeat(sheetCount, idx =>\n ``)}\n ${foreach(commentFiles, filename =>\n ``)}\n ${foreach(drawingFiles, filename =>\n ``)}\n \n \n`;\n\nconst WORKBOOK = ({ sheets, filterNames, userNames }) => `${XMLHEAD}\n\n \n \n \n \n \n \n ${foreach(sheets, ({ options }, i) => {\n const name = options.name || options.title || `Sheet${i + 1}`;\n return ``;\n })}\n \n ${filterNames.length || userNames.length ? `\n \n ${foreach(filterNames, (f) => `\n `)}\n ${foreach(userNames, (f) => `\n `)}\n ` : ''}\n \n`;\n\nconst WORKSHEET = ({\n frozenColumns,\n frozenRows,\n columns,\n defaults,\n data,\n index,\n mergeCells,\n autoFilter,\n filter,\n showGridLines,\n hyperlinks,\n validations,\n defaultCellStyleId,\n rtl,\n legacyDrawing,\n drawing,\n lastRow,\n lastCol\n}) => `${XMLHEAD}\n\n \n\n \n \n ${frozenRows || frozenColumns ? `\n ` : ''}\n \n \n\n \n\n ${defaultCellStyleId != null || (columns && columns.length > 0) ? `\n \n ${!columns || !columns.length ? `\n
  • ` : ''}\n ${foreach(columns, (column, ci) => {\n const columnIndex = typeof column.index === \"number\" ? column.index + 1 : (ci + 1);\n if (column.width === 0) {\n return ``;\n }\n return ``;\n })}\n ` : ''}\n\n \n ${foreach(data, (row, ri) => {\n const rowIndex = typeof row.index === \"number\" ? row.index + 1 : (ri + 1);\n return `\n \n ${foreach(row.data, (cell) => `\n \n ${cell.formula != null ? writeFormula(cell.formula) : ''}\n ${cell.value != null ? `${ESC(cell.value)}` : ''}\n `)}\n \n `;})}\n \n\n ${autoFilter ? ``\n : filter ? spreadsheetFilters(filter) : ''}\n\n ${mergeCells.length ? `\n \n ${foreach(mergeCells, (ref) => ``)}\n ` : ''}\n\n ${validations.length ? `\n \n ${foreach(validations, (val) => `\n \n ${val.formula1 ? `${ESC(val.formula1)}` : ''}\n ${val.formula2 ? `${ESC(val.formula2)}` : ''}\n `)}\n ` : ''}\n\n ${hyperlinks.length ? `\n \n ${foreach(hyperlinks, (link) => `\n `)}\n ` : ''}\n\n \n ${drawing ? `` : ''}\n ${legacyDrawing ? `` : ''}\n`;\n\nconst WORKBOOK_RELS = ({ count }) => `${XMLHEAD}\n\n ${repeat(count, (idx) => `\n `)}\n \n \n`;\n\nconst WORKSHEET_RELS = ({ hyperlinks, comments, sheetIndex, drawings }) => `${XMLHEAD}\n\n ${foreach(hyperlinks, (link) => `\n `)}\n ${!comments.length ? '' : `\n \n `}\n ${!drawings.length ? '' : `\n `}\n`;\n\nconst COMMENTS_XML = ({ comments }) => `${XMLHEAD}\n\n \n \n \n \n ${foreach(comments, comment => `\n \n \n \n \n \n \n \n \n \n ${ESC(comment.text)}\n \n \n `)}\n \n`;\n\nconst LEGACY_DRAWING = ({ comments }) => `\\\n\n \n ${foreach(comments, comment => `\n \n \n \n \n \n ${comment.anchor}\n False\n ${comment.row}\n ${comment.col}\n \n `)}\n`;\n\nconst DRAWINGS_XML = (drawings) => `${XMLHEAD}\n\n ${foreach(drawings, (drawing, index) => `\n \n \n ${drawing.col}\n ${drawing.colOffset}\n ${drawing.row}\n ${drawing.rowOffset}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `)}\n`;\n\nconst DRAWINGS_RELS_XML = (rels) => `${XMLHEAD}\n\n ${foreach(rels, rel => `\n `)}\n`;\n\nconst SHARED_STRINGS = ({ count, uniqueCount, indexes }) => `${XMLHEAD}\n\n ${foreach(Object.keys(indexes), (index) => `\n ${ESC(index.substring(1))}`)}\n`;\n\nconst STYLES = ({\n formats,\n fonts,\n fills,\n borders,\n styles\n}) => `${XMLHEAD}\n\n \n ${foreach(formats, (format, fi) => `\n `)}\n \n \n \n \n \n \n \n \n \n ${foreach(fonts, (font) => `\n \n ${font.bold ? '' : ''}\n ${font.italic ? '' : ''}\n ${font.underline ? '' : ''}\n \n ${font.color ? `` : ''}\n ${font.fontFamily ? `\n \n \n ` : `\n \n \n \n `}\n `)}\n \n \n \n \n ${foreach(fills, (fill) => `\n ${fill.background ? `\n \n \n \n \n \n ` : ''}`)}\n \n \n \n ${foreach(borders, borderTemplate)}\n \n \n \n \n \n \n ${foreach(styles, (style) => `\n \n ${style.textAlign || style.verticalAlign || style.wrap ? `\n \n ` : ''}\n \n `)}\n \n \n \n \n \n \n`;\n\nfunction writeFormula(formula) {\n if (typeof formula == \"string\") {\n return `${ESC(formula)}`;\n }\n // array formulas\n return `${ESC(formula.src)}`;\n}\n\nfunction numChar(colIndex) {\n const letter = Math.floor(colIndex / 26) - 1;\n\n return (letter >= 0 ? numChar(letter) : \"\") + String.fromCharCode(65 + (colIndex % 26));\n}\n\nfunction ref(rowIndex, colIndex) {\n return numChar(colIndex) + (rowIndex + 1);\n}\n\nfunction $ref(rowIndex, colIndex) {\n return \"$\" + numChar(colIndex) + \"$\" + (rowIndex + 1);\n}\n\nfunction filterRowIndex(options) {\n const frozenRows = options.frozenRows || (options.freezePane || {}).rowSplit || 1;\n return frozenRows - 1;\n}\n\nfunction toWidth(px) {\n const maximumDigitWidth = 7;\n return (px / maximumDigitWidth) - (Math.floor(128 / maximumDigitWidth) / 256);\n}\n\nfunction toHeight(px) {\n return px * 0.75;\n}\n\nfunction stripFunnyChars(value) {\n return String(value)\n .replace(/[\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F]/g, \"\") // leave CRLF in\n .replace(/\\r?\\n/g, \"\\r\\n\"); // make sure LF is preceded by CR\n}\n\nclass Worksheet {\n\n constructor(options, sharedStrings, styles, borders) {\n this.options = options;\n this._strings = sharedStrings;\n this._styles = styles;\n this._borders = borders;\n this._validations = {};\n this._comments = [];\n this._drawings = options.drawings || [];\n this._hyperlinks = (this.options.hyperlinks || []).map(\n (link, i) => Object.assign({}, link, { rId: `link${i}` }));\n }\n\n relsToXML() {\n const hyperlinks = this._hyperlinks;\n const comments = this._comments;\n const drawings = this._drawings;\n\n if (hyperlinks.length || comments.length || drawings.length) {\n return WORKSHEET_RELS({\n hyperlinks : hyperlinks,\n comments : comments,\n sheetIndex : this.options.sheetIndex,\n drawings : drawings\n });\n }\n }\n\n toXML(index) {\n const mergeCells = this.options.mergedCells || [];\n const rows = this.options.rows || [];\n const data = inflate(rows, mergeCells);\n\n this._readCells(data);\n\n let autoFilter = this.options.filter;\n let filter;\n if (autoFilter && (typeof autoFilter.from === \"number\") && (typeof autoFilter.to === \"number\")) {\n // Grid enables auto filter\n autoFilter = {\n from: ref(filterRowIndex(this.options), autoFilter.from),\n to: ref(filterRowIndex(this.options), autoFilter.to)\n };\n } else if (autoFilter && autoFilter.ref && autoFilter.columns) {\n // this is probably from the Spreadsheet\n filter = autoFilter;\n autoFilter = null;\n }\n\n const validations = [];\n for (let i in this._validations) {\n if (Object.prototype.hasOwnProperty.call(this._validations, i)) {\n validations.push(this._validations[i]);\n }\n }\n\n let defaultCellStyleId = null;\n if (this.options.defaultCellStyle) {\n defaultCellStyleId = this._lookupStyle(this.options.defaultCellStyle);\n }\n\n const freezePane = this.options.freezePane || {};\n const defaults = this.options.defaults || {};\n const lastRow = this.options.rows ? this._getLastRow() : 1;\n const lastCol = this.options.rows ? this._getLastCol() : 1;\n\n return WORKSHEET({\n frozenColumns: this.options.frozenColumns || freezePane.colSplit,\n frozenRows: this.options.frozenRows || freezePane.rowSplit,\n columns: this.options.columns,\n defaults: defaults,\n data: data,\n index: index,\n mergeCells: mergeCells,\n autoFilter: autoFilter,\n filter: filter,\n showGridLines: this.options.showGridLines,\n hyperlinks: this._hyperlinks,\n validations: validations,\n defaultCellStyleId: defaultCellStyleId,\n rtl: this.options.rtl !== undefined ? this.options.rtl : defaults.rtl,\n legacyDrawing: this._comments.length ? `vml${this.options.sheetIndex}` : null,\n drawing: this._drawings.length ? `drw${this.options.sheetIndex}` : null,\n lastRow: lastRow,\n lastCol: lastCol\n });\n }\n\n commentsXML() {\n if (this._comments.length) {\n return COMMENTS_XML({ comments: this._comments });\n }\n }\n\n drawingsXML(images) {\n if (this._drawings.length) {\n let rels = {};\n let main = this._drawings.map(drw => {\n let ref = parseRef(drw.topLeftCell);\n let img = rels[drw.image];\n if (!img) {\n img = rels[drw.image] = {\n rId: `img${drw.image}`,\n target: images[drw.image].target\n };\n }\n return {\n col : ref.col,\n colOffset : pixelsToExcel(drw.offsetX),\n row : ref.row,\n rowOffset : pixelsToExcel(drw.offsetY),\n width : pixelsToExcel(drw.width),\n height : pixelsToExcel(drw.height),\n imageId : img.rId\n };\n });\n return {\n main: DRAWINGS_XML(main),\n rels: DRAWINGS_RELS_XML(rels)\n };\n }\n }\n\n legacyDrawing() {\n if (this._comments.length) {\n return LEGACY_DRAWING({ comments: this._comments });\n }\n }\n\n _lookupString(value) {\n const key = \"$\" + value;\n const index = this._strings.indexes[key];\n let result;\n\n if (index !== undefined) {\n result = index;\n } else {\n result = this._strings.indexes[key] = this._strings.uniqueCount;\n this._strings.uniqueCount ++;\n }\n\n this._strings.count ++;\n\n return result;\n }\n\n _lookupStyle(style) {\n const json = JSON.stringify(style);\n\n if (json === \"{}\") {\n return 0;\n }\n\n let index = indexOf(json, this._styles);\n\n if (index < 0) {\n index = this._styles.push(json) - 1;\n }\n\n // There is one default style\n return index + 1;\n }\n\n _lookupBorder(border) {\n const json = JSON.stringify(border);\n if (json === \"{}\") {\n return;\n }\n\n let index = indexOf(json, this._borders);\n if (index < 0) {\n index = this._borders.push(json) - 1;\n }\n\n // There is one default border\n return index + 1;\n }\n\n _readCells(rowData) {\n for (let i = 0; i < rowData.length; i++) {\n const row = rowData[i];\n const cells = row.cells;\n\n row.data = [];\n\n for (let j = 0; j < cells.length; j++) {\n const cellData = this._cell(cells[j], row.index, j);\n if (cellData) {\n row.data.push(cellData);\n }\n }\n }\n }\n\n _cell(data, rowIndex, cellIndex) {\n if (!data || data === EMPTY_CELL) {\n return null;\n }\n\n let value = data.value;\n\n let border = {};\n\n if (data.borderLeft) {\n border.left = data.borderLeft;\n }\n\n if (data.borderRight) {\n border.right = data.borderRight;\n }\n\n if (data.borderTop) {\n border.top = data.borderTop;\n }\n\n if (data.borderBottom) {\n border.bottom = data.borderBottom;\n }\n\n border = this._lookupBorder(border);\n\n const defStyle = this.options.defaultCellStyle || {};\n let style = { borderId: border };\n\n (function(add) {\n add(\"color\");\n add(\"background\");\n add(\"bold\");\n add(\"italic\");\n add(\"underline\");\n if (!add(\"fontFamily\")) { add(\"fontName\", \"fontFamily\"); }\n add(\"fontSize\");\n add(\"format\");\n if (!add(\"textAlign\")) { add(\"hAlign\", \"textAlign\"); }\n if (!add(\"verticalAlign\")) { add(\"vAlign\", \"verticalAlign\"); }\n add(\"wrap\");\n add(\"indent\");\n })(\n function(prop, target) {\n let val = data[prop];\n if (val === undefined) {\n val = defStyle[prop];\n }\n if (val !== undefined) {\n style[target || prop] = val;\n return true;\n }\n }\n );\n\n const columns = this.options.columns || [];\n\n const column = columns[cellIndex];\n let type = typeof value;\n\n if (column && column.autoWidth && (!data.colSpan || data.colSpan === 1)) {\n let displayValue = value;\n\n // XXX: let's not bring kendo.toString in only for this.\n // better wait until the spreadsheet engine is available as a separate\n // component, then we can use a real Excel-like formatter.\n //\n if (type === \"number\") {\n // kendo.toString will not behave exactly like the Excel format\n // Still, it's the best we have available for estimating the character count.\n displayValue = IntlService.toString(value, data.format);\n }\n\n column.width = Math.max(column.width || 0, String(displayValue).length);\n }\n\n if (type === \"string\") {\n value = stripFunnyChars(value);\n value = this._lookupString(value);\n type = \"s\";\n } else if (type === \"number\") {\n type = \"n\";\n } else if (type === \"boolean\") {\n type = \"b\";\n value = Number(value);\n } else if (value && value.getTime) {\n type = null;\n value = dateToSerial(value);\n if (!style.format) {\n style.format = \"mm-dd-yy\";\n }\n } else {\n type = null;\n value = null;\n }\n\n style = this._lookupStyle(style);\n\n const cellName = ref(rowIndex, cellIndex);\n\n if (data.validation) {\n this._addValidation(data.validation, cellName);\n }\n\n if (data.comment) {\n let anchor = [\n cellIndex + 1, // start column\n 15, // start column offset\n rowIndex, // start row\n 10, // start row offset\n cellIndex + 3, // end column\n 15, // end column offset\n rowIndex + 3, // end row\n 4 // end row offset\n ];\n this._comments.push({\n ref : cellName,\n text : data.comment,\n row : rowIndex,\n col : cellIndex,\n anchor : anchor.join(\", \")\n });\n }\n\n return {\n value: value,\n formula: data.formula,\n type: type,\n style: style,\n ref: cellName\n };\n }\n\n _addValidation(v, ref) {\n const tmp = {\n showErrorMessage : v.type === \"reject\" ? 1 : 0,\n formula1 : v.from,\n formula2 : v.to,\n type : MAP_EXCEL_TYPE[v.dataType] || v.dataType,\n operator : MAP_EXCEL_OPERATOR[v.comparerType] || v.comparerType,\n allowBlank : v.allowNulls ? 1 : 0,\n showDropDown : v.showButton ? 0 : 1, // LOL, Excel!\n error : v.messageTemplate,\n errorTitle : v.titleTemplate\n };\n const json = JSON.stringify(tmp);\n if (!this._validations[json]) {\n this._validations[json] = tmp;\n tmp.sqref = [];\n }\n this._validations[json].sqref.push(ref);\n }\n\n _getLastRow() {\n return countData(this.options.rows);\n }\n\n _getLastCol() {\n let last = 0;\n this.options.rows.forEach(function(row) {\n if (row.cells) {\n last = Math.max(last, countData(row.cells));\n }\n });\n return last;\n }\n}\n\nfunction countData(data) {\n let last = data.length;\n data.forEach(function(el) {\n if (el.index && el.index >= last) {\n last = el.index + 1;\n }\n });\n return last;\n}\n\nconst MAP_EXCEL_OPERATOR = {\n // includes only what differs; key is our operator, value is Excel\n // operator.\n greaterThanOrEqualTo : \"greaterThanOrEqual\",\n lessThanOrEqualTo : \"lessThanOrEqual\"\n};\n\nconst MAP_EXCEL_TYPE = {\n number: \"decimal\"\n};\n\nconst defaultFormats = {\n \"General\": 0,\n \"0\": 1,\n \"0.00\": 2,\n \"#,##0\": 3,\n \"#,##0.00\": 4,\n \"0%\": 9,\n \"0.00%\": 10,\n \"0.00E+00\": 11,\n \"# ?/?\": 12,\n \"# ??/??\": 13,\n \"mm-dd-yy\": 14,\n \"d-mmm-yy\": 15,\n \"d-mmm\": 16,\n \"mmm-yy\": 17,\n \"h:mm AM/PM\": 18,\n \"h:mm:ss AM/PM\": 19,\n \"h:mm\": 20,\n \"h:mm:ss\": 21,\n \"m/d/yy h:mm\": 22,\n \"#,##0 ;(#,##0)\": 37,\n \"#,##0 ;[Red](#,##0)\": 38,\n \"#,##0.00;(#,##0.00)\": 39,\n \"#,##0.00;[Red](#,##0.00)\": 40,\n \"mm:ss\": 45,\n \"[h]:mm:ss\": 46,\n \"mmss.0\": 47,\n \"##0.0E+0\": 48,\n \"@\": 49,\n \"[$-404]e/m/d\": 27,\n \"m/d/yy\": 30,\n \"t0\": 59,\n \"t0.00\": 60,\n \"t#,##0\": 61,\n \"t#,##0.00\": 62,\n \"t0%\": 67,\n \"t0.00%\": 68,\n \"t# ?/?\": 69,\n \"t# ??/??\": 70\n};\n\nfunction convertColor(value) {\n let color = value;\n if (color.length < 6) {\n color = color.replace(/(\\w)/g, function($0, $1) {\n return $1 + $1;\n });\n }\n\n color = color.substring(1).toUpperCase();\n\n if (color.length < 8) {\n color = \"FF\" + color;\n }\n\n return color;\n}\n\nclass Workbook {\n\n constructor(options) {\n this.options = options || {};\n this._strings = {\n indexes: {},\n count: 0,\n uniqueCount: 0\n };\n this._styles = [];\n this._borders = [];\n this._images = this.options.images;\n this._imgId = 0;\n\n this._sheets = map(this.options.sheets || [], (options, i) => {\n options.defaults = this.options;\n options.sheetIndex = i + 1;\n return new Worksheet(options, this._strings, this._styles, this._borders);\n });\n }\n\n imageFilename(mimeType) {\n const id = ++this._imgId;\n switch (mimeType) {\n case \"image/jpg\":\n case \"image/jpeg\":\n return `image${id}.jpg`;\n case \"image/png\":\n return `image${id}.png`;\n case \"image/gif\":\n return `image${id}.gif`;\n default:\n return `image${id}.bin`; // XXX: anything better to do here?\n }\n }\n\n toZIP() {\n const zip = createZip();\n\n const docProps = zip.folder(\"docProps\");\n\n docProps.file(\"core.xml\", CORE({\n creator: this.options.creator || \"Kendo UI\",\n lastModifiedBy: this.options.creator || \"Kendo UI\",\n created: this.options.date || new Date().toJSON(),\n modified: this.options.date || new Date().toJSON()\n }));\n\n const sheetCount = this._sheets.length;\n\n docProps.file(\"app.xml\", APP({ sheets: this._sheets }));\n\n const rels = zip.folder(\"_rels\");\n rels.file(\".rels\", RELS);\n\n const xl = zip.folder(\"xl\");\n\n const xlRels = xl.folder(\"_rels\");\n xlRels.file(\"workbook.xml.rels\", WORKBOOK_RELS({ count: sheetCount }));\n\n if (this._images) {\n const media = xl.folder(\"media\");\n Object.keys(this._images).forEach(id => {\n const img = this._images[id];\n const filename = this.imageFilename(img.type);\n media.file(filename, img.data);\n img.target = `../media/${filename}`;\n });\n }\n\n const sheetIds = {};\n xl.file(\"workbook.xml\", WORKBOOK({\n sheets: this._sheets,\n filterNames: map(this._sheets, function(sheet, index) {\n const options = sheet.options;\n const sheetName = (options.name || options.title || \"Sheet\" + (index + 1));\n sheetIds[sheetName.toLowerCase()] = index;\n const filter = options.filter;\n if (filter) {\n if (filter.ref) {\n // spreadsheet provides `ref`\n let a = filter.ref.split(\":\");\n let from = parseRef(a[0]);\n let to = parseRef(a[1]);\n return {\n localSheetId: index,\n name: sheetName,\n from: $ref(from.row, from.col),\n to: $ref(to.row, to.col)\n };\n } else if (typeof filter.from !== \"undefined\" && typeof filter.to !== \"undefined\") {\n // grid does this\n return {\n localSheetId: index,\n name: sheetName,\n from: $ref(filterRowIndex(options), filter.from),\n to: $ref(filterRowIndex(options), filter.to)\n };\n }\n }\n }),\n userNames: map(this.options.names || [], function(def) {\n return {\n name: def.localName,\n localSheetId: def.sheet ? sheetIds[def.sheet.toLowerCase()] : null,\n value: def.value,\n hidden: def.hidden\n };\n })\n }));\n\n const worksheets = xl.folder(\"worksheets\");\n const drawings = xl.folder(\"drawings\");\n const drawingsRels = drawings.folder(\"_rels\");\n const sheetRels = worksheets.folder(\"_rels\");\n const commentFiles = [];\n const drawingFiles = [];\n\n for (let idx = 0; idx < sheetCount; idx++) {\n const sheet = this._sheets[idx];\n const sheetName = `sheet${idx + 1}.xml`;\n const sheetXML = sheet.toXML(idx); // must be called before relsToXML\n const relsXML = sheet.relsToXML();\n const commentsXML = sheet.commentsXML();\n const legacyDrawing = sheet.legacyDrawing();\n const drawingsXML = sheet.drawingsXML(this._images);\n\n if (relsXML) {\n sheetRels.file(sheetName + \".rels\", relsXML);\n }\n if (commentsXML) {\n let name = `comments${sheet.options.sheetIndex}.xml`;\n xl.file(name, commentsXML);\n commentFiles.push(name);\n }\n if (legacyDrawing) {\n drawings.file(`vmlDrawing${sheet.options.sheetIndex}.vml`, legacyDrawing);\n }\n if (drawingsXML) {\n let name = `drawing${sheet.options.sheetIndex}.xml`;\n drawings.file(name, drawingsXML.main);\n drawingsRels.file(`${name}.rels`, drawingsXML.rels);\n drawingFiles.push(name);\n }\n\n worksheets.file(sheetName, sheetXML);\n }\n\n const borders = map(this._borders, parseJSON);\n\n const styles = map(this._styles, parseJSON);\n\n const hasFont = function(style) {\n return style.underline || style.bold || style.italic || style.color || style.fontFamily || style.fontSize;\n };\n\n const convertFontSize = function(value) {\n let fontInPx = Number(value);\n let fontInPt;\n\n if (fontInPx) {\n fontInPt = fontInPx * 3 / 4;\n }\n\n return fontInPt;\n };\n\n const fonts = map(styles, function(style) {\n if (style.fontSize) {\n style.fontSize = convertFontSize(style.fontSize);\n }\n\n if (style.color) {\n style.color = convertColor(style.color);\n }\n\n if (hasFont(style)) {\n return style;\n }\n });\n\n const formats = map(styles, function(style) {\n if (style.format && defaultFormats[style.format] === undefined) {\n return style;\n }\n });\n\n const fills = map(styles, function(style) {\n if (style.background) {\n style.background = convertColor(style.background);\n return style;\n }\n });\n\n xl.file(\"styles.xml\", STYLES({\n fonts: fonts,\n fills: fills,\n formats: formats,\n borders: borders,\n styles: map(styles, function(style) {\n const result = {};\n\n if (hasFont(style)) {\n result.fontId = indexOf(style, fonts) + 1;\n }\n\n if (style.background) {\n result.fillId = indexOf(style, fills) + 2;\n }\n\n result.textAlign = style.textAlign;\n result.indent = style.indent;\n result.verticalAlign = style.verticalAlign;\n result.wrap = style.wrap;\n result.borderId = style.borderId;\n\n if (style.format) {\n if (defaultFormats[style.format] !== undefined) {\n result.numFmtId = defaultFormats[style.format];\n } else {\n result.numFmtId = 165 + indexOf(style, formats);\n }\n }\n\n return result;\n })\n }));\n\n xl.file(\"sharedStrings.xml\", SHARED_STRINGS(this._strings));\n\n zip.file(\"[Content_Types].xml\", CONTENT_TYPES({\n sheetCount: sheetCount,\n commentFiles: commentFiles,\n drawingFiles: drawingFiles\n }));\n\n return zip;\n }\n\n toDataURL() {\n const zip = this.toZIP();\n\n return zip.generateAsync ? zip.generateAsync(DATA_URL_OPTIONS).then(toDataURI) : toDataURI(zip.generate(DATA_URL_OPTIONS));\n }\n\n toBlob() {\n const zip = this.toZIP();\n if (zip.generateAsync) {\n return zip.generateAsync(BLOB_OPTIONS);\n }\n return new Blob([ zip.generate(ARRAYBUFFER_OPTIONS) ], { type: MIME_TYPE });\n }\n}\n\nfunction borderStyle(width) {\n let alias = \"thin\";\n\n if (width === 2) {\n alias = \"medium\";\n } else if (width === 3) {\n alias = \"thick\";\n }\n\n return alias;\n}\n\nfunction borderSideTemplate(name, style) {\n let result = \"\";\n\n if (style) {\n result += \"<\" + name + \" style=\\\"\" + borderStyle(style.size) + \"\\\">\";\n if (style.color) {\n result += \"\";\n }\n result += \"\";\n }\n\n return result;\n}\n\nfunction borderTemplate(border) {\n return \"\" +\n borderSideTemplate(\"left\", border.left) +\n borderSideTemplate(\"right\", border.right) +\n borderSideTemplate(\"top\", border.top) +\n borderSideTemplate(\"bottom\", border.bottom) +\n \"\";\n}\n\nconst EMPTY_CELL = {};\nfunction inflate(rows, mergedCells) {\n const rowData = [];\n const rowsByIndex = [];\n\n indexRows(rows, function(row, index) {\n const data = {\n _source: row,\n index: index,\n height: row.height,\n level: row.level,\n cells: []\n };\n\n rowData.push(data);\n rowsByIndex[index] = data;\n });\n\n const sorted = sortByIndex(rowData).slice(0);\n const ctx = {\n rowData: rowData,\n rowsByIndex: rowsByIndex,\n mergedCells: mergedCells\n };\n\n for (let i = 0; i < sorted.length; i++) {\n fillCells(sorted[i], ctx);\n delete sorted[i]._source;\n }\n\n return sortByIndex(rowData);\n}\n\nfunction indexRows(rows, callback) {\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n if (!row) {\n continue;\n }\n\n let index = row.index;\n if (typeof index !== \"number\") {\n index = i;\n }\n\n callback(row, index);\n }\n}\n\nfunction sortByIndex(items) {\n return items.sort(function(a, b) {\n return a.index - b.index;\n });\n}\n\nfunction pushUnique(array, el) {\n if (array.indexOf(el) < 0) {\n array.push(el);\n }\n}\n\nfunction getSpan(mergedCells, ref) {\n for (let i = 0; i < mergedCells.length; ++i) {\n const range = mergedCells[i];\n const a = range.split(\":\");\n let topLeft = a[0];\n if (topLeft === ref) {\n let bottomRight = a[1];\n topLeft = parseRef(topLeft);\n bottomRight = parseRef(bottomRight);\n return {\n rowSpan: bottomRight.row - topLeft.row + 1,\n colSpan: bottomRight.col - topLeft.col + 1\n };\n }\n }\n}\n\nfunction parseRef(ref) {\n function getcol(str) {\n let upperStr = str.toUpperCase();\n let col = 0;\n for (let i = 0; i < upperStr.length; ++i) {\n col = col * 26 + upperStr.charCodeAt(i) - 64;\n }\n return col - 1;\n }\n\n function getrow(str) {\n return parseInt(str, 10) - 1;\n }\n\n const m = /^([a-z]+)(\\d+)$/i.exec(ref);\n return {\n row: getrow(m[2]),\n col: getcol(m[1])\n };\n}\n\nfunction pixelsToExcel(px) {\n return Math.round(px * 9525);\n}\n\nfunction fillCells(data, ctx) {\n const row = data._source;\n const rowIndex = data.index;\n const cells = row.cells;\n const cellData = data.cells;\n\n if (!cells) {\n return;\n }\n\n for (let i = 0; i < cells.length; i++) {\n const cell = cells[i] || EMPTY_CELL;\n\n let rowSpan = cell.rowSpan || 1;\n let colSpan = cell.colSpan || 1;\n\n const cellIndex = insertCell(cellData, cell);\n const topLeftRef = ref(rowIndex, cellIndex);\n\n if (rowSpan === 1 && colSpan === 1) {\n // could still be merged: the spreadsheet does not send\n // rowSpan/colSpan, but mergedCells is already populated.\n // https://github.com/telerik/kendo-ui-core/issues/2401\n const tmp = getSpan(ctx.mergedCells, topLeftRef);\n if (tmp) {\n colSpan = tmp.colSpan;\n rowSpan = tmp.rowSpan;\n }\n }\n\n spanCell(cell, cellData, cellIndex, colSpan);\n\n if (rowSpan > 1 || colSpan > 1) {\n pushUnique(ctx.mergedCells,\n topLeftRef + \":\" + ref(rowIndex + rowSpan - 1,\n cellIndex + colSpan - 1));\n }\n\n if (rowSpan > 1) {\n for (let ri = rowIndex + 1; ri < rowIndex + rowSpan; ri++) {\n let nextRow = ctx.rowsByIndex[ri];\n if (!nextRow) {\n nextRow = ctx.rowsByIndex[ri] = { index: ri, cells: [] };\n ctx.rowData.push(nextRow);\n }\n\n spanCell(cell, nextRow.cells, cellIndex - 1, colSpan + 1);\n }\n }\n }\n}\n\nfunction insertCell(data, cell) {\n let index;\n\n if (typeof cell.index === \"number\") {\n index = cell.index;\n insertCellAt(data, cell, cell.index);\n } else {\n index = appendCell(data, cell);\n }\n\n return index;\n}\n\nfunction insertCellAt(data, cell, index) {\n data[index] = cell;\n}\n\nfunction appendCell(data, cell) {\n let index = data.length;\n\n for (let i = 0; i < data.length + 1; i++) {\n if (!data[i]) {\n data[i] = cell;\n index = i;\n break;\n }\n }\n\n return index;\n}\n\nfunction spanCell(cell, row, startIndex, colSpan) {\n for (let i = 1; i < colSpan; i++) {\n const tmp = {\n borderTop : cell.borderTop,\n borderRight : cell.borderRight,\n borderBottom : cell.borderBottom,\n borderLeft : cell.borderLeft\n };\n insertCellAt(row, tmp, startIndex + i);\n }\n}\n\nconst SPREADSHEET_FILTERS = ({ ref, columns, generators }) => `\n\n ${foreach(columns, (col) => `\n \n ${generators[col.filter](col)}\n \n `)}\n`;\n\nconst SPREADSHEET_CUSTOM_FILTER = ({ logic, criteria }) => `\n\n${foreach(criteria, (f) => {\n let op = spreadsheetFilters.customOperator(f);\n let val = spreadsheetFilters.customValue(f);\n return ``;\n})}\n`;\n\nconst SPREADSHEET_DYNAMIC_FILTER = ({ type }) =>\n``;\n\nconst SPREADSHEET_TOP_FILTER = ({ type, value }) =>\n``;\n\nconst SPREADSHEET_VALUE_FILTER = ({ blanks, values }) =>\n `\n ${foreach(values, (value) => `\n `)}\n `;\n\nfunction spreadsheetFilters(filter) {\n return SPREADSHEET_FILTERS({\n ref: filter.ref,\n columns: filter.columns,\n generators: {\n custom : SPREADSHEET_CUSTOM_FILTER,\n dynamic : SPREADSHEET_DYNAMIC_FILTER,\n top : SPREADSHEET_TOP_FILTER,\n value : SPREADSHEET_VALUE_FILTER\n }\n });\n}\n\nspreadsheetFilters.customOperator = function(f) {\n return {\n eq : \"equal\",\n gt : \"greaterThan\",\n gte : \"greaterThanOrEqual\",\n lt : \"lessThan\",\n lte : \"lessThanOrEqual\",\n ne : \"notEqual\",\n\n // These are not in the spec, but seems to be how Excel does\n // it (see customValue below). For the non-negated versions,\n // the operator attribute is missing completely.\n doesnotstartwith: \"notEqual\",\n doesnotendwith: \"notEqual\",\n doesnotcontain: \"notEqual\",\n doesnotmatch: \"notEqual\"\n }[f.operator.toLowerCase()];\n};\n\nfunction quoteSheet(name) {\n if (/^\\'/.test(name)) { // assume already quoted, the Spreadsheet does it.\n return name;\n }\n if (/^[a-z_][a-z0-9_]*$/i.test(name)) {\n return name; // no need to quote it\n }\n return \"'\" + name.replace(/\\x27/g, \"\\\\'\") + \"'\";\n}\n\nspreadsheetFilters.customValue = function(f) {\n function esc(str) {\n return str.replace(/([*?])/g, \"~$1\");\n }\n\n switch (f.operator.toLowerCase()) {\n case \"startswith\":\n case \"doesnotstartwith\":\n return esc(f.value) + \"*\";\n\n case \"endswith\":\n case \"doesnotendwith\":\n return \"*\" + esc(f.value);\n\n case \"contains\":\n case \"doesnotcontain\":\n return \"*\" + esc(f.value) + \"*\";\n\n default:\n return f.value;\n }\n};\n\nspreadsheetFilters.dynamicFilterType = function(type) {\n return {\n quarter1 : \"Q1\",\n quarter2 : \"Q2\",\n quarter3 : \"Q3\",\n quarter4 : \"Q4\",\n january : \"M1\",\n february : \"M2\",\n march : \"M3\",\n april : \"M4\",\n may : \"M5\",\n june : \"M6\",\n july : \"M7\",\n august : \"M8\",\n september : \"M9\",\n october : \"M10\",\n november : \"M11\",\n december : \"M12\"\n }[type.toLowerCase()] || type;\n};\n\nexport {\n Workbook,\n Worksheet\n};\n","export { default as IntlService } from './services/intl-service';\nexport { default as TemplateService } from './services/template-service';\n","let current = {\n toString: (value) => value\n};\n\nclass IntlService {\n static register(userImplementation) {\n current = userImplementation;\n }\n\n static toString(value, format) {\n return current.toString(value, format);\n }\n}\n\nexport default IntlService;","let current = {\n compile: function(template) {\n return template;\n }\n};\n\nclass TemplateService {\n static register(userImplementation) {\n current = userImplementation;\n }\n\n static compile(template) {\n return current.compile(template);\n }\n}\n\nexport default TemplateService;","import JSZip from 'jszip/dist/jszip';\n\nexport default function createZip() {\n return new JSZip();\n}","const FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\nconst getterCache = {};\nconst UNDEFINED = 'undefined';\n\ngetterCache[UNDEFINED] = function(obj) {\n return obj;\n};\n\nexport default function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n\n const fields = [];\n field.replace(FIELD_REGEX, function(match, index, indexAccessor, field) {\n fields.push(typeof index !== UNDEFINED ? index : (indexAccessor || field));\n });\n\n getterCache[field] = function(obj) {\n let result = obj;\n for (let idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n\n return result;\n };\n\n return getterCache[field];\n}","export default function map(array, func) {\n return array.reduce((result, el, i) => {\n const val = func(el, i);\n if (val != null) {\n result.push(val);\n }\n return result;\n }, []);\n}","// date packing utilities from Kendo Spreadsheet\n\n// Julian days algorithms from http://www.hermetic.ch/cal_stud/jdn.htm#comp\nfunction dateToJulianDays(y, m, d) {\n return ((1461 * (y + 4800 + ((m - 13) / 12 | 0))) / 4 | 0) +\n ((367 * (m - 1 - 12 * ((m - 13) / 12 | 0))) / 12 | 0) -\n ((3 * (((y + 4900 + ((m - 13) / 12 | 0)) / 100 | 0))) / 4 | 0) +\n d - 32075;\n}\n\n// This uses the Google Spreadsheet approach: treat 1899-12-31 as day 1, allowing to avoid\n// implementing the \"Leap Year Bug\" yet still be Excel compatible for dates starting 1900-03-01.\nconst BASE_DATE = dateToJulianDays(1900, 0, -1);\n\nfunction packDate(year, month, date) {\n return dateToJulianDays(year, month, date) - BASE_DATE;\n}\n\nfunction packTime(hh, mm, ss, ms) {\n return (hh + (mm + (ss + ms / 1000) / 60) / 60) / 24;\n}\n\nexport default function dateToSerial(date) {\n const time = packTime(date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds());\n const serial = packDate(date.getFullYear(),\n date.getMonth(),\n date.getDate());\n return serial < 0 ? serial - 1 + time : serial + time;\n}\n","export default function addScroll(rect, scroll) {\n return {\n top: rect.top + scroll.y,\n left: rect.left + scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","export default {\n \"bottom\": \"bottom\",\n \"center\": \"center\",\n \"middle\": \"middle\",\n \"left\": \"left\",\n \"right\": \"right\",\n \"top\": \"top\"\n};\n","import point from './align-point';\n\nconst align = (options) => {\n const { anchorRect, anchorAlign, elementRect, elementAlign, margin = {} } = options;\n const anchorHorizontal = anchorAlign.horizontal;\n const anchorVertical = anchorAlign.vertical;\n const elementHorizontal = elementAlign.horizontal;\n const elementVertical = elementAlign.vertical;\n\n let horizontalMargin = margin.horizontal || 0;\n let verticalMargin = margin.vertical || 0;\n\n let top = anchorRect.top;\n let left = anchorRect.left;\n\n if (anchorVertical === point.bottom) {\n top += anchorRect.height;\n }\n\n if (anchorVertical === point.center || anchorVertical === point.middle) {\n top += Math.round(anchorRect.height / 2);\n }\n\n if (elementVertical === point.bottom) {\n top -= elementRect.height;\n verticalMargin *= -1;\n }\n\n if (elementVertical === point.center || elementVertical === point.middle) {\n top -= Math.round(elementRect.height / 2);\n verticalMargin *= -1;\n }\n\n if (anchorHorizontal === point.right) {\n left += anchorRect.width;\n }\n\n if (anchorHorizontal === point.center || anchorHorizontal === point.middle) {\n left += Math.round(anchorRect.width / 2);\n }\n\n if (elementHorizontal === point.right) {\n left -= elementRect.width;\n horizontalMargin *= -1;\n }\n\n if (elementHorizontal === point.center || elementHorizontal === point.middle) {\n left -= Math.round(elementRect.width / 2);\n horizontalMargin *= -1;\n }\n\n return {\n top: top + verticalMargin,\n left: left + horizontalMargin\n };\n};\n\nexport default align;\n","export default function applyLocationOffset(rect, location, isOffsetBody) {\n let { top, left } = rect;\n\n if (isOffsetBody) {\n left = 0;\n top = 0;\n }\n\n return {\n top: top + location.top,\n left: left + location.left,\n height: rect.height,\n width: rect.width\n };\n}\n","import windowViewport from './window-viewport';\n\nconst boundingOffset = (element) => {\n if (!element.getBoundingClientRect) {\n const viewport = windowViewport(element);\n return {\n bottom: viewport.height,\n left: 0,\n right: viewport.width,\n top: 0\n };\n }\n\n const { bottom, left, right, top } = element.getBoundingClientRect();\n\n return {\n bottom,\n left,\n right,\n top\n };\n};\n\nexport default boundingOffset;\n","export default {\n \"fit\": \"fit\",\n \"flip\": \"flip\"\n};\n","import ownerDocument from './owner-document';\n\nconst getDocument = (element) => ownerDocument(element).documentElement;\n\nexport default getDocument;\n","import scrollPosition from './scroll-position';\n\nexport default (element) => {\n if (element === (element.ownerDocument || {}).body) {\n return scrollPosition(element);\n }\n\n return {\n x: element.scrollLeft,\n y: element.scrollTop\n };\n};\n","import offsetParent from './offset-parent';\n\nconst isBodyOffset = (element) => (offsetParent(element) === element.ownerDocument.body);\n\nexport default isBodyOffset;\n","export { default as align } from './align';\nexport { default as addScroll } from './add-scroll';\nexport { default as applyLocationOffset } from './apply-location-offset';\nexport { default as boundingOffset } from './bounding-offset';\nexport { default as isBodyOffset } from './is-body-offset';\nexport { default as offsetParent } from './offset-parent';\nexport { default as offset } from './offset';\nexport { default as parents } from './parents';\nexport { default as parentScrollPosition } from './parent-scroll-position';\nexport { default as position } from './position';\nexport { default as positionWithScroll } from './position-with-scroll';\nexport { default as removeScroll } from './remove-scroll';\nexport { default as restrictToView } from './restrict-to-view';\nexport { default as scrollPosition } from './scroll-position';\nexport { default as siblingContainer } from './sibling-container';\nexport { default as siblings } from './siblings';\n\nexport { default as getDocumentElement } from './document';\nexport { default as getWindow } from './window';\nexport { default as getWindowViewPort } from './window-viewport';\n\nexport { default as AlignPoint } from './align-point';\nexport { default as Collision } from './collision';\n","import elementScrollPosition from './element-scroll-position';\nimport parentScrollPosition from './parent-scroll-position';\n\nexport default (offsetParentElement, element) => ( // eslint-disable-line no-arrow-condition\n offsetParentElement ? elementScrollPosition(offsetParentElement) : parentScrollPosition(element)\n);\n","import documentElement from './document';\n\nconst offsetParent = (element) => {\n let offsetParent = element.offsetParent;\n\n while (offsetParent && offsetParent.style.position === \"static\") {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || documentElement(element);\n};\n\nexport default offsetParent;\n","const rectOfHiddenElement = (element) => {\n const { display, left, position } = element.style;\n\n element.style.display = '';\n element.style.left = '-10000px';\n element.style.position = 'absolute';\n\n const rect = element.getBoundingClientRect();\n\n element.style.display = display;\n element.style.left = left;\n element.style.position = position;\n\n return rect;\n};\n\nconst offset = (element) => {\n let rect = element.getBoundingClientRect();\n let { left, top } = rect;\n\n if (!rect.height && !rect.width) {\n rect = rectOfHiddenElement(element);\n }\n\n return {\n top: top,\n left: left,\n height: rect.height,\n width: rect.width\n };\n};\n\nexport default offset;\n","export default function ownerDocument(element) {\n return element.ownerDocument || element.document || element;\n}\n","import offsetParent from './offset-parent';\nimport elementScrollPosition from './element-scroll-position';\n\nexport default function parentScrollPosition(element) {\n const parent = offsetParent(element);\n\n return parent ? elementScrollPosition(parent) : { x: 0, y: 0 };\n}\n","export default (element, until) => {\n const result = [];\n let next = element.parentNode;\n\n while (next) {\n result.push(next);\n\n if (next === until) { break; }\n\n next = next.parentNode;\n }\n\n return result;\n};\n","import offsetParentScrollPosition from './offset-parent-scroll-position';\nimport offsetParent from './offset-parent';\nimport position from './position';\n\nexport default (element, parent, scale = 1) => {\n const offsetParentElement = parent ? offsetParent(parent) : null;\n const { top, left, height, width } = position(element, offsetParentElement);\n const { x, y } = offsetParentScrollPosition(offsetParentElement, element);\n const ownerDocument = element.ownerDocument;\n const positionScale = offsetParentElement === ownerDocument.body || offsetParentElement === ownerDocument.documentElement ? 1 : scale;\n\n return {\n top: top + y * positionScale,\n left: left + x * positionScale,\n height: height,\n width: width\n };\n};\n","import offsetParent from './offset-parent';\nimport offsetRect from './offset';\nimport wnd from './window';\n\nconst position = (element, parent) => {\n const win = wnd(element);\n const elementStyles = win.getComputedStyle(element);\n const offset = offsetRect(element);\n const parentElement = parent || offsetParent(element);\n\n const ownerDocument = element.ownerDocument;\n const useRelative = parentElement !== ownerDocument.body && parentElement !== ownerDocument.documentElement;\n\n let parentOffset = { top: 0, left: 0 };\n\n if (elementStyles.position !== \"fixed\" && useRelative) {\n const parentStyles = win.getComputedStyle(parentElement);\n\n parentOffset = offsetRect(parentElement);\n parentOffset.top += parseInt(parentStyles.borderTopWidth, 10);\n parentOffset.left += parseInt(parentStyles.borderLeftWidth, 10);\n }\n\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left,\n height: offset.height,\n width: offset.width\n };\n};\n\nexport default position;\n","export default function removeScroll(rect, scroll) {\n return {\n top: rect.top - scroll.y,\n left: rect.left - scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","import alignPoint from './align-point';\nimport collision from './collision';\n\nconst fit = function(position, size, viewPortSize) {\n let output = 0;\n\n if (position + size > viewPortSize) {\n output = viewPortSize - (position + size);\n }\n\n if (position < 0) {\n output = -position;\n }\n\n return output;\n};\n\nconst flip = function({ offset, size, anchorSize, viewPortSize, anchorAlignPoint, elementAlignPoint, margin }) {\n let output = 0;\n\n const isPositionCentered = elementAlignPoint === alignPoint.center || elementAlignPoint === alignPoint.middle;\n const isOriginCentered = anchorAlignPoint === alignPoint.center || anchorAlignPoint === alignPoint.middle;\n const marginToAdd = 2 * margin; //2x to keep margin after flip\n\n if (elementAlignPoint !== anchorAlignPoint && !isPositionCentered && !isOriginCentered) {\n const isBeforeAnchor = anchorAlignPoint === alignPoint.top || anchorAlignPoint === alignPoint.left;\n if (offset < 0 && isBeforeAnchor) {\n output = size + anchorSize + marginToAdd;\n if (offset + output + size > viewPortSize) {\n output = 0; //skip flip\n }\n } else if (offset >= 0 && !isBeforeAnchor) {\n if (offset + size > viewPortSize) {\n output += -(anchorSize + size + marginToAdd);\n }\n\n if (offset + output < 0) {\n output = 0; //skip flip\n }\n }\n }\n\n return output;\n};\n\nconst restrictToView = (options) => {\n const { anchorRect, anchorAlign, elementRect, elementAlign, collisions, viewPort, margin = {} } = options;\n const { top: elementTop, left: elementLeft, height: elementHeight, width: elementWidth } = elementRect;\n const { height: viewPortHeight, width: viewPortWidth } = viewPort;\n const horizontalMargin = margin.horizontal || 0;\n const verticalMargin = margin.vertical || 0;\n\n let left = 0;\n let top = 0;\n\n const isHorizontalFlip = collisions.horizontal === collision.flip;\n const isVerticalFlip = collisions.vertical === collision.flip;\n\n if (collisions.vertical === collision.fit) {\n top += fit(elementTop, elementHeight, viewPortHeight);\n }\n\n if (collisions.horizontal === collision.fit) {\n left += fit(elementLeft, elementWidth, viewPortWidth);\n }\n\n if (isVerticalFlip) {\n top += flip({\n margin: verticalMargin,\n offset: elementTop,\n size: elementHeight,\n anchorSize: anchorRect.height,\n viewPortSize: viewPortHeight,\n anchorAlignPoint: anchorAlign.vertical,\n elementAlignPoint: elementAlign.vertical\n });\n }\n\n if (isHorizontalFlip) {\n left += flip({\n margin: horizontalMargin,\n offset: elementLeft,\n size: elementWidth,\n anchorSize: anchorRect.width,\n viewPortSize: viewPortWidth,\n anchorAlignPoint: anchorAlign.horizontal,\n elementAlignPoint: elementAlign.horizontal\n });\n }\n const flippedHorizontal = isHorizontalFlip && left !== 0;\n const flippedVertical = isVerticalFlip && top !== 0;\n\n return {\n flipped: flippedHorizontal || flippedVertical,\n flip: {\n horizontal: flippedHorizontal,\n vertical: flippedVertical\n },\n offset: {\n left: left,\n top: top\n }\n };\n};\n\nexport default restrictToView;\n","import docElement from './document';\nimport wnd from './window';\n\nexport default function scrollPosition(element) {\n const documentElement = docElement(element);\n const win = wnd(element);\n\n return {\n x: win.pageXOffset || documentElement.scrollLeft || 0,\n y: win.pageYOffset || documentElement.scrollTop || 0\n };\n}\n","let cachedWidth = 0;\n\nexport default function scrollbarWidth() {\n if (!cachedWidth && typeof document !== 'undefined') {\n const div = document.createElement(\"div\");\n\n div.style.cssText = \"overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block\";\n div.innerHTML = \" \";\n document.body.appendChild(div);\n\n cachedWidth = div.offsetWidth - div.scrollWidth;\n\n document.body.removeChild(div);\n }\n\n return cachedWidth;\n}\n","/* eslint-disable no-loop-func */\n\nimport parents from './parents';\nimport siblings from './siblings';\n\nexport default (anchor, container) => {\n const parentElements = parents(anchor);\n let containerElement = container;\n let siblingElements;\n let result;\n\n while (containerElement) {\n siblingElements = siblings(containerElement);\n\n result = parentElements.reduce(\n (list, p) => list.concat(siblingElements.filter(s => s === p)),\n []\n )[0];\n\n if (result) { break; }\n\n containerElement = containerElement.parentElement;\n }\n\n return result;\n};\n\n","export default (element) => {\n const result = [];\n\n let sibling = element.parentNode.firstElementChild;\n\n while (sibling) {\n if (sibling !== element) {\n result.push(sibling);\n }\n\n sibling = sibling.nextElementSibling;\n }\n return result;\n};\n","import wnd from './window';\nimport getDocument from './document';\nimport scrollbarWidth from './scrollbar-width';\n\nexport default function windowViewport(element) {\n const win = wnd(element);\n const document = getDocument(element);\n const result = {\n height: win.innerHeight,\n width: win.innerWidth\n };\n\n if (document.scrollHeight - document.clientHeight > 0) {\n result.width -= scrollbarWidth();\n }\n\n return result;\n}\n","import ownerDocument from './owner-document';\n\nconst getWindow = (element) => ownerDocument(element).defaultView;\n\nexport default getWindow;\n","/* eslint-disable */\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1;\nvar Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n/* Return codes for the compression/decompression functions. Negative values\n* are errors, positive values are used for special but normal events.\n*/\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\nvar Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\n//export var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//export var Z_VERSION_ERROR = -6;\n\n/* compression levels */\nvar Z_NO_COMPRESSION = 0;\nvar Z_BEST_SPEED = 1;\nvar Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//export var Z_ASCII = 1; // = Z_TEXT (deprecated)\nvar Z_UNKNOWN = 2;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n//export var Z_NULL = null // Use -1 or null inline; depending on var type\n\n/* eslint-disable */\n\nfunction _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n}\n\n\n// reduce buffer size, avoiding mem copy\nfunction shrinkBuf(buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n}\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n },\n Buf8: function(size) {\n return new Uint8Array(size);\n },\n Buf16: function(size) {\n return new Uint16Array(size);\n },\n Buf32: function(size) {\n return new Int32Array(size);\n }\n};\n\nvar fnUntyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n return [].concat.apply([], chunks);\n },\n Buf8: function(size) {\n return new Array(size);\n },\n Buf16: function(size) {\n return new Array(size);\n },\n Buf32: function(size) {\n return new Array(size);\n }\n};\n\nlet typedOK = () => {\n const supported =\n (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\n typedOK = () => supported;\n return supported;\n};\n\nlet arraySet = (dest, src, src_offs, len, dest_offs) => {\n arraySet = typedOK() ?\n fnTyped.arraySet : fnUntyped.arraySet;\n\n return arraySet(dest, src, src_offs, len, dest_offs);\n};\n\nlet flattenChunks = (chunks) => {\n flattenChunks = typedOK() ?\n fnTyped.flattenChunks : fnUntyped.flattenChunks;\n\n return flattenChunks(chunks);\n};\n\nlet Buf8 = (size) => {\n Buf8 = typedOK() ? fnTyped.Buf8 : fnUntyped.Buf8;\n return Buf8(size);\n};\n\nlet Buf16 = (size) => {\n Buf16 = typedOK() ? fnTyped.Buf16 : fnUntyped.Buf16;\n return Buf16(size);\n};\n\nlet Buf32 = (size) => {\n Buf32 = typedOK() ? fnTyped.Buf32 : fnUntyped.Buf32;\n return Buf32(size);\n};\n\n/* eslint-disable */\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\nlet strApplyOK = function() {\n let result = true;\n try {\n String.fromCharCode.apply(null, [ 0 ]);\n } catch (_) {\n result = false;\n }\n\n strApplyOK = () => result;\n return result;\n};\n\nlet strApplyUintOK = function() {\n let result = true;\n try {\n String.fromCharCode.apply(null, new Uint8Array(1));\n } catch (_) {\n result = false;\n }\n\n strApplyUintOK = () => result;\n return result;\n};\n\nlet utf8len = function(c) {\n // Table with utf8 lengths (calculated by first byte of sequence)\n // Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n // because max possible codepoint is 0x10ffff\n var table = Buf8(256);\n for (var q = 0; q < 256; q++) {\n table[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n }\n table[254] = table[254] = 1; // Invalid sequence start\n\n utf8len = arg => table[arg];\n return table[c];\n};\n\n// convert string to array (typed, when possible)\nfunction string2buf(str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n}\n\n// Helper (used in 2 places)\nfunction _buf2binstring(buf, len) {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if ((buf.subarray && strApplyUintOK()) || (!buf.subarray && strApplyOK())) {\n return String.fromCharCode.apply(null, shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n for (var i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n}\n\n\n// Convert byte array to binary string\nfunction buf2binstring(buf) {\n return _buf2binstring(buf, buf.length);\n}\n\n\n// Convert binary string (typed, when possible)\nfunction binstring2buf(str) {\n var buf = new Uint8Array(str.length);\n for (var i = 0, len = buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n}\n\n\n// convert array to string\nfunction buf2string(buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n c_len = utf8len(c);\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return _buf2binstring(utf16buf, out);\n}\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nfunction utf8border(buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + utf8len(buf[pos]) > max) ? pos : max;\n}\n\n/* eslint-disable */\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n/* eslint-disable */\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\nlet crcTable = function() {\n const table = makeTable();\n crcTable = () => table;\n return table;\n};\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable(),\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n/* eslint-disable */\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nfunction inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n}\n\n/* eslint-disable */\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nfunction inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n}\n\n/* eslint-disable */\n\nvar CODES$1 = 0;\nvar LENS$1 = 1;\nvar DISTS$1 = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH$1 = 4;\nvar Z_BLOCK$1 = 5;\nvar Z_TREES$1 = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK$1 = 0;\nvar Z_STREAM_END$1 = 1;\nvar Z_NEED_DICT$1 = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR$1 = -2;\nvar Z_DATA_ERROR$1 = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR$1 = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED$1 = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD$1 = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS$1 = 852;\nvar ENOUGH_DISTS$1 = 592;\n\n\nfunction zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = Buf16(320); /* temporary storage for code lengths */\n this.work = Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = Buf32(ENOUGH_LENS$1);\n state.distcode = state.distdyn = Buf32(ENOUGH_DISTS$1);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = Buf32(512);\n distfix = Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS$1, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS$1, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE$1) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD$1;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED$1) {\n strm.msg = 'unknown compression method';\n state.mode = BAD$1;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD$1;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE$1;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED$1) {\n strm.msg = 'unknown compression method';\n state.mode = BAD$1;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD$1;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD$1;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE$1;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE$1;\n /* falls through */\n case TYPE$1:\n if (flush === Z_BLOCK$1 || flush === Z_TREES$1) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES$1) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD$1;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD$1;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES$1) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE$1;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD$1;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES$1, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD$1;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD$1;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD$1;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD$1) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD$1;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS$1, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD$1;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS$1, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD$1;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES$1) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE$1) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE$1;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD$1;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD$1;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD$1:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD$1 &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE$1 ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR$1;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var state;\n var dictid;\n var ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n}\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n\n/* eslint-disable */\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar msg = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n/* eslint-disable */\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\n/* eslint-disable */\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\n/* eslint-disable */\n\nvar toString = Object.prototype.toString;\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Inflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nclass Inflate {\n constructor(options) {\n if (!(this instanceof Inflate)) return new Inflate(options);\n\n this.options = assign({\n chunkSize: 16384,\n windowBits: 0,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new GZheader();\n\n inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n }\n }\n }\n\n /**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the decompression context.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\n push(data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var dictionary = this.options.dictionary;\n var status, _mode;\n var next_out_utf8, tail, utf8str;\n var dict;\n\n // Flag to properly process Z_BUF_ERROR on testing inflate call\n // when we check that all output data was flushed.\n var allowBufError = false;\n\n if (this.ended) { return false; }\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // Only binary strings can be decompressed on practice\n strm.input = binstring2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate(strm, Z_NO_FLUSH); /* no bad return value */\n\n if (status === Z_NEED_DICT && dictionary) {\n // Convert data if needed\n if (typeof dictionary === 'string') {\n dict = string2buf(dictionary);\n } else if (toString.call(dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(dictionary);\n } else {\n dict = dictionary;\n }\n\n status = inflateSetDictionary(this.strm, dict);\n\n }\n\n if (status === Z_BUF_ERROR && allowBufError === true) {\n status = Z_OK;\n allowBufError = false;\n }\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {\n\n if (this.options.to === 'string') {\n\n next_out_utf8 = utf8border(strm.output, strm.next_out);\n\n tail = strm.next_out - next_out_utf8;\n utf8str = buf2string(strm.output, next_out_utf8);\n\n // move tail\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) { arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n this.onData(utf8str);\n\n } else {\n this.onData(shrinkBuf(strm.output, strm.next_out));\n }\n }\n }\n\n // When no more input data, we should check that internal inflate buffers\n // are flushed. The only way to do it when avail_out = 0 - run one more\n // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.\n // Here we set flag to process this error properly.\n //\n // NOTE. Deflate does not return error in this case and does not needs such\n // logic.\n if (strm.avail_in === 0 && strm.avail_out === 0) {\n allowBufError = true;\n }\n\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n if (status === Z_STREAM_END) {\n _mode = Z_FINISH;\n }\n\n // Finalize on the last chunk.\n if (_mode === Z_FINISH) {\n status = inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === Z_SYNC_FLUSH) {\n this.onEnd(Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n }\n\n\n /**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\n onData(chunk) {\n this.chunks.push(chunk);\n }\n\n\n /**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\n onEnd(status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n // Glue & convert here, until we teach pako to send\n // utf8 aligned strings to onData\n this.result = this.chunks.join('');\n } else {\n this.result = flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n }\n}\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n * , output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err)\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n var inflator = new Inflate(options);\n\n inflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) { throw inflator.msg || msg[inflator.err]; }\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\nvar ungzip = inflate$1;\n\n/* eslint-disable */\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */\n [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];\n\nvar extra_dbits = /* extra bits for each distance code */\n [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];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree;\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree;\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code;\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code;\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length;\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist;\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s) {\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last) {\n //DeflateState *s;\n //charf *buf; /* input block */\n //ulg stored_len; /* length of input block */\n //int last; /* one if this is the last block for a file */\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last) {\n //DeflateState *s;\n //charf *buf; /* input block, or NULL if too old */\n //ulg stored_len; /* length of input block */\n //int last; /* one if this is the last block for a file */\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc) {\n // deflate_state *s;\n // unsigned dist; /* distance of matched string */\n // unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\n/* eslint-disable */\n\nvar MAX_MEM_LEVEL = 9;\n\n\nvar LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES$1 = 30;\n/* number of distance codes */\nvar BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\nvar MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH$1 = 3;\nvar MAX_MATCH$1 = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH$1 + MIN_MATCH$1 + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero$1(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only(s, last) {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n// put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH$1;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH$1 - (strend - scan);\n scan = strend - MAX_MATCH$1;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH$1) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH$1 - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH$1) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// var curr = s.strstart + s.lookahead;\n// var init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH$1) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH$1) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH$1);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH$1) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH$1 - 1)) ? s.strstart : MIN_MATCH$1 - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH$1) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH$1 - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH$1 && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH$1 - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH$1 && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH$1;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH$1);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH$1 - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH$1 - 1 ? s.strstart : MIN_MATCH$1 - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH$1) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH$1 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH$1 && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH$1;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH$1 - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH$1) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH$1);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nlet configurationTable = function() {\n const table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n \n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n ];\n\n configurationTable = () => table;\n return table;\n};\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero$1(s.head); // Fill with NIL (= 0);\n\n const table = configurationTable();\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = table[s.level].max_lazy;\n s.good_match = table[s.level].good_length;\n s.nice_match = table[s.level].nice_length;\n s.max_chain_length = table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH$1 - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = Buf16(HEAP_SIZE$1 * 2);\n this.dyn_dtree = Buf16((2 * D_CODES$1 + 1) * 2);\n this.bl_tree = Buf16((2 * BL_CODES$1 + 1) * 2);\n zero$1(this.dyn_ltree);\n zero$1(this.dyn_dtree);\n zero$1(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = Buf16(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = Buf16(2 * L_CODES$1 + 1); /* heap used to build the Huffman trees */\n zero$1(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = Buf16(2 * L_CODES$1 + 1); //uch depth[2*L_CODES+1];\n zero$1(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n _tr_init(s);\n return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH$1 - 1) / MIN_MATCH$1);\n\n s.window = Buf8(s.w_size * 2);\n s.head = Buf16(s.hash_size);\n s.prev = Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configurationTable()[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero$1(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n s = strm.state;\n wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero$1(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n tmpDict = Buf8(s.w_size);\n arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH$1) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH$1 - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH$1 - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH$1 - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH$1 - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n}\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n\n/* eslint-disable */\n\nvar toString$1 = Object.prototype.toString;\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array|Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Deflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nclass Deflate {\n constructor(options) {\n this.options = assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n var dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this._dict_set = true;\n }\n }\n\n /**\n * Deflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the compression context.\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * array format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\n push(data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n\n if (this.ended) { return false; }\n\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n status = deflate(strm, _mode); /* no bad return value */\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {\n if (this.options.to === 'string') {\n this.onData(buf2binstring(shrinkBuf(strm.output, strm.next_out)));\n } else {\n this.onData(shrinkBuf(strm.output, strm.next_out));\n }\n }\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n // Finalize on the last chunk.\n if (_mode === Z_FINISH) {\n status = deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === Z_SYNC_FLUSH) {\n this.onEnd(Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n }\n\n\n /**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\n onData(chunk) {\n this.chunks.push(chunk);\n }\n\n\n /**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\n onEnd(status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n }\n}\n\n\n/**\n * deflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , data = Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n var deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\nexport { Deflate, Inflate, Z_BEST_COMPRESSION, Z_BEST_SPEED, Z_BINARY, Z_BLOCK, Z_BUF_ERROR, Z_DATA_ERROR, Z_DEFAULT_COMPRESSION, Z_DEFAULT_STRATEGY, Z_DEFLATED, Z_ERRNO, Z_FILTERED, Z_FINISH, Z_FIXED, Z_FULL_FLUSH, Z_HUFFMAN_ONLY, Z_NEED_DICT, Z_NO_COMPRESSION, Z_NO_FLUSH, Z_OK, Z_PARTIAL_FLUSH, Z_RLE, Z_STREAM_END, Z_STREAM_ERROR, Z_SYNC_FLUSH, Z_TEXT, Z_TREES, Z_UNKNOWN, deflate$1 as deflate, deflateRaw, gzip, inflate$1 as inflate, inflateRaw, ungzip };\n","const proxy = (a, b) => (e) => b(a(e));\n\nconst bind = (el, event, callback) =>\n el.addEventListener && el.addEventListener(event, callback);\n\nconst unbind = (el, event, callback) =>\n el && el.removeEventListener && el.removeEventListener(event, callback);\n\nconst noop = () => { /* empty */ };\n\nconst preventDefault = e => e.preventDefault();\n\nconst touchRegExp = /touch/;\n\n// 300ms is the usual mouse interval;\n// // However, an underpowered mobile device under a heavy load may queue mouse events for a longer period.\nconst IGNORE_MOUSE_TIMEOUT = 2000;\n\nfunction normalizeEvent(e) {\n if (e.type.match(touchRegExp)) {\n return {\n pageX: e.changedTouches[0].pageX,\n pageY: e.changedTouches[0].pageY,\n clientX: e.changedTouches[0].clientX,\n clientY: e.changedTouches[0].clientY,\n type: e.type,\n originalEvent: e,\n isTouch: true\n };\n }\n\n return {\n pageX: e.pageX,\n pageY: e.pageY,\n clientX: e.clientX,\n clientY: e.clientY,\n offsetX: e.offsetX,\n offsetY: e.offsetY,\n type: e.type,\n ctrlKey: e.ctrlKey,\n shiftKey: e.shiftKey,\n altKey: e.altKey,\n originalEvent: e\n };\n}\n\nexport class Draggable {\n static supportPointerEvent() {\n return (typeof window !== 'undefined') && window.PointerEvent;\n }\n\n constructor({ press = noop, drag = noop, release = noop, mouseOnly = false }) {\n this._pressHandler = proxy(normalizeEvent, press);\n this._dragHandler = proxy(normalizeEvent, drag);\n this._releaseHandler = proxy(normalizeEvent, release);\n this._ignoreMouse = false;\n this._mouseOnly = mouseOnly;\n\n this._touchstart = (e) => {\n if (e.touches.length === 1) {\n this._pressHandler(e);\n }\n };\n\n this._touchmove = (e) => {\n if (e.touches.length === 1) {\n this._dragHandler(e);\n }\n };\n\n this._touchend = (e) => {\n // the last finger has been lifted, and the user is not doing gesture.\n // there might be a better way to handle this.\n if (e.touches.length === 0 && e.changedTouches.length === 1) {\n this._releaseHandler(e);\n this._ignoreMouse = true;\n setTimeout(this._restoreMouse, IGNORE_MOUSE_TIMEOUT);\n }\n };\n\n this._restoreMouse = () => {\n this._ignoreMouse = false;\n };\n\n this._mousedown = (e) => {\n const { which } = e;\n\n if ((which && which > 1) || this._ignoreMouse) {\n return;\n }\n\n bind(document, \"mousemove\", this._mousemove);\n bind(document, \"mouseup\", this._mouseup);\n this._pressHandler(e);\n };\n\n this._mousemove = (e) => {\n this._dragHandler(e);\n };\n\n this._mouseup = (e) => {\n unbind(document, \"mousemove\", this._mousemove);\n unbind(document, \"mouseup\", this._mouseup);\n this._releaseHandler(e);\n };\n\n this._pointerdown = (e) => {\n if (e.isPrimary && e.button === 0) {\n bind(document, \"pointermove\", this._pointermove);\n bind(document, \"pointerup\", this._pointerup);\n bind(document, \"pointercancel\", this._pointerup);\n bind(document, \"contextmenu\", preventDefault);\n\n this._pressHandler(e);\n }\n };\n\n this._pointermove = (e) => {\n if (e.isPrimary) {\n this._dragHandler(e);\n }\n };\n\n this._pointerup = (e) => {\n if (e.isPrimary) {\n unbind(document, \"pointermove\", this._pointermove);\n unbind(document, \"pointerup\", this._pointerup);\n unbind(document, \"pointercancel\", this._pointerup);\n unbind(document, \"contextmenu\", preventDefault);\n\n this._releaseHandler(e);\n }\n };\n }\n\n bindTo(element) {\n if (element === this._element) {\n return;\n }\n\n if (this._element) {\n this._unbindFromCurrent();\n }\n\n this._element = element;\n this._bindToCurrent();\n }\n\n _bindToCurrent() {\n const element = this._element;\n\n if (this._usePointers()) {\n bind(element, \"pointerdown\", this._pointerdown);\n return;\n }\n\n bind(element, \"mousedown\", this._mousedown);\n\n if (!this._mouseOnly) {\n bind(element, \"touchstart\", this._touchstart);\n bind(element, \"touchmove\", this._touchmove);\n bind(element, \"touchend\", this._touchend);\n }\n }\n\n _unbindFromCurrent() {\n const element = this._element;\n\n if (this._usePointers()) {\n unbind(element, \"pointerdown\", this._pointerdown);\n unbind(document, \"pointermove\", this._pointermove);\n unbind(document, \"pointerup\", this._pointerup);\n unbind(document, \"contextmenu\", preventDefault);\n unbind(document, \"pointercancel\", this._pointerup);\n return;\n }\n\n unbind(element, \"mousedown\", this._mousedown);\n\n if (!this._mouseOnly) {\n unbind(element, \"touchstart\", this._touchstart);\n unbind(element, \"touchmove\", this._touchmove);\n unbind(element, \"touchend\", this._touchend);\n }\n }\n\n _usePointers() {\n return !this._mouseOnly && Draggable.supportPointerEvent();\n }\n\n update({ press = noop, drag = noop, release = noop, mouseOnly = false }) {\n this._pressHandler = proxy(normalizeEvent, press);\n this._dragHandler = proxy(normalizeEvent, drag);\n this._releaseHandler = proxy(normalizeEvent, release);\n this._mouseOnly = mouseOnly;\n }\n\n destroy() {\n this._unbindFromCurrent();\n this._element = null;\n }\n}\n\n// Re-export as \"default\" field to address a bug\n// where the ES Module is imported by CommonJS code.\n//\n// See https://github.com/telerik/kendo-angular/issues/1314\nDraggable.default = Draggable;\n\n// Rollup won't output exports['default'] otherwise\nexport default Draggable;\n\n","import SliderUtil from './SliderUtil';\n\nclass SliderModel {\n constructor(props, wrapper, track) {\n this.props = props;\n this.wrapper = wrapper;\n this.track = track;\n this.tickSizes = this.getTickSizes();\n }\n\n getTickSizes() {\n const { max, min, smallStep } = this.props;\n const trackWidth = this.trackWidth();\n\n return SliderUtil.calculateTickSizes(trackWidth, min, max, smallStep);\n }\n\n trackWidth() {\n if (this.props.fixedTickWidth) {\n return SliderUtil.calculateFixedTrackSize(this.props);\n }\n\n return SliderUtil.calculateTrackSize(\n this.elementSize(this.wrapper),\n this.elementOffset(this.track),\n this.props.buttons\n );\n }\n\n resizeTrack() {\n const orientation = this.props.vertical ? 'height' : 'width';\n const trackWidth = this.trackWidth();\n\n this.track.style[orientation] = `${trackWidth}px`;\n }\n\n resizeTicks(ticksContainer, ticks) {\n const dimension = this.props.vertical ? \"height\" : \"width\";\n\n Array.prototype.slice.call(ticks).map((tick, index) => tick.style[dimension] = `${this.tickSizes[index]}px`);\n\n if (this.props.vertical) {\n this.adjustPadding(ticksContainer);\n }\n }\n\n resizeWrapper() {\n const dimension = this.props.vertical ? \"height\" : \"width\";\n const wrapperSize = this.elementSize(this.wrapper);\n const trackWidth = SliderUtil.calculateTrackSize(wrapperSize, this.elementOffset(this.track));\n const fixedTrackWidth = SliderUtil.calculateFixedTrackSize(this.props);\n\n if (trackWidth > fixedTrackWidth) {\n this.wrapper.parentElement.style[dimension] = `${ wrapperSize - (trackWidth - fixedTrackWidth)}px`;\n } else {\n this.wrapper.parentElement.style[dimension] = `${ wrapperSize + (fixedTrackWidth - trackWidth)}px`;\n }\n }\n\n positionHandle(dragHandle) {\n const { max, min, reverse, vertical } = this.props;\n const position = vertical ? 'bottom' : 'left';\n const trackWidth = this.trackWidth();\n const value = SliderUtil.trimValue(max, min, this.props.value);\n\n this.handlePosition = SliderUtil.calculateHandlePosition({\n min,\n max,\n reverse,\n value,\n trackWidth,\n handleWidth: dragHandle.offsetWidth\n });\n\n dragHandle.style[position] = `${this.handlePosition}px`;\n }\n\n positionSelection(dragHandle, selection) {\n const { reverse, vertical } = this.props;\n const dimension = vertical ? 'height' : 'width';\n const handleWidth = Math.floor(dragHandle.offsetWidth / 2);\n let size = this.handlePosition + handleWidth;\n\n if (reverse) {\n size = this.trackWidth() - size;\n }\n\n selection.style[dimension] = `${size}px`;\n }\n\n adjustPadding(ticksContainer) {\n const totalTickSize = this.tickSizes.reduce((prev, curr) => prev + curr, 0);\n const trackWidth = this.trackWidth();\n const reminder = trackWidth - totalTickSize;\n\n if (reminder !== 0) {\n const padding = reminder + this.elementOffset(this.track);\n ticksContainer.style.paddingTop = `${padding}px`;\n }\n }\n\n elementOffset(element) {\n const { vertical } = this.props;\n const style = getComputedStyle(element);\n\n return parseInt(vertical ? style.bottom : style.left, 10);\n }\n\n elementSize(element) {\n const { vertical } = this.props;\n\n return vertical ? element.clientHeight : element.clientWidth;\n }\n}\n\nexport default SliderModel;\n","const calculateFixedTrackSize = ({ max, min, smallStep, fixedTickWidth }) =>\n ((max - min) / smallStep) * fixedTickWidth;\n\nconst calculateTrackSize = (wrapperWidth, offset, showButtons = true) => {\n const BUTTONS_COUNT = 2;\n const trackOffset = showButtons ? parseFloat(offset, 10) * BUTTONS_COUNT : 0;\n const trackWidth = wrapperWidth - trackOffset;\n\n return trackWidth;\n};\n\nconst calculateTicksCount = (max = 0, min = 0, smallStep = 1) =>\n calculateAreasCount(max, min, smallStep) + 1;\n\nconst calculateAreasCount = (max = 0, min = 0, smallStep = 1) => {\n if (smallStep <= 0 ) {\n throw new Error(\"Invalid argument: smallStep must be a positive number\");\n }\n\n return Math.floor(Math.abs(min - max) / smallStep);\n};\n\nconst calculateValueFromTick = (index, { max, min, smallStep, reverse, vertical }) => {\n const value = min + (index * smallStep);\n\n return vertical || reverse ? Math.abs(value - max) : value;\n};\n\nconst calculateValueFromTrack = (clientRect, pageOffset, props) => {\n let length, wrapperOffset;\n\n if (props.vertical) {\n const { top, bottom } = clientRect;\n length = top - bottom;\n wrapperOffset = pageOffset.pageY - bottom;\n } else {\n const { left, right } = clientRect;\n length = right - left;\n wrapperOffset = pageOffset.pageX - left;\n }\n\n return valueFromTrack(props, wrapperOffset, length);\n};\n\nconst valueFromTrack = (props, wrapperOffset, length) => {\n const { max, min, reverse, smallStep } = props;\n const distance = max - min;\n const clickOffset = wrapperOffset / length;\n const maxTickValue = distance - (distance % smallStep);\n const maxOffset = (100 / distance) * maxTickValue / 100;\n const absValue = (wrapperOffset / length) * distance;\n let value = max;\n\n if (clickOffset < maxOffset) {\n value = reverse ? max - absValue : absValue + min;\n }\n\n return snapValue(extendProps(props, { value }));\n};\n\nconst calculateTickSizes = (trackSize, min, max, step) => {\n const elementCount = Math.floor((max - min) / step) + 1;\n const distStep = trackSize / (max - min);\n let result = [];\n let usedSpace = 0;\n let endPoint = 0;\n\n for (let i = 0; i < elementCount; i++) {\n if (i === 0 || i === elementCount - 1) {\n endPoint += (step / 2) * distStep;\n } else {\n endPoint += step * distStep;\n }\n\n const size = Math.round(endPoint - usedSpace);\n\n result.push(size);\n\n usedSpace += size;\n }\n\n return result;\n};\n\nconst calculateHandlePosition = ({ handleWidth, trackWidth, min, max, reverse, value }) => {\n const halfHandleWidth = Math.floor(handleWidth / 2);\n const step = trackWidth / Math.abs(max - min);\n let pos = step * (value - min);\n if (reverse) {\n pos = trackWidth - pos;\n }\n\n return Math.floor(pos - halfHandleWidth);\n};\n\nconst decreaseValueToStep = ({ max, min, smallStep, value }) => {\n let result;\n if (value % smallStep === 0) {\n result = value - smallStep;\n } else {\n result = value - (value % smallStep);\n }\n return trimValue(max, min, result);\n};\n\nconst increaseValueToStep = ({ max, min, smallStep, value }) => {\n const result = value - (value % smallStep) + smallStep;\n\n return trimValue(max, min, result);\n};\n\nconst snapValue = (props) => {\n const { smallStep, value } = props;\n const left = decreaseValueToStep(props);\n const right = increaseValueToStep(props);\n\n if (value % smallStep === 0) {\n return value;\n }\n\n if (right - value <= smallStep / 2) {\n return right;\n }\n\n return left;\n};\n\nconst trimValue = (max, min, value) => {\n if (value > max) {\n return max;\n }\n\n if (value < min) {\n return min;\n }\n\n return value;\n};\n\nconst identity = (value) => value;\n\nconst extendProps = (target, ...sources) => Object.assign({}, target, ...sources);\n\nexport default {\n calculateFixedTrackSize,\n calculateValueFromTick,\n calculateValueFromTrack,\n calculateTrackSize,\n calculateTicksCount,\n calculateTickSizes,\n calculateHandlePosition,\n decreaseValueToStep,\n identity,\n increaseValueToStep,\n trimValue,\n snapValue,\n valueFromTrack\n};\n","import Model from './SwitchModel';\n\nconst DEFAULT_THRESHOLD = 5;\n\nconst noop = () => { /*noop*/ };\n\nclass SwitchController {\n constructor(updateView = noop, onChange = noop) {\n this.handlePosition = 0;\n this.wrapperOffset = 0;\n this.handleOffset = 0;\n this.handleMargin = 4;\n\n this.updateView = updateView;\n this.onChange = onChange;\n\n this.change = (checked) => {\n this.checked = checked;\n\n this.updateView(this.updateModel(checked ? this.constrain : 0));\n\n this.onChange(checked);\n };\n\n this.limit = (value) => {\n if (value > this.constrain) {\n return this.constrain;\n }\n\n if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n this.addAnimation = (model) => {\n if (model.transition === true) {\n model.transition = 'all 200ms ease-out';\n } else {\n model.transition = 'none';\n }\n return model;\n };\n\n this.onPress = ({ pageX }) => {\n this.lastPressX = this.originalPressX = pageX;\n };\n\n this.onRelease = ({ pageX }) => {\n const delta = Math.abs(this.originalPressX - pageX);\n const snapPoint = this.constrain / 2;\n const checked = delta < DEFAULT_THRESHOLD ? !this.checked : this.handlePosition > snapPoint;\n\n this.change(checked);\n };\n\n this.onDrag = ({ pageX }) => {\n const { left, right } = this.coords;\n const overElement = pageX > left && pageX < right;\n\n if (overElement) {\n const delta = this.reverse ? this.lastPressX - pageX : pageX - this.lastPressX;\n const position = this.limit(this.handlePosition + delta);\n\n this.lastPressX = pageX;\n this.handlePosition = position;\n this.updateView(this.updateModel(this.handlePosition));\n }\n\n if (pageX > right) {\n this.updateView(this.updateModel(this.reverse ? 0 : this.constrain));\n }\n\n if (pageX < left) {\n this.updateView(this.updateModel(this.reverse ? this.constrain : 0));\n }\n };\n }\n\n get constrain() {\n return this.wrapperOffset - this.handleOffset - this.handleMargin;\n }\n\n updateState({ wrapperOffset, handleOffset, checked, animate = true, coords, handleMargin, reverse }) {\n this.wrapperOffset = wrapperOffset;\n this.handleOffset = handleOffset;\n this.coords = coords;\n this.handleMargin = handleMargin;\n\n this.checked = checked;\n this.reverse = reverse;\n\n this.updateView(this.updateModel(checked ? this.constrain : 0, animate));\n }\n\n updateModel(position, animate = true) {\n let pos = this.reverse ? this.wrapperOffset / 2 - position : position;\n return new Model(pos, animate);\n }\n}\n\nexport default SwitchController;\n","export default class Model {\n constructor(value = 0, animate) {\n this.handle = {\n transform: 'translateX(' + value + 'px)',\n transition: animate\n };\n }\n}\n","export { default as SliderModel } from './SliderModel';\nexport { default as SliderUtil } from './SliderUtil';\nexport { default as SwitchController } from './SwitchController';\n","export { default as load } from './cldr/load';\nexport { default as setData } from './cldr/set-data';\nexport { default as dateFieldName } from './cldr/date-field-name';\nexport { default as dateFormatNames } from './cldr/date-format-names';\nexport { cldr, localeInfo } from './cldr/info';\nexport { currencyDisplays, currencyDisplay, currencyFractionOptions, territoryCurrencyCode, localeCurrency } from './cldr/currency';\nexport { default as firstDay } from './cldr/first-day';\nexport { default as weekendRange } from './cldr/weekend-range';\nexport { default as numberSymbols } from './cldr/number-symbols';\n\n","\nexport const DAYS_OF_WEEK = [ \"sun\", \"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\" ];\n\nexport const DEFAULT_TERRITORY = '001';\n","import { cldr, getLocaleInfo } from './info';\nimport { errors } from '../errors';\nimport localeTerritory from './territory';\nimport parseRangeDate from './parse-range-date';\n\n/* eslint-disable consistent-return */\n\nconst {\n NoCurrency,\n NoCurrencyDisplay,\n NoSupplementalCurrency,\n NoCurrencyRegion,\n NoValidCurrency\n} = errors;\n\nconst DEFAULT_CURRENCY_FRACTIONS = 2;\nconst SYMBOL = \"symbol\";\nconst INVALID_CURRENCY_CODE = 'XXX';\n\nconst GLOBAL_CURRENCIES = {\n '001': 'USD', // 001 refers to world. not sure if it is correct to assume USD but seems better than throw an error\n '150': 'EUR' // 150 territory for Europe\n\n};\n\nfunction getCurrencyInfo(locale, currency, throwIfNoValid) {\n const info = getLocaleInfo(locale);\n const currencies = info.numbers.currencies;\n if (!currencies) {\n if (throwIfNoValid) {\n throw NoCurrency.error();\n }\n\n return;\n }\n\n const currencyDisplayInfo = currencies[currency];\n\n if (!currencyDisplayInfo) {\n if (throwIfNoValid) {\n throw NoCurrencyDisplay.error();\n }\n\n return;\n }\n\n return currencyDisplayInfo;\n}\n\nfunction lengthComparer(a, b) {\n return b.length - a.length;\n}\n\nfunction regionCurrency(regionCurrencies) {\n let latestValidUntil, latestValidUntilRange;\n let latestStillValid, latestStillValidDate;\n\n for (let idx = 0; idx < regionCurrencies.length; idx++) {\n const currency = regionCurrencies[idx];\n const code = Object.keys(currency)[0];\n const info = currency[code];\n if (code !== INVALID_CURRENCY_CODE && info._tender !== 'false' && info._from) {\n if (!info._to) {\n const stillValidDate = parseRangeDate(info._from);\n if (!latestStillValidDate || latestStillValidDate < stillValidDate) {\n latestStillValid = code;\n latestStillValidDate = stillValidDate;\n }\n } else if (!latestStillValid) {\n const validFrom = parseRangeDate(info._from);\n const validTo = parseRangeDate(info._to);\n if (!latestValidUntilRange || latestValidUntilRange.to < validTo || latestValidUntilRange.from < validFrom) {\n latestValidUntil = code;\n latestValidUntilRange = {\n from: validFrom,\n to: validTo\n };\n }\n }\n }\n }\n\n return latestStillValid || latestValidUntil;\n}\n\nexport function currencyDisplays(locale, currency, throwIfNoValid = true) {\n const currencyInfo = getCurrencyInfo(locale, currency, throwIfNoValid);\n if (!currencyInfo) {\n return;\n }\n\n if (!currencyInfo.displays) {\n const displays = [ currency ];\n for (let field in currencyInfo) {\n displays.push(currencyInfo[field]);\n }\n displays.sort(lengthComparer);\n currencyInfo.displays = displays;\n }\n\n return currencyInfo.displays;\n}\n\nexport function currencyDisplay(locale, options) {\n const { value, currency, currencyDisplay = SYMBOL } = options;\n\n if (currencyDisplay === \"code\") {\n return currency;\n }\n\n const currencyInfo = getCurrencyInfo(locale, currency, true);\n let result;\n\n if (currencyDisplay === SYMBOL) {\n result = currencyInfo[\"symbol-alt-narrow\"] || currencyInfo[SYMBOL];\n } else {\n if (typeof value === undefined || value !== 1) {\n result = currencyInfo[\"displayName-count-other\"];\n } else {\n result = currencyInfo[\"displayName-count-one\"];\n }\n }\n\n return result;\n}\n\nexport function currencyFractionOptions(code) {\n let minimumFractionDigits = DEFAULT_CURRENCY_FRACTIONS;\n let maximumFractionDigits = DEFAULT_CURRENCY_FRACTIONS;\n\n const fractions = ((cldr.supplemental.currencyData || {}).fractions || {})[code];\n\n if (fractions && fractions._digits) {\n maximumFractionDigits = minimumFractionDigits = parseInt(fractions._digits, 10);\n }\n\n return {\n minimumFractionDigits: minimumFractionDigits,\n maximumFractionDigits: maximumFractionDigits\n };\n}\n\nexport function territoryCurrencyCode(territory, throwIfNoValid = true) {\n if (GLOBAL_CURRENCIES[territory]) {\n return GLOBAL_CURRENCIES[territory];\n }\n\n const currencyData = cldr.supplemental.currencyData;\n if (!currencyData) {\n if (throwIfNoValid) {\n throw NoSupplementalCurrency.error();\n }\n\n return;\n }\n\n const regionCurrencies = currencyData.region[territory];\n\n if (!regionCurrencies) {\n if (throwIfNoValid) {\n throw NoCurrencyRegion.error(territory);\n }\n\n return;\n }\n\n const currencyCode = regionCurrency(regionCurrencies);\n\n return currencyCode;\n}\n\nexport function localeCurrency(locale, throwIfNoValid) {\n const info = getLocaleInfo(locale);\n const numbers = info.numbers;\n\n if (!numbers.localeCurrency) {\n const currency = territoryCurrencyCode(localeTerritory(info), throwIfNoValid);\n\n if (!currency && throwIfNoValid) {\n throw NoValidCurrency.error(info.name);\n }\n\n numbers.localeCurrency = currency;\n }\n\n return numbers.localeCurrency;\n}\n","import { localeInfo } from './info';\nimport { errors } from '../errors';\nimport { DEFAULT_LOCALE } from '../common/constants';\n\nexport default function dateFieldName(options, locale = DEFAULT_LOCALE) {\n const info = localeInfo(locale);\n const dateFields = info.calendar.dateFields;\n if (!dateFields) {\n throw errors.NoDateFieldNames.error();\n }\n\n const fieldNameInfo = dateFields[options.type] || {};\n\n return fieldNameInfo[options.nameType] || fieldNameInfo['wide'];\n}\n","import { getLocaleInfo } from './info';\nimport { EMPTY } from '../common/constants';\n\nfunction lowerArray(arr) {\n const result = [];\n for (let idx = 0; idx < arr.length; idx++) {\n result.push(arr[idx].toLowerCase());\n }\n return result;\n}\n\nfunction lowerObject(obj) {\n const result = {};\n for (let field in obj) {\n result[field] = obj[field].toLowerCase();\n }\n return result;\n}\n\nfunction cloneLower(obj) {\n let result = Array.isArray(obj) ? lowerArray(obj) : lowerObject(obj);\n return result;\n}\n\nexport default function dateFormatNames(locale, options) {\n const { type, nameType, standAlone, lower } = options;\n const info = getLocaleInfo(locale);\n const formatType = standAlone ? \"stand-alone\" : \"format\";\n const lowerNameType = (lower ? \"lower-\" : EMPTY) + nameType;\n const formatNames = info.calendar[type][formatType];\n let result = formatNames[lowerNameType];\n if (!result && lower) {\n result = formatNames[lowerNameType] = cloneLower(formatNames[nameType]);\n }\n return result;\n}","const defaultData = {\n en: {\n name: \"en\",\n identity: {\n version: {\n _number: \"$Revision: 12418 $\",\n _cldrVersion: \"29\"\n },\n language: \"en\"\n },\n territory: \"US\",\n numbers: {\n symbols: {\n decimal: \".\",\n group: \",\",\n list: \";\",\n percentSign: \"%\",\n plusSign: \"+\",\n minusSign: \"-\",\n exponential: \"E\",\n superscriptingExponent: \"×\",\n perMille: \"‰\",\n infinity: \"∞\",\n nan: \"NaN\",\n timeSeparator: \":\"\n },\n decimal: {\n patterns: [\n \"n\"\n ],\n groupSize: [\n 3\n ]\n },\n scientific: {\n patterns: [\n \"nEn\"\n ],\n groupSize: []\n },\n percent: {\n patterns: [\n \"n%\"\n ],\n groupSize: [\n 3\n ]\n },\n currency: {\n patterns: [\n \"$n\"\n ],\n groupSize: [\n 3\n ],\n \"unitPattern-count-one\": \"n $\",\n \"unitPattern-count-other\": \"n $\"\n },\n currencies: {\n BGN: {\n displayName: \"Bulgarian Lev\",\n \"displayName-count-one\": \"Bulgarian lev\",\n \"displayName-count-other\": \"Bulgarian leva\",\n symbol: \"BGN\"\n },\n EUR: {\n displayName: \"Euro\",\n \"displayName-count-one\": \"euro\",\n \"displayName-count-other\": \"euros\",\n symbol: \"€\",\n \"symbol-alt-narrow\": \"€\"\n },\n USD: {\n displayName: \"US Dollar\",\n \"displayName-count-one\": \"US dollar\",\n \"displayName-count-other\": \"US dollars\",\n symbol: \"$\",\n \"symbol-alt-narrow\": \"$\"\n }\n },\n localeCurrency: \"USD\",\n accounting: {\n patterns: [\n \"$n\",\n \"($n)\"\n ],\n groupSize: [\n 3\n ]\n }\n },\n calendar: {\n gmtFormat: \"GMT{0}\",\n gmtZeroFormat: \"GMT\",\n patterns: {\n d: \"M/d/y\",\n D: \"EEEE, MMMM d, y\",\n m: \"MMM d\",\n M: \"MMMM d\",\n y: \"MMM y\",\n Y: \"MMMM y\",\n F: \"EEEE, MMMM d, y h:mm:ss a\",\n g: \"M/d/y h:mm a\",\n G: \"M/d/y h:mm:ss a\",\n t: \"h:mm a\",\n T: \"h:mm:ss a\",\n s: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\n u: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\"\n },\n dateTimeFormats: {\n full: \"{1} 'at' {0}\",\n long: \"{1} 'at' {0}\",\n medium: \"{1}, {0}\",\n short: \"{1}, {0}\",\n availableFormats: {\n Bh: \"h B\",\n Bhm: \"h:mm B\",\n Bhms: \"h:mm:ss B\",\n d: \"d\",\n E: \"ccc\",\n EBhm: \"E h:mm B\",\n EBhms: \"E h:mm:ss B\",\n Ed: \"d E\",\n Ehm: \"E h:mm a\",\n EHm: \"E HH:mm\",\n Ehms: \"E h:mm:ss a\",\n EHms: \"E HH:mm:ss\",\n Gy: \"y G\",\n GyMMM: \"MMM y G\",\n GyMMMd: \"MMM d, y G\",\n GyMMMEd: \"E, MMM d, y G\",\n h: \"h a\",\n H: \"HH\",\n hm: \"h:mm a\",\n Hm: \"HH:mm\",\n hms: \"h:mm:ss a\",\n Hms: \"HH:mm:ss\",\n hmsv: \"h:mm:ss a v\",\n Hmsv: \"HH:mm:ss v\",\n hmv: \"h:mm a v\",\n Hmv: \"HH:mm v\",\n M: \"L\",\n Md: \"M/d\",\n MEd: \"E, M/d\",\n MMM: \"LLL\",\n MMMd: \"MMM d\",\n MMMEd: \"E, MMM d\",\n MMMMd: \"MMMM d\",\n \"MMMMW-count-one\": \"'week' W 'of' MMMM\",\n \"MMMMW-count-other\": \"'week' W 'of' MMMM\",\n ms: \"mm:ss\",\n y: \"y\",\n yM: \"M/y\",\n yMd: \"M/d/y\",\n yMEd: \"E, M/d/y\",\n yMMM: \"MMM y\",\n yMMMd: \"MMM d, y\",\n yMMMEd: \"E, MMM d, y\",\n yMMMM: \"MMMM y\",\n yQQQ: \"QQQ y\",\n yQQQQ: \"QQQQ y\",\n \"yw-count-one\": \"'week' w 'of' Y\",\n \"yw-count-other\": \"'week' w 'of' Y\"\n }\n },\n timeFormats: {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\"\n },\n dateFormats: {\n full: \"EEEE, MMMM d, y\",\n long: \"MMMM d, y\",\n medium: \"MMM d, y\",\n short: \"M/d/yy\"\n },\n days: {\n format: {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n }\n },\n months: {\n format: {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\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 },\n \"stand-alone\": {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\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 }\n },\n quarters: {\n format: {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n }\n },\n dayPeriods: {\n format: {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n narrow: {\n midnight: \"mi\",\n am: \"a\",\n \"am-alt-variant\": \"am\",\n noon: \"n\",\n pm: \"p\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n }\n },\n \"stand-alone\": {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n narrow: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n }\n }\n },\n eras: {\n format: {\n wide: {\n \"0\": \"Before Christ\",\n \"1\": \"Anno Domini\",\n \"0-alt-variant\": \"Before Common Era\",\n \"1-alt-variant\": \"Common Era\"\n },\n abbreviated: {\n \"0\": \"BC\",\n \"1\": \"AD\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n },\n narrow: {\n \"0\": \"B\",\n \"1\": \"A\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n }\n }\n },\n dateFields: {\n era: {\n wide: \"era\"\n },\n year: {\n wide: \"year\",\n short: \"yr.\",\n narrow: \"yr.\"\n },\n quarter: {\n wide: \"quarter\",\n short: \"qtr.\",\n narrow: \"qtr.\"\n },\n month: {\n wide: \"month\",\n short: \"mo.\",\n narrow: \"mo.\"\n },\n week: {\n wide: \"week\",\n short: \"wk.\",\n narrow: \"wk.\"\n },\n day: {\n wide: \"day\",\n short: \"day\",\n narrow: \"day\"\n },\n weekday: {\n wide: \"day of the week\"\n },\n dayperiod: {\n wide: \"AM/PM\"\n },\n hour: {\n wide: \"hour\",\n short: \"hr.\",\n narrow: \"hr.\"\n },\n minute: {\n wide: \"minute\",\n short: \"min.\",\n narrow: \"min.\"\n },\n second: {\n wide: \"second\",\n short: \"sec.\",\n narrow: \"sec.\"\n },\n zone: {\n wide: \"time zone\"\n }\n }\n }\n },\n supplemental: {\n likelySubtags: {\n en: \"en-Latn-US\"\n },\n currencyData: {\n region: {\n US: [\n {\n USD: {\n _from: \"1792-01-01\"\n }\n }\n ]\n }\n },\n weekData: {\n firstDay: {\n US: \"sun\"\n },\n weekendStart: {\n \"001\": \"sat\"\n },\n weekendEnd: {\n \"001\": \"sun\"\n }\n }\n }\n};\nexport default defaultData;","import { cldr, getLocaleInfo } from './info';\nimport localeTerritory from './territory';\n\nimport { DAYS_OF_WEEK, DEFAULT_TERRITORY } from './constants';\nimport { errors } from '../errors';\n\nconst { NoWeekData, NoFirstDay } = errors;\n\nexport default function firstDay(locale) {\n const info = getLocaleInfo(locale);\n\n if (!isNaN(info.firstDay)) {\n return info.firstDay;\n }\n\n const weekData = cldr.supplemental.weekData;\n if (!weekData) {\n throw NoWeekData.error();\n }\n\n const firstDay = weekData.firstDay[localeTerritory(info)] || weekData.firstDay[DEFAULT_TERRITORY];\n\n if (!firstDay) {\n throw NoFirstDay.error();\n }\n\n info.firstDay = DAYS_OF_WEEK.indexOf(firstDay);\n\n return info.firstDay;\n}\n","import defaultData from './default-data';\nimport isString from '../common/is-string';\nimport { errors } from '../errors';\n\nfunction availableLocaleInfo(fullName, suffixes) {\n const parts = fullName.split(\"-\");\n const language = parts[0];\n const script = parts[1];\n const territory = parts[2];\n\n return cldr[fullName] || (suffixes.indexOf(territory) !== -1 && cldr[language + \"-\" + territory]) || (suffixes.indexOf(script) !== -1 && cldr[language + \"-\" + script]) || cldr[language];\n}\n\nfunction localeFullName(language, suffixes) {\n const likelySubtags = cldr.supplemental.likelySubtags;\n\n for (let idx = 0; idx < suffixes.length; idx++) {\n let name = likelySubtags[language + \"-\" + suffixes[idx ]];\n if (name) {\n return name;\n }\n }\n\n if (likelySubtags[language]) {\n return likelySubtags[language];\n }\n}\n\nexport const cldr = defaultData;\n\nexport function getLocaleInfo(locale) {\n let info;\n if (isString(locale)) {\n info = localeInfo(locale);\n } else {\n info = locale;\n }\n return info;\n}\n\nexport function localeInfo(locale) {\n if (cldr[locale]) {\n return cldr[locale];\n }\n\n const likelySubtags = cldr.supplemental.likelySubtags;\n if (likelySubtags) {\n const parts = locale.split(\"-\");\n const language = parts[0];\n const suffixes = parts.slice(1);\n const fullName = localeFullName(language, suffixes);\n const info = fullName ? availableLocaleInfo(fullName, suffixes) : null;\n if (info) {\n return info;\n }\n }\n\n throw errors.NoLocale.error(locale);\n}\n","import { cldr } from './info';\n\nconst predefinedDatePatterns = {\n s: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\n u: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\"\n};\n\nconst YEAR_REGEX = /y+/g;\nconst SHORT_DATE = [ [ \"dateFormats\", \"short\" ] ];\n\nconst datePatterns = {\n D: [ [ \"dateFormats\", \"full\" ] ],\n m: [ [ \"dateTimeFormats\", \"availableFormats\", \"MMMd\" ] ],\n M: [ [ \"dateTimeFormats\", \"availableFormats\", \"MMMMd\" ] ],\n y: [ [ \"dateTimeFormats\", \"availableFormats\", \"yMMM\" ] ],\n Y: [ [ \"dateTimeFormats\", \"availableFormats\", \"yMMMM\" ] ],\n F: [ [ \"dateFormats\", \"full\" ], [ \"timeFormats\", \"medium\" ] ],\n g: [ [ \"dateTimeFormats\", \"availableFormats\", \"yMd\" ], [ \"timeFormats\", \"short\" ] ],\n G: [ [ \"dateTimeFormats\", \"availableFormats\", \"yMd\" ], [ \"timeFormats\", \"medium\" ] ],\n t: [ [ \"timeFormats\", \"short\" ] ],\n T: [ [ \"timeFormats\", \"medium\" ] ]\n};\n\nfunction toArray(obj) {\n let result = [];\n let names = Object.getOwnPropertyNames(obj);\n for (let idx = 0; idx < names.length; idx++) {\n let value = obj[names[idx]];\n result.push(value);\n }\n return result;\n}\n\nfunction getCalendarNames(info, isObj) {\n const result = {};\n for (let formatType in info) {\n let names = result[formatType] = {};\n for (let format in info[formatType]) {\n let formats = info[formatType][format];\n names[format] = isObj ? formats : toArray(formats);\n }\n }\n return result;\n}\n\nfunction getEraNames(eras) {\n const result = {};\n const format = result.format = {};\n const eraNameMap = {\n eraAbbr: \"abbreviated\",\n eraNames: \"wide\",\n eraNarrow: \"narrow\"\n };\n\n for (let eraFormatName in eras) {\n let formatName = eraNameMap[eraFormatName];\n format[formatName] = eras[eraFormatName];\n }\n\n return result;\n}\n\nfunction loadCalendarNames(locale, calendar) {\n const localeCalendar = cldr[locale].calendar;\n localeCalendar.days = getCalendarNames(calendar.days);\n localeCalendar.months = getCalendarNames(calendar.months);\n localeCalendar.quarters = getCalendarNames(calendar.quarters);\n localeCalendar.dayPeriods = getCalendarNames(calendar.dayPeriods, true);\n\n localeCalendar.eras = getEraNames(calendar.eras);\n}\n\nfunction loadCalendarDateFields(locale, fields) {\n const localeCalendar = cldr[locale].calendar;\n const dateFields = {};\n\n for (let field in fields) {\n const [ fieldName, formatType = 'wide' ] = field.split('-');\n const fieldInfo = dateFields[fieldName] || {};\n const displayName = fields[field].displayName;\n\n if (!displayName) { continue; }\n\n fieldInfo[formatType] = displayName;\n dateFields[fieldName] = fieldInfo;\n }\n\n localeCalendar.dateFields = dateFields;\n}\n\nfunction getPredefinedFormat(paths, calendar) {\n const result = [];\n\n for (let pathIdx = 0; pathIdx < paths.length; pathIdx++) {\n let fields = paths[ pathIdx ];\n let pattern = calendar;\n for (let idx = 0; idx < fields.length; idx++) {\n pattern = pattern[fields[idx]];\n }\n result.push(pattern);\n }\n\n return result.join(\" \");\n}\n\nfunction loadCalendarPatterns(locale, calendar) {\n const cldrCalendar = cldr[locale].calendar;\n const patterns = cldrCalendar.patterns = {};\n\n patterns.d = getPredefinedFormat(SHORT_DATE, calendar).replace(YEAR_REGEX, 'y');\n\n for (let pattern in datePatterns) {\n patterns[pattern] = getPredefinedFormat(datePatterns[pattern], calendar);\n }\n\n for (let pattern in predefinedDatePatterns) {\n patterns[pattern] = predefinedDatePatterns[pattern];\n }\n\n const dateTimeFormats = calendar.dateTimeFormats;\n cldrCalendar.dateTimeFormats = {\n full: dateTimeFormats.full,\n long: dateTimeFormats.long,\n medium: dateTimeFormats.medium,\n short: dateTimeFormats.short,\n availableFormats: dateTimeFormats.availableFormats\n };\n cldrCalendar.timeFormats = calendar.timeFormats;\n cldrCalendar.dateFormats = calendar.dateFormats;\n}\n\n\nexport default function loadCalendarInfo(locale, info) {\n const calendar = cldr[locale].calendar = cldr[locale].calendar || {};\n for (let field in info) {\n if (field === \"timeZoneNames\") {\n calendar.gmtFormat = info[field].gmtFormat;\n calendar.gmtZeroFormat = info[field].gmtZeroFormat;\n } else if (field === \"calendars\" && info[field].gregorian) {\n loadCalendarPatterns(locale, info[field].gregorian);\n loadCalendarNames(locale, info[field].gregorian);\n } else if (field === \"fields\") {\n loadCalendarDateFields(locale, info.fields);\n }\n }\n}\n","import { cldr } from './info';\nimport { CURRENCY, ACCOUNTING, DECIMAL, CURRENCY_PLACEHOLDER, NUMBER_PLACEHOLDER, LIST_SEPARATOR, GROUP_SEPARATOR, POINT } from '../common/constants';\n\nconst LATIN_NUMBER_FORMATS = \"Formats-numberSystem-latn\";\nconst LATIN_NUMBER_SYMBOLS = \"symbols-numberSystem-latn\";\n\nconst patternRegExp = /([#,0.]+)/g;\nconst cldrCurrencyRegExp = /¤/g;\n\nfunction getPatterns(pattern) {\n patternRegExp.lastIndex = 0;\n\n return pattern.replace(cldrCurrencyRegExp, CURRENCY_PLACEHOLDER).replace(patternRegExp, NUMBER_PLACEHOLDER).split(LIST_SEPARATOR);\n}\n\nfunction getGroupSize(pattern) {\n patternRegExp.lastIndex = 0;\n\n const numberPatterns = patternRegExp.exec(pattern.split(LIST_SEPARATOR)[0])[0].split(POINT);\n const integer = numberPatterns[0];\n\n const groupSize = integer.split(GROUP_SEPARATOR).slice(1).map(function(group) {\n return group.length;\n }).reverse();\n\n return groupSize;\n}\n\nfunction loadCurrencyUnitPatterns(currencyInfo, currencyFormats) {\n for (let field in currencyFormats) {\n if (field.startsWith(\"unitPattern\")) {\n currencyInfo[field] = currencyFormats[field].replace(\"{0}\", NUMBER_PLACEHOLDER).replace(\"{1}\", CURRENCY_PLACEHOLDER);\n }\n }\n}\n\nexport default function loadNumbersInfo(locale, info) {\n const localeInfo = cldr[locale];\n const numbers = localeInfo.numbers = localeInfo.numbers || {};\n numbers.symbols = numbers.symbols || {};\n for (let field in info) {\n if (field === LATIN_NUMBER_SYMBOLS) {\n Object.assign(numbers.symbols, info[field]);\n } else if (field.includes(LATIN_NUMBER_FORMATS)) {\n const style = field.substr(0, field.indexOf(LATIN_NUMBER_FORMATS));\n const pattern = info[field].standard;\n numbers[style] = {\n patterns: getPatterns(pattern)\n };\n if (style === CURRENCY) {\n numbers[style].groupSize = getGroupSize((info[DECIMAL + LATIN_NUMBER_FORMATS] || info[field]).standard);\n loadCurrencyUnitPatterns(numbers[style], info[field]);\n numbers[ACCOUNTING] = {\n patterns: getPatterns(info[field][ACCOUNTING]),\n groupSize: numbers[style].groupSize\n };\n } else {\n numbers[style].groupSize = getGroupSize(pattern);\n }\n } else if (field === \"currencies\") {\n numbers.currencies = info[field];\n }\n }\n}","import { cldr } from './info';\nimport loadNumbersInfo from './load-numbers';\nimport loadCalendarInfo from './load-dates';\nimport localeTerritory from './territory';\n\nfunction loadLocale(locale, info) {\n for (let field in info) {\n if (field === \"numbers\") {\n loadNumbersInfo(locale, info[field]);\n } else if (field === \"dates\") {\n loadCalendarInfo(locale, info[field]);\n }\n }\n}\n\nexport default function load() {\n const length = arguments.length;\n for (let idx = 0; idx < length; idx++) {\n let entry = arguments[idx];\n if (entry.main) {\n let locale = Object.keys(entry.main)[0];\n let info = entry.main[locale];\n let localeInfo = cldr[locale] = cldr[locale] || {};\n\n localeInfo.name = localeInfo.name || locale;\n localeInfo.identity = localeInfo.identity || info.identity;\n\n localeTerritory(localeInfo);\n loadLocale(locale, info);\n } else if (entry.supplemental) {\n if (entry.supplemental.weekData) {\n cldr.supplemental.weekData = {\n firstDay: entry.supplemental.weekData.firstDay,\n weekendStart: entry.supplemental.weekData.weekendStart,\n weekendEnd: entry.supplemental.weekData.weekendEnd\n };\n } else if (entry.supplemental.likelySubtags) {\n cldr.supplemental.likelySubtags = Object.assign(cldr.supplemental.likelySubtags, entry.supplemental.likelySubtags);\n } else if (entry.supplemental.currencyData) {\n const currencyData = cldr.supplemental.currencyData;\n currencyData.region = Object.assign(currencyData.region || {}, entry.supplemental.currencyData.region);\n currencyData.fractions = Object.assign(currencyData.fractions || {}, entry.supplemental.currencyData.fractions);\n }\n }\n }\n}\n","import { getLocaleInfo } from './info';\n\nexport default function numberSymbols(locale) {\n const info = getLocaleInfo(locale);\n\n return info.numbers.symbols;\n}","export default function parseRangeDate(value) {\n const parts = value.split('-');\n const year = parseInt(parts[0], 10);\n const month = parseInt(parts[1], 10) - 1;\n const day = parseInt(parts[2], 10);\n\n return new Date(year, month, day);\n}\n","import { cldr } from './info';\n\nexport default function setData(data) {\n const locale = data.name;\n const info = cldr[locale] = cldr[locale] || {};\n const supplemental = cldr.supplemental = cldr.supplemental || {};\n\n if (data.likelySubtags) {\n supplemental.likelySubtags = Object.assign(supplemental.likelySubtags || {}, data.likelySubtags);\n }\n\n if (data.currencyData) {\n supplemental.currencyData = supplemental.currencyData || {};\n supplemental.currencyData.fractions = Object.assign(supplemental.currencyData.fractions || {}, data.currencyData);\n }\n\n const numbers = info.numbers;\n\n Object.assign(info, data);\n\n if (numbers && data.numbers) {\n info.numbers = Object.assign({}, numbers, data.numbers);\n }\n}","import { cldr } from './info';\n\nfunction territoryFromName(name, identity) {\n const likelySubtags = cldr.supplemental.likelySubtags;\n let parts = name.split(\"-\");\n if (likelySubtags) {\n const likelyName = likelySubtags[name] || likelySubtags[parts[0]];\n if (likelyName) {\n parts = likelyName.split(\"-\");\n }\n }\n\n if (identity) {\n for (let idx = parts.length - 1; idx >= 1; idx--) {\n const part = parts[idx];\n if (part === identity.variant || part === identity.script) {\n parts.splice(idx, 1);\n }\n }\n }\n\n const length = parts.length;\n\n if (length > 1) {\n const territory = parts[length - 1];\n return territory.toUpperCase();\n }\n}\n\nexport default function localeTerritory(info) {\n if (info.territory) {\n return info.territory;\n }\n\n const name = info.name;\n const identity = info.identity;\n let territory;\n\n if (identity && identity.territory) {\n territory = identity.territory;\n } else {\n territory = territoryFromName(name, identity);\n }\n\n info.territory = territory;\n\n return territory;\n}\n","import { cldr, getLocaleInfo } from './info';\nimport localeTerritory from './territory';\n\nimport { DAYS_OF_WEEK, DEFAULT_TERRITORY } from './constants';\nimport { errors } from '../errors';\n\nconst { NoWeekData } = errors;\n\nexport default function weekendRange(locale) {\n const info = getLocaleInfo(locale);\n\n if (info.weekendRange) {\n return info.weekendRange;\n }\n\n const weekData = cldr.supplemental.weekData;\n if (!weekData) {\n throw NoWeekData.error();\n }\n\n const territory = localeTerritory(info);\n const start = weekData.weekendStart[territory] || weekData.weekendStart[DEFAULT_TERRITORY];\n const end = weekData.weekendEnd[territory] || weekData.weekendEnd[DEFAULT_TERRITORY];\n\n info.weekendRange = {\n start: DAYS_OF_WEEK.indexOf(start),\n end: DAYS_OF_WEEK.indexOf(end)\n };\n\n return info.weekendRange;\n}\n","export const DECIMAL = \"decimal\";\nexport const CURRENCY = \"currency\";\nexport const ACCOUNTING = \"accounting\";\nexport const PERCENT = \"percent\";\nexport const SCIENTIFIC = \"scientific\";\n\nexport const CURRENCY_PLACEHOLDER = \"$\";\nexport const PERCENT_PLACEHOLDER = \"%\";\nexport const NUMBER_PLACEHOLDER = \"n\";\n\nexport const LIST_SEPARATOR = \";\";\nexport const GROUP_SEPARATOR = \",\";\n\nexport const POINT = \".\";\nexport const EMPTY = \"\";\n\nexport const DEFAULT_LOCALE = \"en\";\n\n","const formatRegExp = /\\{(\\d+)}/g;\n\nexport default function formatString(format) {\n const values = arguments;\n\n return format.replace(formatRegExp, (match, index) => {\n const value = values[parseInt(index, 10) + 1];\n\n return value;\n });\n}","function isFunction(fun) {\n return typeof(fun) === 'function';\n}\n\nexport default function isDate(value) {\n return Boolean(value) && isFunction(value.getTime) && isFunction(value.getMonth);\n}\n","export default function isNegativeZero(value) {\n return (1 / value === -Infinity);\n}\n","export default function isNumber(value) {\n return typeof value === \"number\";\n}","export default function isString(value) {\n return typeof value === \"string\";\n}","export default function pad(number, digits = 2, right = false) {\n const count = digits - String(number).length;\n let result = number;\n\n if (count > 0) {\n const padString = new Array(count + 1).join(\"0\");\n result = right ? number + padString : padString + number;\n }\n\n return result;\n}","const MAX_PRECISION = 20;\n\nexport default function round(value, precision) {\n let result = value;\n let decimals = precision || 0;\n\n result = result.toString().split('e');\n result = Math.round(Number(result[0] + 'e' + (result[1] ? (Number(result[1]) + decimals) : decimals)));\n\n result = result.toString().split('e');\n result = Number(result[0] + 'e' + (result[1] ? (Number(result[1]) - decimals) : -decimals));\n\n return result.toFixed(Math.min(decimals, MAX_PRECISION));\n}","export { default as formatDate } from './dates/format-date';\nexport { default as parseDate } from './dates/parse-date';\nexport { default as splitDateFormat } from './dates/split-date-format';\n","const MONTH = 'month';\nconst HOUR = 'hour';\nconst ZONE = 'zone';\nconst WEEKDAY = 'weekday';\nconst QUARTER = 'quarter';\n\nconst DATE_FIELD_MAP = {\n 'G': 'era',\n 'y': 'year',\n 'q': QUARTER,\n 'Q': QUARTER,\n 'M': MONTH,\n 'L': MONTH,\n 'd': 'day',\n 'E': WEEKDAY,\n 'c': WEEKDAY,\n 'e': WEEKDAY,\n 'h': HOUR,\n 'H': HOUR,\n 'k': HOUR,\n 'K': HOUR,\n 'm': 'minute',\n 's': 'second',\n 'a': 'dayperiod',\n 'x': ZONE,\n 'X': ZONE,\n 'z': ZONE,\n 'Z': ZONE\n};\n\nconst dateFormatRegExp = /d{1,2}|E{1,6}|e{1,6}|c{3,6}|c{1}|M{1,5}|L{1,5}|y{1,4}|H{1,2}|h{1,2}|k{1,2}|K{1,2}|m{1,2}|a{1,5}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|x{1,5}|X{1,5}|G{1,5}|q{1,5}|Q{1,5}|\"[^\"]*\"|'[^']*'/g;\n\nexport { dateFormatRegExp, DATE_FIELD_MAP };","export default function dateNameType(formatLength) {\n let nameType;\n if (formatLength <= 3) {\n nameType = \"abbreviated\";\n } else if (formatLength === 4) {\n nameType = \"wide\";\n } else if (formatLength === 5) {\n nameType = \"narrow\";\n } else if (formatLength === 6) {\n nameType = \"short\";\n }\n\n return nameType;\n}","import formatString from '../common/format-string';\nimport isString from '../common/is-string';\nimport { EMPTY } from '../common/constants';\n\nconst REMOVAL_PENALTY = 120;\nconst ADDITION_PENALTY = 20;\nconst LENGHT_DELTA = [ 2, 1, 5, 3, 4 ];\nconst LONG_LESS_PENALTY_DELTA = -2;\nconst SHORT_LESS_PENALTY_DELTA = -1;\nconst SHORT_MORE_PENALTY_DELTA = 1;\nconst LONG_MORE_PENALTY_DELTA = 2;\n\nconst PENALTIES = {\n [LONG_LESS_PENALTY_DELTA.toString()]: 8,\n [SHORT_LESS_PENALTY_DELTA.toString()]: 6,\n [LONG_MORE_PENALTY_DELTA.toString()]: 6,\n [SHORT_MORE_PENALTY_DELTA.toString()]: 3\n};\n\nconst VALUE_FORMAT_LENGTH = {\n numeric: 1,\n \"2-digit\": 2,\n short: 3,\n long: 4,\n narrow: 5\n};\n\nconst TIME_SPECIFIERS_REGEX = /[hHmsSzZoOvVxX]/;\n\nfunction getHourSpecifier(options) {\n return options.hour12 ? \"h\" : \"H\";\n}\n\nconst DATE_OPTIONS_MAP = [ {\n key: \"era\",\n specifier: \"G\"\n}, {\n key: \"year\",\n specifier: \"y\"\n}, {\n key: \"month\",\n specifier: \"M\"\n}, {\n key: \"day\",\n specifier: \"d\"\n}, {\n key: \"weekday\",\n specifier: \"E\"\n}, {\n key: \"hour\",\n getSpecifier: getHourSpecifier\n}, {\n key: \"minute\",\n specifier: \"m\"\n}, {\n key: \"second\",\n specifier: \"s\"\n}, {\n key: \"timeZoneName\",\n specifier: \"z\"\n} ];\n\nconst STAND_ALONE_SPECIFIERS = {\n e: 'c',\n E: 'c',\n M: 'L',\n Q: 'q'\n};\n\nconst specifiersRegex = {};\nconst resolvedFormats = {};\n\nfunction getSpecifierRegex(specifier) {\n if (!specifiersRegex[specifier]) {\n specifiersRegex[specifier] = new RegExp(specifier + \"+\");\n }\n return specifiersRegex[specifier];\n}\n\nfunction skeletonSpecifiers(skeleton) {\n const result = [];\n let current = skeleton.charAt(0);\n let specifier = current;\n for (let idx = 1; idx < skeleton.length; idx++) {\n let character = skeleton.charAt(idx);\n if (character === specifier) {\n current += character;\n } else {\n result.push(current);\n current = specifier = character;\n }\n }\n\n result.push(current);\n\n return result;\n}\n\nfunction findBestMatch(specifiers, availableFormats) {\n const specifiersLength = specifiers.length;\n let maxScore = -Number.MAX_VALUE;\n let bestMatches, result;\n for (let format in availableFormats) {\n const matches = [];\n let currentFormat = format.replace(\"v\", \"z\");\n let score = 0;\n for (let idx = 0; idx < specifiersLength; idx++) {\n const specifier = specifiers[idx];\n let specifierRegex = getSpecifierRegex(specifier[0]);\n let match = (specifierRegex.exec(currentFormat) || [])[0];\n\n if (!match) {\n score -= REMOVAL_PENALTY;\n } else {\n currentFormat = currentFormat.replace(match, EMPTY);\n if (match.length !== specifier.length) {\n let delta = Math.max(Math.min(LENGHT_DELTA[match.length] - LENGHT_DELTA[specifier.length], 2), -2);\n score -= PENALTIES[delta];\n }\n }\n\n matches.push(match);\n\n if (score < maxScore) {\n break;\n }\n }\n\n if (currentFormat.length) {\n score -= skeletonSpecifiers(currentFormat).length * ADDITION_PENALTY;\n }\n\n if (score > maxScore) {\n maxScore = score;\n bestMatches = matches;\n result = availableFormats[format];\n }\n }\n\n result = result.replace(\"v\", \"z\");\n\n for (let idx = 0; idx < specifiersLength; idx++) {\n const bestMatch = bestMatches[idx];\n if (bestMatch && bestMatch !== specifiers[idx]) {\n const matchSpecifier = bestMatches[idx][0];\n result = result.replace(getSpecifierRegex(matchSpecifier), specifiers[idx]);\n if (STAND_ALONE_SPECIFIERS[matchSpecifier]) {\n result = result.replace(getSpecifierRegex(STAND_ALONE_SPECIFIERS[matchSpecifier]), specifiers[idx]);\n }\n }\n }\n\n return result;\n}\n\nfunction cacheFormat(skeleton, format, locale) {\n if (!resolvedFormats[locale]) {\n resolvedFormats[locale] = {};\n }\n resolvedFormats[locale][skeleton] = format;\n}\n\n\nfunction skeletonFormat(skeleton, info) {\n const availableFormats = info.calendar.dateTimeFormats.availableFormats;\n if (availableFormats[skeleton]) {\n return availableFormats[skeleton];\n }\n if (resolvedFormats[info.name] && resolvedFormats[info.name][skeleton]) {\n return resolvedFormats[info.name][skeleton];\n }\n const timeStartIndex = skeleton.search(TIME_SPECIFIERS_REGEX);\n let result;\n if (timeStartIndex > 0) {\n const dateSkeleton = skeleton.substr(0, timeStartIndex);\n const timeSkeleton = skeleton.substr(timeStartIndex);\n\n result = formatString(info.calendar.dateTimeFormats.short, //should be deterimed based on specifiers\n availableFormats[timeSkeleton] || findBestMatch(skeletonSpecifiers(timeSkeleton), availableFormats),\n availableFormats[dateSkeleton] || findBestMatch(skeletonSpecifiers(dateSkeleton), availableFormats));\n } else {\n result = findBestMatch(skeletonSpecifiers(skeleton), availableFormats);\n }\n\n cacheFormat(skeleton, result, info.name);\n return result;\n}\n\nfunction skeletonFromOptions(options) {\n let result = [];\n for (let idx = 0; idx < DATE_OPTIONS_MAP.length; idx++) {\n let option = DATE_OPTIONS_MAP[idx];\n let field = option.key;\n let value = options[field];\n if (value) {\n let spcifier = option.specifier || option.getSpecifier(options);\n result.push(spcifier.repeat(VALUE_FORMAT_LENGTH[value]));\n }\n }\n\n return result.join(EMPTY);\n}\n\nexport default function datePattern(format, info) {\n const calendar = info.calendar;\n let result;\n if (isString(format)) {\n if (calendar.patterns[format]) {\n result = calendar.patterns[format];\n } else {\n result = format;\n }\n } else if (format) {\n if (format.pattern) {\n return format.pattern;\n }\n\n let skeleton = format.skeleton;\n if (!skeleton) {\n if (format.datetime) {\n result = formatString(calendar.dateTimeFormats[format.datetime], calendar.timeFormats[format.datetime], calendar.dateFormats[format.datetime]);\n } else if (format.date) {\n result = calendar.dateFormats[format.date];\n } else if (format.time) {\n result = calendar.timeFormats[format.time];\n } else {\n skeleton = skeletonFromOptions(format);\n }\n }\n\n if (skeleton) {\n result = skeletonFormat(skeleton, info);\n }\n }\n\n if (!result) {\n result = calendar.patterns.d;\n }\n\n return result;\n}\n","import { localeInfo, firstDay } from '../cldr';\nimport { DEFAULT_LOCALE, EMPTY } from '../common/constants';\nimport formatString from '../common/format-string';\nimport datePattern from './date-pattern';\nimport formatNames from './format-names';\nimport pad from '../common/pad';\nimport isDate from '../common/is-date';\nimport { dateFormatRegExp } from './constants';\n\nfunction formatDayOfWeekIndex(day, formatLength, localeInfo) {\n const firstDayIndex = firstDay(localeInfo);\n let dayIndex;\n if (day < firstDayIndex) {\n dayIndex = 7 - firstDayIndex + day;\n } else {\n dayIndex = day - firstDayIndex;\n }\n\n return dayIndex + 1;\n}\n\nfunction formatMonth(month, formatLength, info, standAlone) {\n if (formatLength <= 2) {\n return pad(month + 1, formatLength);\n }\n return formatNames(info, \"months\", formatLength, standAlone)[month];\n}\n\nfunction formatQuarter(date, formatLength, info, standAlone) {\n const quarter = Math.floor(date.getMonth() / 3);\n if (formatLength < 3) {\n return quarter + 1;\n }\n\n return formatNames(info, \"quarters\", formatLength, standAlone)[quarter];\n}\n\n\nfunction formatTimeZone(date, info, options) {\n const { shortHours, optionalMinutes, separator, localizedName, zZeroOffset } = options;\n const offset = date.getTimezoneOffset() / 60;\n if (offset === 0 && zZeroOffset) {\n return \"Z\";\n }\n const sign = offset <= 0 ? \"+\" : \"-\";\n const hoursMinutes = Math.abs(offset).toString().split(\".\");\n const minutes = hoursMinutes[1] || 0;\n let result = sign + (shortHours ? hoursMinutes[0] : pad(hoursMinutes[0], 2));\n if (minutes || !optionalMinutes) {\n result += (separator ? \":\" : EMPTY) + pad(minutes, 2);\n }\n\n if (localizedName) {\n const localizedFormat = offset === 0 ? info.calendar.gmtZeroFormat : info.calendar.gmtFormat;\n result = formatString(localizedFormat, result);\n }\n\n return result;\n}\n\nfunction formatDayOfWeek(date, formatLength, info, standAlone) {\n let result;\n if (formatLength < 3) {\n result = formatDayOfWeekIndex(date.getDay(), formatLength, info);\n } else {\n result = formatNames(info, \"days\", formatLength, standAlone)[date.getDay()];\n }\n return result;\n}\n\nconst formatters = {};\n\nformatters.d = function(date, formatLength) {\n return pad(date.getDate(), formatLength);\n};\n\nformatters.E = function(date, formatLength, info) {\n return formatNames(info, \"days\", formatLength)[date.getDay()];\n};\n\nformatters.M = function(date, formatLength, info) {\n return formatMonth(date.getMonth(), formatLength, info, false);\n};\n\nformatters.L = function(date, formatLength, info) {\n return formatMonth(date.getMonth(), formatLength, info, true);\n};\n\nformatters.y = function(date, formatLength) {\n let year = date.getFullYear();\n if (formatLength === 2) {\n year = year % 100;\n }\n return pad(year, formatLength);\n};\n\nformatters.h = function(date, formatLength) {\n const hours = date.getHours() % 12 || 12;\n return pad(hours, formatLength);\n};\n\nformatters.H = function(date, formatLength) {\n return pad(date.getHours(), formatLength);\n};\n\nformatters.k = function(date, formatLength) {\n return pad(date.getHours() || 24, formatLength);\n};\n\nformatters.K = function(date, formatLength) {\n return pad(date.getHours() % 12, formatLength);\n};\n\nformatters.m = function(date, formatLength) {\n return pad(date.getMinutes(), formatLength);\n};\n\nformatters.s = function(date, formatLength) {\n return pad(date.getSeconds(), formatLength);\n};\n\nformatters.S = function(date, formatLength) {\n const milliseconds = date.getMilliseconds();\n let result;\n if (milliseconds !== 0) {\n result = String(date.getMilliseconds() / 1000).split(\".\")[1].substr(0, formatLength);\n } else {\n result = pad(EMPTY, formatLength);\n }\n return result;\n};\n\nformatters.a = function(date, formatLength, info) {\n return formatNames(info, \"dayPeriods\", formatLength)[date.getHours() < 12 ? \"am\" : \"pm\"];\n};\n\nformatters.z = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n shortHours: formatLength < 4,\n optionalMinutes: formatLength < 4,\n separator: true,\n localizedName: true\n });\n};\n\nformatters.Z = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n separator: formatLength > 3,\n localizedName: formatLength === 4,\n zZeroOffset: formatLength === 5\n });\n};\n\nformatters.x = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n optionalMinutes: formatLength === 1,\n separator: formatLength === 3 || formatLength === 5\n });\n};\n\nformatters.X = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n optionalMinutes: formatLength === 1,\n separator: formatLength === 3 || formatLength === 5,\n zZeroOffset: true\n });\n};\n\nformatters.G = function(date, formatLength, info) {\n let era = date.getFullYear() >= 0 ? 1 : 0;\n return formatNames(info, \"eras\", formatLength)[era];\n};\n\nformatters.e = formatDayOfWeek;\n\nformatters.c = function(date, formatLength, info) {\n return formatDayOfWeek(date, formatLength, info, true);\n};\n\nformatters.q = function(date, formatLength, info) {\n return formatQuarter(date, formatLength, info, true);\n};\n\nformatters.Q = formatQuarter;\n\nexport default function formatDate(date, format, locale = DEFAULT_LOCALE) {\n if (!isDate(date)) {\n if (date === undefined || date === null) {\n return EMPTY;\n }\n return date;\n }\n\n const info = localeInfo(locale);\n const pattern = datePattern(format, info);\n\n return pattern.replace(dateFormatRegExp, function(match) {\n let formatLength = match.length;\n let result;\n\n if (match.includes(\"'\") || match.includes(\"\\\"\")) {\n result = match.slice(1, formatLength - 1);\n } else {\n result = formatters[match[0]](date, formatLength, info);\n }\n\n return result;\n });\n}\n","import dateFormatNames from '../cldr/date-format-names';\nimport dateNameType from './date-name-type';\n\nexport default function formatNames(locale, type, formatLength, standAlone, lower) {\n return dateFormatNames(locale, {\n type: type,\n nameType: dateNameType(formatLength),\n standAlone: standAlone,\n lower: lower\n });\n}","import { adjustDST, convertTimeZone } from './time-utils';\nimport { localeInfo } from '../cldr';\nimport { DEFAULT_LOCALE, EMPTY } from '../common/constants';\nimport { errors } from '../errors';\nimport formatNames from './format-names';\nimport datePattern from './date-pattern';\nimport round from '../common/round';\nimport isDate from '../common/is-date';\n\nconst timeZoneOffsetRegExp = /([+|\\-]\\d{1,2})(:?)(\\d{2})?/;\nconst dateRegExp = /^\\/Date\\((.*?)\\)\\/$/;\nconst offsetRegExp = /[+-]\\d*/;\nconst numberRegExp = {\n 2: /^\\d{1,2}/,\n 3: /^\\d{1,3}/,\n 4: /^\\d{4}/\n};\nconst numberRegex = /\\d+/;\nconst PLACEHOLDER = \"{0}\";\n\nconst leadingSpacesRegex = /^ */;\nconst trailingSpacesRegex = / *$/;\n\nconst standardDateFormats = [\n \"yyyy/MM/dd HH:mm:ss\",\n \"yyyy/MM/dd HH:mm\",\n \"yyyy/MM/dd\",\n \"E MMM dd yyyy HH:mm:ss\",\n \"yyyy-MM-ddTHH:mm:ss.SSSSSSSXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSSXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSXXX\",\n \"yyyy-MM-ddTHH:mm:ssXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSSSSSS\",\n \"yyyy-MM-ddTHH:mm:ss.SSS\",\n \"yyyy-MM-ddTHH:mmXXX\",\n \"yyyy-MM-ddTHH:mmX\",\n \"yyyy-MM-ddTHH:mm:ss\",\n \"yyyy-MM-ddTHH:mm\",\n \"yyyy-MM-dd HH:mm:ss\",\n \"yyyy-MM-dd HH:mm\",\n \"yyyy-MM-dd\",\n \"HH:mm:ss\",\n \"HH:mm\"\n];\nconst FORMATS_SEQUENCE = [ \"G\", \"g\", \"F\", \"Y\", \"y\", \"M\", \"m\", \"D\", \"d\", \"y\", \"T\", \"t\" ];\nconst TWO_DIGIT_YEAR_MAX = 2029;\n\nfunction outOfRange(value, start, end) {\n return !(value >= start && value <= end);\n}\n\nfunction lookAhead(match, state) {\n let { format, idx } = state;\n let i = 0;\n while (format[idx] === match) {\n i++;\n idx++;\n }\n if (i > 0) {\n idx -= 1;\n }\n state.idx = idx;\n return i;\n}\n\nfunction getNumber(size, state) {\n let regex = size ? (numberRegExp[size] || new RegExp('^\\\\d{1,' + size + '}')) : numberRegex,\n match = state.value.substr(state.valueIdx, size).match(regex);\n\n if (match) {\n match = match[0];\n state.valueIdx += match.length;\n return parseInt(match, 10);\n }\n return null;\n}\n\nfunction getIndexByName(names, state, lower) {\n let i = 0,\n length = names.length,\n name, nameLength,\n matchLength = 0,\n matchIdx = 0,\n subValue;\n\n for (; i < length; i++) {\n name = names[i];\n nameLength = name.length;\n subValue = state.value.substr(state.valueIdx, nameLength);\n\n if (lower) {\n subValue = subValue.toLowerCase();\n }\n\n if (subValue === name && nameLength > matchLength) {\n matchLength = nameLength;\n matchIdx = i;\n }\n }\n\n if (matchLength) {\n state.valueIdx += matchLength;\n return matchIdx + 1;\n }\n\n return null;\n}\n\nfunction checkLiteral(state) {\n let result = false;\n if (state.value.charAt(state.valueIdx) === state.format[state.idx]) {\n state.valueIdx++;\n result = true;\n }\n return result;\n}\n\nfunction calendarGmtFormats(calendar) {\n const { gmtFormat, gmtZeroFormat } = calendar;\n if (!gmtFormat) {\n throw errors.NoGMTInfo.error();\n }\n\n return [ gmtFormat.replace(PLACEHOLDER, EMPTY).toLowerCase(), gmtZeroFormat.replace(PLACEHOLDER, EMPTY).toLowerCase() ];\n}\n\nfunction parseTimeZoneOffset(state, info, options) {\n const { shortHours, noSeparator, optionalMinutes, localizedName, zLiteral } = options;\n state.UTC = true;\n\n if (zLiteral && state.value.charAt(state.valueIdx) === \"Z\") {\n state.valueIdx++;\n return false;\n }\n\n if (localizedName && !getIndexByName(calendarGmtFormats(info.calendar), state, true)) {\n return true;\n }\n\n const matches = timeZoneOffsetRegExp.exec(state.value.substr(state.valueIdx, 6));\n if (!matches) {\n return !localizedName;\n }\n\n const hoursMatch = matches[1];\n const minutesMatch = matches[3];\n const hoursOffset = parseInt(hoursMatch, 10);\n const separator = matches[2];\n let minutesOffset = parseInt(minutesMatch, 10);\n\n if (isNaN(hoursOffset) || (!shortHours && hoursMatch.length !== 3) || (!optionalMinutes && isNaN(minutesOffset)) || (noSeparator && separator)) {\n return true;\n }\n\n if (isNaN(minutesOffset)) {\n minutesOffset = null;\n }\n\n if (outOfRange(hoursOffset, -12, 13) || (minutesOffset && outOfRange(minutesOffset, 0, 59))) {\n return true;\n }\n\n state.valueIdx += matches[0].length;\n state.hoursOffset = hoursOffset;\n state.minutesOffset = minutesOffset;\n}\n\nfunction parseMonth(ch, state, info) {\n const count = lookAhead(ch, state);\n const names = formatNames(info, \"months\", count, ch === \"L\", true);\n\n const month = count < 3 ? getNumber(2, state) : getIndexByName(names, state, true);\n\n if (month === null || outOfRange(month, 1, 12)) {\n return true;\n }\n state.month = month - 1;\n}\n\nfunction parseDayOfWeek(ch, state, info) {\n const count = lookAhead(ch, state);\n const names = formatNames(info, \"days\", count, ch === \"c\", true);\n let dayOfWeek = count < 3 ? getNumber(1, state) : getIndexByName(names, state, true);\n if ((!dayOfWeek && dayOfWeek !== 0) || outOfRange(dayOfWeek, 1, 7)) {\n return true;\n }\n}\n\nconst parsers = {};\n\nparsers.d = function(state) {\n lookAhead(\"d\", state);\n const day = getNumber(2, state);\n\n if (day === null || outOfRange(day, 1, 31)) {\n return true;\n }\n\n if (state.day === null) {\n state.day = day;\n }\n};\n\nparsers.E = function(state, info) {\n const count = lookAhead(\"E\", state);\n //validate if it matches the day?\n let dayOfWeek = getIndexByName(formatNames(info, \"days\", count, false, true), state, true);\n if (dayOfWeek === null) {\n return true;\n }\n};\n\nparsers.M = function(state, info) {\n return parseMonth(\"M\", state, info);\n};\n\nparsers.L = function(state, info) {\n return parseMonth(\"L\", state, info);\n};\n\nparsers.y = function(state) {\n const count = lookAhead(\"y\", state);\n let year = getNumber(count === 1 ? undefined : count, state);\n\n if (year === null) {\n return true;\n }\n\n if (count === 2) {\n const currentYear = new Date().getFullYear();\n year = (currentYear - currentYear % 100) + year;\n if (year > TWO_DIGIT_YEAR_MAX) {\n year -= 100;\n }\n }\n\n state.year = year;\n};\n\nparsers.h = function(state) {\n lookAhead(\"h\", state);\n\n let hours = getNumber(2, state);\n if (hours === 12) {\n hours = 0;\n }\n\n if (hours === null || outOfRange(hours, 0, 11)) {\n return true;\n }\n\n state.hours = hours;\n};\n\nparsers.K = function(state) {\n lookAhead(\"K\", state);\n\n let hours = getNumber(2, state);\n\n if (hours === null || outOfRange(hours, 0, 11)) {\n return true;\n }\n\n state.hours = hours;\n};\n\nparsers.a = function(state, info) {\n const count = lookAhead(\"a\", state);\n let periodFormats = formatNames(info, \"dayPeriods\", count, false, true);\n\n const pmHour = getIndexByName([ periodFormats.pm ], state, true);\n if (!pmHour && !getIndexByName([ periodFormats.am ], state, true)) {\n return true;\n }\n\n state.pmHour = pmHour;\n};\n\nparsers.H = function(state) {\n lookAhead(\"H\", state);\n const hours = getNumber(2, state);\n if (hours === null || outOfRange(hours, 0, 23)) {\n return true;\n }\n state.hours = hours;\n};\n\nparsers.k = function(state) {\n lookAhead(\"k\", state);\n\n let hours = getNumber(2, state);\n\n if (hours === null || outOfRange(hours, 1, 24)) {\n return true;\n }\n\n state.hours = hours === 24 ? 0 : hours;\n};\n\nparsers.m = function(state) {\n lookAhead(\"m\", state);\n const minutes = getNumber(2, state);\n\n if (minutes === null || outOfRange(minutes, 0, 59)) {\n return true;\n }\n\n state.minutes = minutes;\n};\n\nparsers.s = function(state) {\n lookAhead(\"s\", state);\n const seconds = getNumber(2, state);\n if (seconds === null || outOfRange(seconds, 0, 59)) {\n return true;\n }\n state.seconds = seconds;\n};\n\nparsers.S = function(state) {\n const count = lookAhead(\"S\", state);\n const match = state.value.substr(state.valueIdx, count);\n let milliseconds = null;\n\n if (!isNaN(parseInt(match, 10))) {\n milliseconds = parseFloat(\"0.\" + match, 10);\n milliseconds = round(milliseconds, 3);\n milliseconds *= 1000;\n state.valueIdx += count;\n }\n\n if (milliseconds === null || outOfRange(milliseconds, 0, 999)) {\n return true;\n }\n\n state.milliseconds = milliseconds;\n};\n\nparsers.z = function(state, info) {\n const count = lookAhead(\"z\", state);\n\n const shortFormat = count < 4;\n\n const invalid = parseTimeZoneOffset(state, info, {\n shortHours: shortFormat,\n optionalMinutes: shortFormat,\n localizedName: true\n });\n\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.Z = function(state, info) {\n const count = lookAhead(\"Z\", state);\n\n const invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count < 4,\n zLiteral: count === 5,\n localizedName: count === 4\n });\n\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.x = function(state, info) {\n const count = lookAhead(\"x\", state);\n\n const invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count !== 3 && count !== 5,\n optionalMinutes: count === 1\n });\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.X = function(state, info) {\n const count = lookAhead(\"X\", state);\n\n const invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count !== 3 && count !== 5,\n optionalMinutes: count === 1,\n zLiteral: true\n });\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.G = function(state, info) {\n const count = lookAhead(\"G\", state);\n const eras = formatNames(info, \"eras\", count, false, true);\n const era = getIndexByName([ eras[0], eras[1] ], state, true);\n\n if (era === null) {\n return true;\n }\n};\n\nparsers.e = function(state, info) {\n return parseDayOfWeek(\"e\", state, info);\n};\n\nparsers.c = function(state, info) {\n return parseDayOfWeek(\"c\", state, info);\n};\n\nfunction createDate(state) {\n let { year, month, day, hours, minutes, seconds, milliseconds, pmHour, UTC, hoursOffset, minutesOffset } = state;\n const hasTime = hours !== null || minutes !== null || seconds || null;\n const date = new Date();\n let result;\n\n if (year === null && month === null && day === null && hasTime) {\n year = date.getFullYear();\n month = date.getMonth();\n day = date.getDate();\n } else {\n if (year === null) {\n year = date.getFullYear();\n }\n\n if (day === null) {\n day = 1;\n }\n }\n\n if (pmHour && hours < 12) {\n hours += 12;\n }\n\n if (UTC) {\n if (hoursOffset) {\n hours += -hoursOffset;\n }\n\n if (minutesOffset) {\n minutes += -minutesOffset * (hoursOffset < 0 ? -1 : 1);\n }\n\n result = new Date(Date.UTC(year, month, day, hours, minutes, seconds, milliseconds));\n } else {\n result = new Date(year, month, day, hours, minutes, seconds, milliseconds);\n adjustDST(result, hours);\n }\n\n if (year < 100) {\n result.setFullYear(year);\n }\n\n if (result.getDate() !== day && UTC === undefined) {\n return null;\n }\n\n return result;\n}\n\nfunction addFormatSpaces(value, format) {\n const leadingSpaces = leadingSpacesRegex.exec(format)[0];\n const trailingSpaces = trailingSpacesRegex.exec(format)[0];\n\n return `${ leadingSpaces }${ value }${ trailingSpaces }`;\n}\n\nfunction parseExact(value, format, info) {\n let pattern = datePattern(format, info).split(EMPTY);\n\n const state = {\n format: pattern,\n idx: 0,\n value: addFormatSpaces(value, format),\n valueIdx: 0,\n year: null,\n month: null,\n day: null,\n hours: null,\n minutes: null,\n seconds: null,\n milliseconds: null\n };\n const length = pattern.length;\n let literal = false;\n\n for (; state.idx < length; state.idx++) {\n let ch = pattern[state.idx];\n\n if (literal) {\n if (ch === \"'\") {\n literal = false;\n }\n\n checkLiteral(state);\n } else {\n if (parsers[ch]) {\n let invalid = parsers[ch](state, info);\n if (invalid) {\n return null;\n }\n } else if (ch === \"'\") {\n literal = true;\n checkLiteral(state);\n } else if (!checkLiteral(state)) {\n return null;\n }\n }\n }\n\n if (state.valueIdx < value.length) {\n return null;\n }\n\n return createDate(state) || null;\n}\n\nfunction parseMicrosoftDateOffset(offset) {\n const sign = offset.substr(0, 1) === \"-\" ? -1 : 1;\n\n let result = offset.substring(1);\n result = (parseInt(result.substr(0, 2), 10) * 60) + parseInt(result.substring(2), 10);\n\n return sign * result;\n}\n\nfunction parseMicrosoftDateFormat(value) {\n if (value && value.indexOf(\"/D\") === 0) {\n let date = dateRegExp.exec(value);\n if (date) {\n date = date[1];\n let tzoffset = offsetRegExp.exec(date.substring(1));\n\n date = new Date(parseInt(date, 10));\n\n if (tzoffset) {\n tzoffset = parseMicrosoftDateOffset(tzoffset[0]);\n date = convertTimeZone(date, date.getTimezoneOffset(), 0);\n date = convertTimeZone(date, 0, -1 * tzoffset);\n }\n\n return date;\n }\n }\n}\n\nfunction defaultFormats(calendar) {\n const formats = [];\n const patterns = calendar.patterns;\n const length = FORMATS_SEQUENCE.length;\n\n for (let idx = 0; idx < length; idx++) {\n formats.push(patterns[FORMATS_SEQUENCE[idx]]);\n }\n\n return formats.concat(standardDateFormats);\n}\n\nexport default function parseDate(value, formats, locale = DEFAULT_LOCALE) {\n if (!value) {\n return null;\n }\n\n if (isDate(value)) {\n return value;\n }\n\n let parseValue = String(value).trim();\n let date = parseMicrosoftDateFormat(parseValue);\n if (date) {\n return date;\n }\n\n const info = localeInfo(locale);\n let parseFormats = formats || defaultFormats(info.calendar);\n parseFormats = Array.isArray(parseFormats) ? parseFormats : [ parseFormats ];\n\n const length = parseFormats.length;\n\n for (let idx = 0; idx < length; idx++) {\n date = parseExact(parseValue, parseFormats[idx], info);\n if (date) {\n return date;\n }\n }\n\n return date;\n}\n","import { DEFAULT_LOCALE } from '../common/constants';\nimport isNumber from '../common/is-number';\nimport datePattern from './date-pattern';\nimport dateNameType from './date-name-type';\nimport { dateFormatRegExp, DATE_FIELD_MAP } from './constants';\nimport { localeInfo } from '../cldr';\n\nconst NAME_TYPES = {\n month: {\n type: 'months',\n minLength: 3,\n standAlone: 'L'\n },\n\n quarter: {\n type: 'quarters',\n minLength: 3,\n standAlone: 'q'\n },\n\n weekday: {\n type: 'days',\n minLength: {\n E: 0,\n c: 3,\n e: 3\n },\n standAlone: 'c'\n },\n\n dayperiod: {\n type: 'dayPeriods',\n minLength: 0\n },\n\n era: {\n type: 'eras',\n minLength: 0\n }\n};\n\nconst LITERAL = 'literal';\n\nfunction addLiteral(parts, value) {\n const lastPart = parts[parts.length - 1];\n if (lastPart && lastPart.type === LITERAL) {\n lastPart.pattern += value;\n } else {\n parts.push({\n type: LITERAL,\n pattern: value\n });\n }\n}\n\nfunction isHour12(pattern) {\n return pattern === 'h' || pattern === 'K';\n}\n\nexport default function splitDateFormat(format, locale = DEFAULT_LOCALE) {\n const info = localeInfo(locale);\n const pattern = datePattern(format, info);\n const parts = [];\n let lastIndex = dateFormatRegExp.lastIndex = 0;\n let match = dateFormatRegExp.exec(pattern);\n\n while (match) {\n let value = match[0];\n\n if (lastIndex < match.index) {\n addLiteral(parts, pattern.substring(lastIndex, match.index));\n }\n\n if (value.startsWith('\"') || value.startsWith(\"'\")) {\n addLiteral(parts, value);\n } else {\n const specifier = value[0];\n const type = DATE_FIELD_MAP[specifier];\n const part = {\n type: type,\n pattern: value\n };\n\n if (type === 'hour') {\n part.hour12 = isHour12(value);\n }\n\n const names = NAME_TYPES[type];\n\n if (names) {\n const minLength = isNumber(names.minLength) ? names.minLength : names.minLength[specifier];\n const patternLength = value.length;\n\n if (patternLength >= minLength) {\n part.names = {\n type: names.type,\n nameType: dateNameType(patternLength),\n standAlone: names.standAlone === specifier\n };\n }\n }\n\n parts.push(part);\n }\n\n lastIndex = dateFormatRegExp.lastIndex;\n match = dateFormatRegExp.exec(pattern);\n }\n\n if (lastIndex < pattern.length) {\n addLiteral(parts, pattern.substring(lastIndex));\n }\n\n return parts;\n}\n","export function convertTimeZone(date, fromOffset, toOffset) {\n const fromLocalOffset = date.getTimezoneOffset();\n\n const offsetDate = new Date(date.getTime() + (fromOffset - toOffset) * 60000);\n\n const toLocalOffset = offsetDate.getTimezoneOffset();\n\n return new Date(offsetDate.getTime() + (toLocalOffset - fromLocalOffset) * 60000);\n}\n\nexport function adjustDST(date, hours) {\n if (!hours && date.getHours() === 23) {\n date.setHours(date.getHours() + 2);\n }\n}","//The error is represented by unique name and corresponding message\n//The message can contain placeholders with index, e.g. {0}, {1}\n\nexport default {\n \"NoLocale\": \"Missing locale info for '{0}'\",\n \"NoCurrency\": \"Cannot determine currency information. Please load the locale currencies data.\",\n \"NoSupplementalCurrency\": \"Cannot determine currency. Please load the supplemental currencyData.\",\n \"NoCurrencyRegion\": \"No currency data for region '{0}'\",\n \"NoCurrencyDisplay\": \"Cannot determine currency display information. Please load the locale currencies data. The default culture does not include the all currencies data.\",\n \"NoGMTInfo\": \"Cannot determine locale GMT format. Please load the locale timeZoneNames data.\",\n \"NoWeekData\": \"Cannot determine locale first day of week. Please load the supplemental weekData.\",\n \"NoFirstDay\": \"Cannot determine locale first day of week. Please load the supplemental weekData. The default culture includes only the 'en-US' first day info.\",\n \"NoValidCurrency\": \"Cannot determine a default currency for the {0} locale. Please specify explicitly the currency with the format options.\",\n \"NoDateFieldNames\": \"Cannot determine the locale date field names. Please load the locale dateFields data.\"\n};\n","import errorDetails from './error-details';\n\nconst formatRegExp = /\\{(\\d+)}?\\}/g;\n\nclass IntlError {\n constructor({ name, message }) {\n if (!name || !message) {\n throw new Error(\"{ name: string, message: string } object is required!\");\n }\n\n this.name = name;\n this.message = message;\n }\n\n formatMessage(...values) {\n const flattenValues = flatten(values);\n\n const formattedMessage = this.message.replace(formatRegExp, function(match, index) {\n return flattenValues[parseInt(index, 10)];\n });\n\n return `${this.name}: ${formattedMessage}`;\n }\n\n error(...values) {\n return new Error(this.formatMessage(values));\n }\n}\n\nconst flatten = function(arr) {\n return arr.reduce((a, b) => a.concat(b), []);\n};\n\nconst toIntlErrors = function(errors) {\n const predicate = function(prev, name) {\n prev[name] = new IntlError({ name, message: errors[name] });\n return prev;\n };\n\n return Object.keys(errors).reduce(predicate, {});\n};\n\nconst errors = toIntlErrors(errorDetails);\n\nexport {\n errors,\n IntlError,\n toIntlErrors\n};\n","import { formatDate } from './dates';\nimport { formatNumber } from './numbers';\nimport { EMPTY } from './common/constants';\nimport isDate from './common/is-date';\nimport isNumber from './common/is-number';\n\nconst formatRegExp = /\\{(\\d+)(:[^\\}]+)?\\}/g;\n\nexport function toString(value, format, locale) {\n if (format) {\n if (isDate(value)) {\n return formatDate(value, format, locale);\n } else if (isNumber(value)) {\n return formatNumber(value, format, locale);\n }\n }\n\n return value !== undefined && value !== null ? value : EMPTY;\n}\n\nexport function format(format, values, locale) {\n return format.replace(formatRegExp, function(match, index, placeholderFormat) {\n let value = values[parseInt(index, 10)];\n\n return toString(value, placeholderFormat ? placeholderFormat.substring(1) : EMPTY, locale);\n });\n}\n","export * from './numbers';\nexport * from './dates';\nexport * from './cldr';\nexport * from './format';\nexport * from './errors';\n","export { default as formatNumber } from './numbers/format-number';\nexport { default as parseNumber } from './numbers/parse-number';","import { CURRENCY, PERCENT, LIST_SEPARATOR, GROUP_SEPARATOR, CURRENCY_PLACEHOLDER, PERCENT_PLACEHOLDER, POINT, EMPTY } from '../common/constants';\nimport isNegativeZero from '../common/is-negative-zero';\nimport groupInteger from './group-integer';\nimport round from '../common/round';\nimport { setStyleOptions, setFormatLiterals, replaceLiterals } from './utils';\n\nconst SHARP = \"#\";\nconst ZERO = \"0\";\n\nconst trailingZerosRegExp = /(\\.(?:[0-9]*[1-9])?)0+$/g;\nconst trailingPointRegExp = /\\.$/;\nconst commaRegExp = /\\,/g;\n\nfunction trimTrailingZeros(value, lastZero) {\n let trimRegex;\n\n if (lastZero === 0) {\n trimRegex = trailingZerosRegExp;\n } else {\n trimRegex = new RegExp(`(\\\\.[0-9]{${ lastZero }}[1-9]*)0+$`, 'g');\n }\n\n return value.replace(trimRegex, '$1').replace(trailingPointRegExp, EMPTY);\n}\n\nfunction roundNumber(formatOptions) {\n let { number, format } = formatOptions;\n let decimalIndex = format.indexOf(POINT);\n\n if (decimalIndex !== -1) {\n const zeroIndex = format.lastIndexOf(ZERO) - decimalIndex;\n const sharpIndex = format.lastIndexOf(SHARP) - decimalIndex;\n const hasZero = zeroIndex > -1;\n const hasSharp = sharpIndex > -1;\n let fraction = number.toString().split(\"e\");\n\n if (fraction[1]) {\n fraction = round(number, Math.abs(fraction[1]));\n } else {\n fraction = fraction[0];\n }\n fraction = fraction.split(POINT)[1] || EMPTY;\n\n let precision = fraction.length;\n let trailingZeros = -1;\n\n if (!hasZero && !hasSharp) {\n formatOptions.format = format.substring(0, decimalIndex) + format.substring(decimalIndex + 1);\n decimalIndex = -1;\n precision = 0;\n } else if (hasZero && zeroIndex > sharpIndex) {\n precision = zeroIndex;\n } else if (sharpIndex > zeroIndex) {\n if (hasSharp && precision > sharpIndex) {\n precision = sharpIndex;\n } else if (hasZero && precision < zeroIndex) {\n precision = zeroIndex;\n }\n\n trailingZeros = hasZero ? zeroIndex : 0;\n }\n\n if (precision > -1) {\n number = round(number, precision);\n if (trailingZeros > -1) {\n number = trimTrailingZeros(number, trailingZeros);\n }\n }\n } else {\n number = round(number);\n }\n\n if (formatOptions.negative && (number * -1) >= 0 && !formatOptions.negativeZero) {\n formatOptions.negative = false;\n }\n\n formatOptions.number = number;\n formatOptions.decimalIndex = decimalIndex;\n}\n\nfunction isConstantFormat(format) {\n return format.indexOf(SHARP) === -1 && format.indexOf(ZERO) === -1;\n}\n\nfunction setValueSpecificFormat(formatOptions) {\n let { number, format } = formatOptions;\n format = format.split(LIST_SEPARATOR);\n if ((formatOptions.negative || formatOptions.negativeZero) && format[1]) {\n format = format[1];\n formatOptions.hasNegativeFormat = true;\n } else if (number === 0) {\n const zeroFormat = format[2];\n format = zeroFormat || format[0];\n if (zeroFormat && isConstantFormat(zeroFormat)) {\n formatOptions.constant = zeroFormat;\n }\n } else {\n format = format[0];\n }\n\n formatOptions.format = format;\n}\n\nfunction setGroupOptions(formatOptions) {\n formatOptions.hasGroup = formatOptions.format.indexOf(GROUP_SEPARATOR) > -1;\n if (formatOptions.hasGroup) {\n formatOptions.format = formatOptions.format.replace(commaRegExp, EMPTY);\n }\n}\n\nfunction placeholderIndex(index1, index2, start) {\n let index;\n if (index1 === -1 && index2 !== -1) {\n index = index2;\n } else if (index1 !== -1 && index2 === -1) {\n index = index1;\n } else {\n index = start ? Math.min(index1, index2) : Math.max(index1, index2);\n }\n return index;\n}\n\nfunction setPlaceholderIndices(formatOptions) {\n const format = formatOptions.format;\n let sharpIndex = format.indexOf(SHARP);\n let zeroIndex = format.indexOf(ZERO);\n\n let start = placeholderIndex(sharpIndex, zeroIndex, true);\n\n sharpIndex = format.lastIndexOf(SHARP);\n zeroIndex = format.lastIndexOf(ZERO);\n\n let end = placeholderIndex(sharpIndex, zeroIndex);\n\n if (start === format.length) {\n end = start;\n }\n\n formatOptions.start = start;\n formatOptions.end = end;\n formatOptions.lastZeroIndex = zeroIndex;\n}\n\nfunction replaceStyleSymbols(number, style, symbol) {\n let result = number;\n if (style === CURRENCY || style === PERCENT) {\n result = EMPTY;\n for (let idx = 0, length = number.length; idx < length; idx++) {\n let ch = number.charAt(idx);\n result += (ch === CURRENCY_PLACEHOLDER || ch === PERCENT_PLACEHOLDER) ? symbol : ch;\n }\n }\n return result;\n}\n\nfunction replacePlaceHolders(formatOptions, info) {\n const { start, end, negative, negativeZero, format, decimalIndex, lastZeroIndex, hasNegativeFormat, hasGroup } = formatOptions;\n let number = formatOptions.number;\n const value = number.toString().split(POINT);\n const length = format.length;\n const integer = value[0];\n const fraction = value[1] || EMPTY;\n const integerLength = integer.length;\n let replacement = EMPTY;\n\n number = format.substring(0, start);\n\n if ((negative || negativeZero) && !hasNegativeFormat) {\n number += \"-\";\n }\n\n for (let idx = start; idx < length; idx++) {\n let ch = format.charAt(idx);\n\n if (decimalIndex === -1) {\n if (end - idx < integerLength) {\n\n number += integer;\n break;\n }\n } else {\n if (lastZeroIndex !== -1 && lastZeroIndex < idx) {\n replacement = EMPTY;\n }\n\n if ((decimalIndex - idx) <= integerLength && decimalIndex - idx > -1) {\n number += integer;\n idx = decimalIndex;\n }\n\n if (decimalIndex === idx) {\n number += (fraction ? info.numbers.symbols.decimal : EMPTY) + fraction;\n idx += end - decimalIndex + 1;\n continue;\n }\n }\n\n if (ch === ZERO) {\n number += ch;\n replacement = ch;\n } else if (ch === SHARP) {\n number += replacement;\n }\n }\n\n if (hasGroup) {\n number = groupInteger(number, start + (negative && !hasNegativeFormat ? 1 : 0), Math.max(end, (integerLength + start)), info.numbers.decimal, info);\n }\n\n if (end >= start) {\n number += format.substring(end + 1);\n }\n\n return number;\n}\n\nfunction applyCustomFormat(formatOptions, info) {\n let number = formatOptions.number;\n if (formatOptions.start !== -1) {\n number = replacePlaceHolders(formatOptions, info);\n number = replaceStyleSymbols(number, formatOptions.style, formatOptions.symbol);\n number = replaceLiterals(number, formatOptions.literals);\n }\n\n return number;\n}\n\nexport default function customNumberFormat(number, format, info) {\n const formatOptions = {\n negative: number < 0,\n number: Math.abs(number),\n negativeZero: isNegativeZero(number),\n format: format\n };\n\n setValueSpecificFormat(formatOptions);\n\n if (formatOptions.constant) {\n return formatOptions.constant;\n }\n\n setFormatLiterals(formatOptions);\n setStyleOptions(formatOptions, info);\n setGroupOptions(formatOptions);\n roundNumber(formatOptions);\n setPlaceholderIndices(formatOptions);\n\n return applyCustomFormat(formatOptions, info);\n}","import { currencyDisplay, localeCurrency } from '../cldr';\n\nexport default function formatCurrencySymbol(info, options = {}) {\n if (!options.currency) {\n options.currency = localeCurrency(info, true);\n }\n\n const display = currencyDisplay(info, options);\n\n return display;\n}\n","import { localeInfo } from '../cldr';\nimport { DECIMAL, DEFAULT_LOCALE, NUMBER_PLACEHOLDER, EMPTY } from '../common/constants';\nimport standardNumberFormat from './standard-number-format';\nimport customNumberFormat from './custom-number-format';\nimport formatOptions from './format-options';\n\nexport default function formatNumber(number, format = NUMBER_PLACEHOLDER, locale = DEFAULT_LOCALE) {\n if (number === undefined || number === null) {\n return EMPTY;\n }\n\n if (!isFinite(number)) {\n return String(number);\n }\n\n const info = localeInfo(locale);\n const options = formatOptions(format);\n\n let result;\n if (options) {\n const style = options.style || DECIMAL;\n result = standardNumberFormat(number, Object.assign({}, info.numbers[style], options), info);\n } else {\n result = customNumberFormat(number, format, info);\n }\n\n return result;\n}\n","import { CURRENCY, ACCOUNTING, DECIMAL, PERCENT, SCIENTIFIC } from '../common/constants';\nimport isString from '../common/is-string';\n\nconst standardFormatRegExp = /^(n|c|p|e|a)(\\d*)$/i;\n\nfunction standardFormatOptions(format) {\n const formatAndPrecision = standardFormatRegExp.exec(format);\n\n if (formatAndPrecision) {\n const options = {\n style: DECIMAL\n };\n\n let style = formatAndPrecision[1].toLowerCase();\n\n if (style === \"c\") {\n options.style = CURRENCY;\n } else if (style === \"a\") {\n options.style = ACCOUNTING;\n } else if (style === \"p\") {\n options.style = PERCENT;\n } else if (style === \"e\") {\n options.style = SCIENTIFIC;\n }\n\n if (formatAndPrecision[2]) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseInt(formatAndPrecision[2], 10);\n }\n\n return options;\n }\n}\n\nexport default function formatOptions(format) {\n let options;\n if (isString(format)) {\n options = standardFormatOptions(format);\n } else {\n options = format;\n }\n\n return options;\n}","export default function groupInteger(number, start, end, options, info) {\n const symbols = info.numbers.symbols;\n const decimalIndex = number.indexOf(symbols.decimal);\n const groupSizes = options.groupSize.slice();\n let groupSize = groupSizes.shift();\n\n let integerEnd = decimalIndex !== -1 ? decimalIndex : end + 1;\n\n let integer = number.substring(start, integerEnd);\n let result = number;\n const integerLength = integer.length;\n\n if (integerLength >= groupSize) {\n let idx = integerLength;\n let parts = [];\n\n while (idx > -1) {\n let value = integer.substring(idx - groupSize, idx);\n if (value) {\n parts.push(value);\n }\n idx -= groupSize;\n let newGroupSize = groupSizes.shift();\n groupSize = newGroupSize !== undefined ? newGroupSize : groupSize;\n\n if (groupSize === 0) {\n value = integer.substring(0, idx);\n if (value) {\n parts.push(value);\n }\n break;\n }\n }\n\n integer = parts.reverse().join(symbols.group);\n result = number.substring(0, start) + integer + number.substring(integerEnd);\n }\n\n return result;\n}","import { CURRENCY, ACCOUNTING } from '../common/constants';\n\nexport default function isCurrencyStyle(style) {\n return style === CURRENCY || style === ACCOUNTING;\n}","import { localeInfo, localeCurrency, currencyDisplays } from '../cldr';\nimport { PERCENT, NUMBER_PLACEHOLDER, CURRENCY_PLACEHOLDER, DEFAULT_LOCALE, EMPTY, POINT } from '../common/constants';\nimport { setStyleOptions, setFormatLiterals } from './utils';\nimport isNumber from '../common/is-number';\nimport isCurrencyStyle from './is-currency-style';\nimport formatOptions from './format-options';\nimport isString from '../common/is-string';\n\nconst exponentRegExp = /[eE][\\-+]?[0-9]+/;\nconst nonBreakingSpaceRegExp = /\\u00A0/g;\n\nfunction cleanNegativePattern(number, patterns) {\n if (patterns.length > 1) {\n const parts = (patterns[1] || EMPTY).replace(CURRENCY_PLACEHOLDER, EMPTY).split(NUMBER_PLACEHOLDER);\n if (number.indexOf(parts[0]) > -1 && number.indexOf(parts[1]) > -1) {\n return number.replace(parts[0], EMPTY).replace(parts[1], EMPTY);\n }\n }\n}\n\nfunction cleanCurrencyNumber(value, info, format) {\n const options = formatOptions(format) || {};\n let isCurrency = isCurrencyStyle(options.style);\n let number = value;\n let negative;\n\n const currency = options.currency || localeCurrency(info, isCurrency);\n\n if (currency) {\n const displays = currencyDisplays(info, currency, isCurrency);\n if (displays) {\n for (let idx = 0; idx < displays.length; idx++) {\n let display = displays[idx];\n if (number.includes(display)) {\n number = number.replace(display, EMPTY);\n isCurrency = true;\n break;\n }\n }\n }\n\n if (isCurrency) {\n const cleanNumber = cleanNegativePattern(number, info.numbers.currency.patterns) ||\n cleanNegativePattern(number, info.numbers.accounting.patterns);\n\n if (cleanNumber) {\n negative = true;\n number = cleanNumber;\n }\n\n }\n }\n\n return {\n number: number,\n negative: negative\n };\n}\n\nfunction cleanLiterals(number, formatOptions) {\n const literals = formatOptions.literals;\n let result = number;\n\n if (literals) {\n for (let idx = 0; idx < literals.length; idx++) {\n result = result.replace(literals[idx], EMPTY);\n }\n }\n\n return result;\n}\n\nexport default function parseNumber(value, locale = DEFAULT_LOCALE, format = {}) {\n if (!value && value !== 0) {\n return null;\n }\n\n if (isNumber(value)) {\n return value;\n }\n\n const info = localeInfo(locale);\n const symbols = info.numbers.symbols;\n\n let number = value.toString();\n let formatOptions = format || {};\n let isPercent;\n\n if (isString(format)) {\n formatOptions = { format: format };\n setFormatLiterals(formatOptions);\n number = cleanLiterals(number, formatOptions);\n\n setStyleOptions(formatOptions, info);\n }\n\n if (formatOptions.style === PERCENT || number.indexOf(symbols.percentSign) > -1) {\n number = number.replace(symbols.percentSign, EMPTY);\n isPercent = true;\n }\n\n if (exponentRegExp.test(number)) {\n number = parseFloat(number.replace(symbols.decimal, POINT));\n return isNaN(number) ? null : number;\n }\n\n const { negative: negativeCurrency, number: currencyNumber } = cleanCurrencyNumber(number, info, formatOptions);\n number = String(currencyNumber).trim();\n\n const negativeSignIndex = number.indexOf(\"-\");\n if (negativeSignIndex > 0) {\n return null;\n }\n\n let isNegative = negativeSignIndex > -1;\n\n isNegative = negativeCurrency !== undefined ? negativeCurrency : isNegative;\n\n number = number.replace(\"-\", EMPTY)\n .replace(nonBreakingSpaceRegExp, \" \")\n .split(symbols.group.replace(nonBreakingSpaceRegExp, \" \")).join(EMPTY)\n .replace(symbols.decimal, POINT);\n\n number = parseFloat(number);\n\n if (isNaN(number)) {\n number = null;\n } else if (isNegative) {\n number *= -1;\n }\n\n if (number && isPercent) {\n number /= 100;\n }\n\n return number;\n}\n","import { PERCENT, SCIENTIFIC, NUMBER_PLACEHOLDER, CURRENCY_PLACEHOLDER, PERCENT_PLACEHOLDER, EMPTY, POINT } from '../common/constants';\nimport isNegativeZero from '../common/is-negative-zero';\nimport formatCurrencySymbol from './format-currency-symbol';\nimport groupInteger from './group-integer';\nimport isCurrencyStyle from './is-currency-style';\nimport pad from '../common/pad';\nimport round from '../common/round';\nimport { currencyFractionOptions } from '../cldr';\n\nconst DEFAULT_DECIMAL_ROUNDING = 3;\nconst DEFAULT_PERCENT_ROUNDING = 0;\n\nconst trailingZeroRegex = /0+$/;\n\nfunction fractionOptions(options) {\n let { minimumFractionDigits, maximumFractionDigits, style } = options;\n const isCurrency = isCurrencyStyle(style);\n let currencyFractions;\n if (isCurrency) {\n currencyFractions = currencyFractionOptions(options.currency);\n }\n\n if (minimumFractionDigits === undefined) {\n minimumFractionDigits = isCurrency ? currencyFractions.minimumFractionDigits : 0;\n }\n\n if (maximumFractionDigits === undefined) {\n if (style === PERCENT) {\n maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_PERCENT_ROUNDING);\n } else if (isCurrency) {\n maximumFractionDigits = Math.max(minimumFractionDigits, currencyFractions.maximumFractionDigits);\n } else {\n maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_DECIMAL_ROUNDING);\n }\n }\n\n return {\n minimumFractionDigits: minimumFractionDigits,\n maximumFractionDigits: maximumFractionDigits\n };\n}\n\nfunction applyPattern(value, pattern, symbol) {\n let result = EMPTY;\n for (let idx = 0, length = pattern.length; idx < length; idx++) {\n let ch = pattern.charAt(idx);\n\n if (ch === NUMBER_PLACEHOLDER) {\n result += value;\n } else if (ch === CURRENCY_PLACEHOLDER || ch === PERCENT_PLACEHOLDER) {\n result += symbol;\n } else {\n result += ch;\n }\n }\n return result;\n}\n\nfunction currencyUnitPattern(info, value) {\n const currencyInfo = info.numbers.currency;\n let pattern = value !== 1 ? currencyInfo[\"unitPattern-count-other\"] : currencyInfo[\"unitPattern-count-one\"];\n if (value < 0) {\n pattern = pattern.replace(NUMBER_PLACEHOLDER, `-${ NUMBER_PLACEHOLDER }`);\n }\n\n return pattern;\n}\n\n\nexport default function standardNumberFormat(number, options, info) {\n const symbols = info.numbers.symbols;\n const { style } = options;\n const isCurrency = isCurrencyStyle(style);\n\n //return number in exponential format\n if (style === SCIENTIFIC) {\n let exponential = options.minimumFractionDigits !== undefined ? number.toExponential(options.minimumFractionDigits) : number.toExponential();\n return exponential.replace(POINT, symbols.decimal);\n }\n\n let value = number;\n let symbol;\n\n if (isCurrency) {\n options.value = value;\n symbol = formatCurrencySymbol(info, options);\n }\n\n if (style === PERCENT) {\n value *= 100;\n symbol = symbols.percentSign;\n }\n\n const { minimumFractionDigits, maximumFractionDigits } = fractionOptions(options);\n\n value = round(value, maximumFractionDigits);\n\n const negative = value < 0;\n const negativeZero = isNegativeZero(number);\n\n const parts = value.split(POINT);\n\n let integer = parts[0];\n let fraction = pad(parts[1] ? parts[1].replace(trailingZeroRegex, EMPTY) : EMPTY, minimumFractionDigits, true);\n\n //exclude \"-\" if number is negative.\n if (negative) {\n integer = integer.substring(1);\n }\n\n if (options.minimumIntegerDigits) {\n integer = pad(integer, options.minimumIntegerDigits);\n }\n\n let formattedValue = options.useGrouping !== false ? groupInteger(integer, 0, integer.length, options, info) : integer;\n\n if (fraction) {\n formattedValue += symbols.decimal + fraction;\n }\n\n let pattern;\n\n if (isCurrency && options.currencyDisplay === \"name\") {\n pattern = currencyUnitPattern(info, number);\n } else {\n const patterns = options.patterns;\n pattern = (negative || negativeZero) ? patterns[1] || (\"-\" + patterns[0]) : patterns[0];\n }\n\n if (pattern === NUMBER_PLACEHOLDER && !negative) {\n return formattedValue;\n }\n\n const result = applyPattern(formattedValue, pattern, symbol);\n\n return result;\n}","import { PERCENT_PLACEHOLDER, CURRENCY_PLACEHOLDER, CURRENCY, PERCENT, EMPTY } from '../common/constants';\nimport formatCurrencySymbol from './format-currency-symbol';\n\nconst literalRegExp = /(\\\\.)|(['][^']*[']?)|([\"][^\"]*[\"]?)/g;\nconst PLACEHOLDER = \"__??__\";\n\nexport function setStyleOptions(formatOptions, info) {\n const format = formatOptions.format;\n\n //multiply number if the format has percent\n if (format.indexOf(PERCENT_PLACEHOLDER) !== -1) {\n formatOptions.style = PERCENT;\n formatOptions.symbol = info.numbers.symbols.percentSign;\n formatOptions.number *= 100;\n }\n\n if (format.indexOf(CURRENCY_PLACEHOLDER) !== -1) {\n formatOptions.style = CURRENCY;\n formatOptions.symbol = formatCurrencySymbol(info);\n }\n}\n\nexport function setFormatLiterals(formatOptions) {\n let format = formatOptions.format;\n if (format.indexOf(\"'\") > -1 || format.indexOf(\"\\\"\") > -1 || format.indexOf(\"\\\\\") > -1) {\n const literals = formatOptions.literals = [];\n formatOptions.format = format.replace(literalRegExp, function(match) {\n const quoteChar = match.charAt(0).replace(\"\\\\\", EMPTY);\n const literal = match.slice(1).replace(quoteChar, EMPTY);\n\n literals.push(literal);\n\n return PLACEHOLDER;\n });\n }\n}\n\nexport function replaceLiterals(number, literals) {\n let result = number;\n if (literals) {\n const length = literals.length;\n for (let idx = 0; idx < length; idx++) {\n result = result.replace(PLACEHOLDER, literals[idx]);\n }\n }\n return result;\n}","import { ElementRef } from '@angular/core';\n\nexport class ResizedEvent {\n constructor(\n readonly element: ElementRef,\n readonly newWidth: number,\n readonly newHeight: number,\n readonly oldWidth: number,\n readonly oldHeight: number\n ) {}\n}\n","import { Directive, ElementRef, EventEmitter, OnInit, Output, OnDestroy } from '@angular/core';\nimport { ResizeSensor } from 'css-element-queries';\nimport { ResizedEvent } from './resized-event';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[resized]'\n})\nexport class ResizedDirective implements OnInit, OnDestroy {\n\n @Output()\n readonly resized = new EventEmitter();\n\n private oldWidth: number;\n private oldHeight: number;\n\n private resizeSensor: ResizeSensor;\n\n constructor(private readonly element: ElementRef) {\n }\n\n ngOnInit(): void {\n // only initialize resize watching if sensor is availablei\n if (ResizeSensor) {\n this.resizeSensor = new ResizeSensor(this.element.nativeElement, () => this.onResized());\n }\n }\n\n ngOnDestroy(): void {\n if (this.resizeSensor) {\n this.resizeSensor.detach();\n }\n }\n\n private onResized(): void {\n const newWidth = this.element.nativeElement.clientWidth;\n const newHeight = this.element.nativeElement.clientHeight;\n\n if (newWidth === this.oldWidth && newHeight === this.oldHeight) {\n return;\n }\n\n const event = new ResizedEvent(\n this.element,\n newWidth,\n newHeight,\n this.oldWidth,\n this.oldHeight\n );\n\n this.oldWidth = this.element.nativeElement.clientWidth;\n this.oldHeight = this.element.nativeElement.clientHeight;\n\n this.resized.emit(event);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { ResizedDirective } from './resized.directive';\n\n@NgModule({\n declarations: [ResizedDirective],\n imports: [\n ],\n exports: [ResizedDirective]\n})\nexport class AngularResizedEventModule { }\n","/*\n * Public API Surface of angular-resize-event\n */\n\nexport * from './lib/resized-event';\nexport * from './lib/resized.directive';\nexport * from './lib/angular-resized-event.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n","module.exports = {\n ResizeSensor: require('./src/ResizeSensor'),\n ElementQueries: require('./src/ElementQueries')\n};\n","'use strict';\n\n/**\n * Copyright Marc J. Schmidt. See the LICENSE file at the top-level\n * directory of this distribution and at\n * https://github.com/marcj/css-element-queries/blob/master/LICENSE.\n */\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['./ResizeSensor.js'], factory);\n } else if (typeof exports === \"object\") {\n module.exports = factory(require('./ResizeSensor.js'));\n } else {\n root.ElementQueries = factory(root.ResizeSensor);\n root.ElementQueries.listen();\n }\n}(typeof window !== 'undefined' ? window : this, function (ResizeSensor) {\n\n /**\n *\n * @type {Function}\n * @constructor\n */\n var ElementQueries = function () {\n //\n \n\n could become:\n\n \n
    \n \n
    \n\n Note the use of @polyfill in the comment above a ShadowDOM specific style\n declaration. This is a directive to the styling shim to use the selector\n in comments in lieu of the next selector when running under polyfill.\n*/\n\nexport class ShadowCss {\n strictStyling: boolean = true;\n\n /*\n * Shim some cssText with the given selector. Returns cssText that can\n * be included in the document via WebComponents.ShadowCSS.addCssToDocument(css).\n *\n * When strictStyling is true:\n * - selector is the attribute added to all elements inside the host,\n * - hostSelector is the attribute added to the host itself.\n */\n shimCssText(cssText: string, selector: string, hostSelector: string = ''): string {\n const commentsWithHash = extractCommentsWithHash(cssText);\n cssText = stripComments(cssText);\n cssText = this._insertDirectives(cssText);\n\n const scopedCssText = this._scopeCssText(cssText, selector, hostSelector);\n return [scopedCssText, ...commentsWithHash].join('\\n');\n }\n\n private _insertDirectives(cssText: string): string {\n cssText = this._insertPolyfillDirectivesInCssText(cssText);\n return this._insertPolyfillRulesInCssText(cssText);\n }\n\n /*\n * Process styles to convert native ShadowDOM rules that will trip\n * up the css parser; we rely on decorating the stylesheet with inert rules.\n *\n * For example, we convert this rule:\n *\n * polyfill-next-selector { content: ':host menu-item'; }\n * ::content menu-item {\n *\n * to this:\n *\n * scopeName menu-item {\n *\n **/\n private _insertPolyfillDirectivesInCssText(cssText: string): string {\n // Difference with webcomponents.js: does not handle comments\n return cssText.replace(_cssContentNextSelectorRe, function(...m: string[]) {\n return m[2] + '{';\n });\n }\n\n /*\n * Process styles to add rules which will only apply under the polyfill\n *\n * For example, we convert this rule:\n *\n * polyfill-rule {\n * content: ':host menu-item';\n * ...\n * }\n *\n * to this:\n *\n * scopeName menu-item {...}\n *\n **/\n private _insertPolyfillRulesInCssText(cssText: string): string {\n // Difference with webcomponents.js: does not handle comments\n return cssText.replace(_cssContentRuleRe, (...m: string[]) => {\n const rule = m[0].replace(m[1], '').replace(m[2], '');\n return m[4] + rule;\n });\n }\n\n /* Ensure styles are scoped. Pseudo-scoping takes a rule like:\n *\n * .foo {... }\n *\n * and converts this to\n *\n * scopeName .foo { ... }\n */\n private _scopeCssText(cssText: string, scopeSelector: string, hostSelector: string): string {\n const unscopedRules = this._extractUnscopedRulesFromCssText(cssText);\n // replace :host and :host-context -shadowcsshost and -shadowcsshost respectively\n cssText = this._insertPolyfillHostInCssText(cssText);\n cssText = this._convertColonHost(cssText);\n cssText = this._convertColonHostContext(cssText);\n cssText = this._convertShadowDOMSelectors(cssText);\n if (scopeSelector) {\n cssText = this._scopeSelectors(cssText, scopeSelector, hostSelector);\n }\n cssText = cssText + '\\n' + unscopedRules;\n return cssText.trim();\n }\n\n /*\n * Process styles to add rules which will only apply under the polyfill\n * and do not process via CSSOM. (CSSOM is destructive to rules on rare\n * occasions, e.g. -webkit-calc on Safari.)\n * For example, we convert this rule:\n *\n * @polyfill-unscoped-rule {\n * content: 'menu-item';\n * ... }\n *\n * to this:\n *\n * menu-item {...}\n *\n **/\n private _extractUnscopedRulesFromCssText(cssText: string): string {\n // Difference with webcomponents.js: does not handle comments\n let r = '';\n let m: RegExpExecArray|null;\n _cssContentUnscopedRuleRe.lastIndex = 0;\n while ((m = _cssContentUnscopedRuleRe.exec(cssText)) !== null) {\n const rule = m[0].replace(m[2], '').replace(m[1], m[4]);\n r += rule + '\\n\\n';\n }\n return r;\n }\n\n /*\n * convert a rule like :host(.foo) > .bar { }\n *\n * to\n *\n * .foo > .bar\n */\n private _convertColonHost(cssText: string): string {\n return cssText.replace(_cssColonHostRe, (_, hostSelectors: string, otherSelectors: string) => {\n if (hostSelectors) {\n const convertedSelectors: string[] = [];\n const hostSelectorArray = hostSelectors.split(',').map(p => p.trim());\n for (const hostSelector of hostSelectorArray) {\n if (!hostSelector) break;\n const convertedSelector =\n _polyfillHostNoCombinator + hostSelector.replace(_polyfillHost, '') + otherSelectors;\n convertedSelectors.push(convertedSelector);\n }\n return convertedSelectors.join(',');\n } else {\n return _polyfillHostNoCombinator + otherSelectors;\n }\n });\n }\n\n /*\n * convert a rule like :host-context(.foo) > .bar { }\n *\n * to\n *\n * .foo > .bar, .foo > .bar { }\n *\n * and\n *\n * :host-context(.foo:host) .bar { ... }\n *\n * to\n *\n * .foo .bar { ... }\n */\n private _convertColonHostContext(cssText: string): string {\n return cssText.replace(_cssColonHostContextReGlobal, selectorText => {\n // We have captured a selector that contains a `:host-context` rule.\n\n // For backward compatibility `:host-context` may contain a comma separated list of selectors.\n // Each context selector group will contain a list of host-context selectors that must match\n // an ancestor of the host.\n // (Normally `contextSelectorGroups` will only contain a single array of context selectors.)\n const contextSelectorGroups: string[][] = [[]];\n\n // There may be more than `:host-context` in this selector so `selectorText` could look like:\n // `:host-context(.one):host-context(.two)`.\n // Execute `_cssColonHostContextRe` over and over until we have extracted all the\n // `:host-context` selectors from this selector.\n let match: RegExpMatchArray|null;\n while (match = _cssColonHostContextRe.exec(selectorText)) {\n // `match` = [':host-context()', , ]\n\n // The `` could actually be a comma separated list: `:host-context(.one, .two)`.\n const newContextSelectors =\n (match[1] ?? '').trim().split(',').map(m => m.trim()).filter(m => m !== '');\n\n // We must duplicate the current selector group for each of these new selectors.\n // For example if the current groups are:\n // ```\n // [\n // ['a', 'b', 'c'],\n // ['x', 'y', 'z'],\n // ]\n // ```\n // And we have a new set of comma separated selectors: `:host-context(m,n)` then the new\n // groups are:\n // ```\n // [\n // ['a', 'b', 'c', 'm'],\n // ['x', 'y', 'z', 'm'],\n // ['a', 'b', 'c', 'n'],\n // ['x', 'y', 'z', 'n'],\n // ]\n // ```\n const contextSelectorGroupsLength = contextSelectorGroups.length;\n repeatGroups(contextSelectorGroups, newContextSelectors.length);\n for (let i = 0; i < newContextSelectors.length; i++) {\n for (let j = 0; j < contextSelectorGroupsLength; j++) {\n contextSelectorGroups[j + (i * contextSelectorGroupsLength)].push(\n newContextSelectors[i]);\n }\n }\n\n // Update the `selectorText` and see repeat to see if there are more `:host-context`s.\n selectorText = match[2];\n }\n\n // The context selectors now must be combined with each other to capture all the possible\n // selectors that `:host-context` can match. See `combineHostContextSelectors()` for more\n // info about how this is done.\n return contextSelectorGroups\n .map(contextSelectors => combineHostContextSelectors(contextSelectors, selectorText))\n .join(', ');\n });\n }\n\n /*\n * Convert combinators like ::shadow and pseudo-elements like ::content\n * by replacing with space.\n */\n private _convertShadowDOMSelectors(cssText: string): string {\n return _shadowDOMSelectorsRe.reduce((result, pattern) => result.replace(pattern, ' '), cssText);\n }\n\n // change a selector like 'div' to 'name div'\n private _scopeSelectors(cssText: string, scopeSelector: string, hostSelector: string): string {\n return processRules(cssText, (rule: CssRule) => {\n let selector = rule.selector;\n let content = rule.content;\n if (rule.selector[0] !== '@') {\n selector =\n this._scopeSelector(rule.selector, scopeSelector, hostSelector, this.strictStyling);\n } else if (\n rule.selector.startsWith('@media') || rule.selector.startsWith('@supports') ||\n rule.selector.startsWith('@document')) {\n content = this._scopeSelectors(rule.content, scopeSelector, hostSelector);\n } else if (rule.selector.startsWith('@font-face') || rule.selector.startsWith('@page')) {\n content = this._stripScopingSelectors(rule.content);\n }\n return new CssRule(selector, content);\n });\n }\n\n /**\n * Handle a css text that is within a rule that should not contain scope selectors by simply\n * removing them! An example of such a rule is `@font-face`.\n *\n * `@font-face` rules cannot contain nested selectors. Nor can they be nested under a selector.\n * Normally this would be a syntax error by the author of the styles. But in some rare cases, such\n * as importing styles from a library, and applying `:host ::ng-deep` to the imported styles, we\n * can end up with broken css if the imported styles happen to contain @font-face rules.\n *\n * For example:\n *\n * ```\n * :host ::ng-deep {\n * import 'some/lib/containing/font-face';\n * }\n *\n * Similar logic applies to `@page` rules which can contain a particular set of properties,\n * as well as some specific at-rules. Since they can't be encapsulated, we have to strip\n * any scoping selectors from them. For more information: https://www.w3.org/TR/css-page-3\n * ```\n */\n private _stripScopingSelectors(cssText: string): string {\n return processRules(cssText, rule => {\n const selector = rule.selector.replace(_shadowDeepSelectors, ' ')\n .replace(_polyfillHostNoCombinatorRe, ' ');\n return new CssRule(selector, rule.content);\n });\n }\n\n private _scopeSelector(\n selector: string, scopeSelector: string, hostSelector: string, strict: boolean): string {\n return selector.split(',')\n .map(part => part.trim().split(_shadowDeepSelectors))\n .map((deepParts) => {\n const [shallowPart, ...otherParts] = deepParts;\n const applyScope = (shallowPart: string) => {\n if (this._selectorNeedsScoping(shallowPart, scopeSelector)) {\n return strict ?\n this._applyStrictSelectorScope(shallowPart, scopeSelector, hostSelector) :\n this._applySelectorScope(shallowPart, scopeSelector, hostSelector);\n } else {\n return shallowPart;\n }\n };\n return [applyScope(shallowPart), ...otherParts].join(' ');\n })\n .join(', ');\n }\n\n private _selectorNeedsScoping(selector: string, scopeSelector: string): boolean {\n const re = this._makeScopeMatcher(scopeSelector);\n return !re.test(selector);\n }\n\n private _makeScopeMatcher(scopeSelector: string): RegExp {\n const lre = /\\[/g;\n const rre = /\\]/g;\n scopeSelector = scopeSelector.replace(lre, '\\\\[').replace(rre, '\\\\]');\n return new RegExp('^(' + scopeSelector + ')' + _selectorReSuffix, 'm');\n }\n\n private _applySelectorScope(selector: string, scopeSelector: string, hostSelector: string):\n string {\n // Difference from webcomponents.js: scopeSelector could not be an array\n return this._applySimpleSelectorScope(selector, scopeSelector, hostSelector);\n }\n\n // scope via name and [is=name]\n private _applySimpleSelectorScope(selector: string, scopeSelector: string, hostSelector: string):\n string {\n // In Android browser, the lastIndex is not reset when the regex is used in String.replace()\n _polyfillHostRe.lastIndex = 0;\n if (_polyfillHostRe.test(selector)) {\n const replaceBy = this.strictStyling ? `[${hostSelector}]` : scopeSelector;\n return selector\n .replace(\n _polyfillHostNoCombinatorRe,\n (hnc, selector) => {\n return selector.replace(\n /([^:]*)(:*)(.*)/,\n (_: string, before: string, colon: string, after: string) => {\n return before + replaceBy + colon + after;\n });\n })\n .replace(_polyfillHostRe, replaceBy + ' ');\n }\n\n return scopeSelector + ' ' + selector;\n }\n\n // return a selector with [name] suffix on each simple selector\n // e.g. .foo.bar > .zot becomes .foo[name].bar[name] > .zot[name] /** @internal */\n private _applyStrictSelectorScope(selector: string, scopeSelector: string, hostSelector: string):\n string {\n const isRe = /\\[is=([^\\]]*)\\]/g;\n scopeSelector = scopeSelector.replace(isRe, (_: string, ...parts: string[]) => parts[0]);\n\n const attrName = '[' + scopeSelector + ']';\n\n const _scopeSelectorPart = (p: string) => {\n let scopedP = p.trim();\n\n if (!scopedP) {\n return '';\n }\n\n if (p.indexOf(_polyfillHostNoCombinator) > -1) {\n scopedP = this._applySimpleSelectorScope(p, scopeSelector, hostSelector);\n } else {\n // remove :host since it should be unnecessary\n const t = p.replace(_polyfillHostRe, '');\n if (t.length > 0) {\n const matches = t.match(/([^:]*)(:*)(.*)/);\n if (matches) {\n scopedP = matches[1] + attrName + matches[2] + matches[3];\n }\n }\n }\n\n return scopedP;\n };\n\n const safeContent = new SafeSelector(selector);\n selector = safeContent.content();\n\n let scopedSelector = '';\n let startIndex = 0;\n let res: RegExpExecArray|null;\n const sep = /( |>|\\+|~(?!=))\\s*/g;\n\n // If a selector appears before :host it should not be shimmed as it\n // matches on ancestor elements and not on elements in the host's shadow\n // `:host-context(div)` is transformed to\n // `-shadowcsshost-no-combinatordiv, div -shadowcsshost-no-combinator`\n // the `div` is not part of the component in the 2nd selectors and should not be scoped.\n // Historically `component-tag:host` was matching the component so we also want to preserve\n // this behavior to avoid breaking legacy apps (it should not match).\n // The behavior should be:\n // - `tag:host` -> `tag[h]` (this is to avoid breaking legacy apps, should not match anything)\n // - `tag :host` -> `tag [h]` (`tag` is not scoped because it's considered part of a\n // `:host-context(tag)`)\n const hasHost = selector.indexOf(_polyfillHostNoCombinator) > -1;\n // Only scope parts after the first `-shadowcsshost-no-combinator` when it is present\n let shouldScope = !hasHost;\n\n while ((res = sep.exec(selector)) !== null) {\n const separator = res[1];\n const part = selector.slice(startIndex, res.index).trim();\n shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;\n const scopedPart = shouldScope ? _scopeSelectorPart(part) : part;\n scopedSelector += `${scopedPart} ${separator} `;\n startIndex = sep.lastIndex;\n }\n\n const part = selector.substring(startIndex);\n shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;\n scopedSelector += shouldScope ? _scopeSelectorPart(part) : part;\n\n // replace the placeholders with their original values\n return safeContent.restore(scopedSelector);\n }\n\n private _insertPolyfillHostInCssText(selector: string): string {\n return selector.replace(_colonHostContextRe, _polyfillHostContext)\n .replace(_colonHostRe, _polyfillHost);\n }\n}\n\nclass SafeSelector {\n private placeholders: string[] = [];\n private index = 0;\n private _content: string;\n\n constructor(selector: string) {\n // Replaces attribute selectors with placeholders.\n // The WS in [attr=\"va lue\"] would otherwise be interpreted as a selector separator.\n selector = this._escapeRegexMatches(selector, /(\\[[^\\]]*\\])/g);\n\n // CSS allows for certain special characters to be used in selectors if they're escaped.\n // E.g. `.foo:blue` won't match a class called `foo:blue`, because the colon denotes a\n // pseudo-class, but writing `.foo\\:blue` will match, because the colon was escaped.\n // Replace all escape sequences (`\\` followed by a character) with a placeholder so\n // that our handling of pseudo-selectors doesn't mess with them.\n selector = this._escapeRegexMatches(selector, /(\\\\.)/g);\n\n // Replaces the expression in `:nth-child(2n + 1)` with a placeholder.\n // WS and \"+\" would otherwise be interpreted as selector separators.\n this._content = selector.replace(/(:nth-[-\\w]+)(\\([^)]+\\))/g, (_, pseudo, exp) => {\n const replaceBy = `__ph-${this.index}__`;\n this.placeholders.push(exp);\n this.index++;\n return pseudo + replaceBy;\n });\n }\n\n restore(content: string): string {\n return content.replace(/__ph-(\\d+)__/g, (_ph, index) => this.placeholders[+index]);\n }\n\n content(): string {\n return this._content;\n }\n\n /**\n * Replaces all of the substrings that match a regex within a\n * special string (e.g. `__ph-0__`, `__ph-1__`, etc).\n */\n private _escapeRegexMatches(content: string, pattern: RegExp): string {\n return content.replace(pattern, (_, keep) => {\n const replaceBy = `__ph-${this.index}__`;\n this.placeholders.push(keep);\n this.index++;\n return replaceBy;\n });\n }\n}\n\nconst _cssContentNextSelectorRe =\n /polyfill-next-selector[^}]*content:[\\s]*?(['\"])(.*?)\\1[;\\s]*}([^{]*?){/gim;\nconst _cssContentRuleRe = /(polyfill-rule)[^}]*(content:[\\s]*(['\"])(.*?)\\3)[;\\s]*[^}]*}/gim;\nconst _cssContentUnscopedRuleRe =\n /(polyfill-unscoped-rule)[^}]*(content:[\\s]*(['\"])(.*?)\\3)[;\\s]*[^}]*}/gim;\nconst _polyfillHost = '-shadowcsshost';\n// note: :host-context pre-processed to -shadowcsshostcontext.\nconst _polyfillHostContext = '-shadowcsscontext';\nconst _parenSuffix = '(?:\\\\((' +\n '(?:\\\\([^)(]*\\\\)|[^)(]*)+?' +\n ')\\\\))?([^,{]*)';\nconst _cssColonHostRe = new RegExp(_polyfillHost + _parenSuffix, 'gim');\nconst _cssColonHostContextReGlobal = new RegExp(_polyfillHostContext + _parenSuffix, 'gim');\nconst _cssColonHostContextRe = new RegExp(_polyfillHostContext + _parenSuffix, 'im');\nconst _polyfillHostNoCombinator = _polyfillHost + '-no-combinator';\nconst _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\\s]*)/;\nconst _shadowDOMSelectorsRe = [\n /::shadow/g,\n /::content/g,\n // Deprecated selectors\n /\\/shadow-deep\\//g,\n /\\/shadow\\//g,\n];\n\n// The deep combinator is deprecated in the CSS spec\n// Support for `>>>`, `deep`, `::ng-deep` is then also deprecated and will be removed in the future.\n// see https://github.com/angular/angular/pull/17677\nconst _shadowDeepSelectors = /(?:>>>)|(?:\\/deep\\/)|(?:::ng-deep)/g;\nconst _selectorReSuffix = '([>\\\\s~+[.,{:][\\\\s\\\\S]*)?$';\nconst _polyfillHostRe = /-shadowcsshost/gim;\nconst _colonHostRe = /:host/gim;\nconst _colonHostContextRe = /:host-context/gim;\n\nconst _commentRe = /\\/\\*[\\s\\S]*?\\*\\//g;\n\nfunction stripComments(input: string): string {\n return input.replace(_commentRe, '');\n}\n\nconst _commentWithHashRe = /\\/\\*\\s*#\\s*source(Mapping)?URL=[\\s\\S]+?\\*\\//g;\n\nfunction extractCommentsWithHash(input: string): string[] {\n return input.match(_commentWithHashRe) || [];\n}\n\nconst BLOCK_PLACEHOLDER = '%BLOCK%';\nconst QUOTE_PLACEHOLDER = '%QUOTED%';\nconst _ruleRe = /(\\s*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))/g;\nconst _quotedRe = /%QUOTED%/g;\nconst CONTENT_PAIRS = new Map([['{', '}']]);\nconst QUOTE_PAIRS = new Map([[`\"`, `\"`], [`'`, `'`]]);\n\nexport class CssRule {\n constructor(public selector: string, public content: string) {}\n}\n\nexport function processRules(input: string, ruleCallback: (rule: CssRule) => CssRule): string {\n const inputWithEscapedQuotes = escapeBlocks(input, QUOTE_PAIRS, QUOTE_PLACEHOLDER);\n const inputWithEscapedBlocks =\n escapeBlocks(inputWithEscapedQuotes.escapedString, CONTENT_PAIRS, BLOCK_PLACEHOLDER);\n let nextBlockIndex = 0;\n let nextQuoteIndex = 0;\n return inputWithEscapedBlocks.escapedString\n .replace(\n _ruleRe,\n (...m: string[]) => {\n const selector = m[2];\n let content = '';\n let suffix = m[4];\n let contentPrefix = '';\n if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) {\n content = inputWithEscapedBlocks.blocks[nextBlockIndex++];\n suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);\n contentPrefix = '{';\n }\n const rule = ruleCallback(new CssRule(selector, content));\n return `${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`;\n })\n .replace(_quotedRe, () => inputWithEscapedQuotes.blocks[nextQuoteIndex++]);\n}\n\nclass StringWithEscapedBlocks {\n constructor(public escapedString: string, public blocks: string[]) {}\n}\n\nfunction escapeBlocks(\n input: string, charPairs: Map, placeholder: string): StringWithEscapedBlocks {\n const resultParts: string[] = [];\n const escapedBlocks: string[] = [];\n let openCharCount = 0;\n let nonBlockStartIndex = 0;\n let blockStartIndex = -1;\n let openChar: string|undefined;\n let closeChar: string|undefined;\n for (let i = 0; i < input.length; i++) {\n const char = input[i];\n if (char === '\\\\') {\n i++;\n } else if (char === closeChar) {\n openCharCount--;\n if (openCharCount === 0) {\n escapedBlocks.push(input.substring(blockStartIndex, i));\n resultParts.push(placeholder);\n nonBlockStartIndex = i;\n blockStartIndex = -1;\n openChar = closeChar = undefined;\n }\n } else if (char === openChar) {\n openCharCount++;\n } else if (openCharCount === 0 && charPairs.has(char)) {\n openChar = char;\n closeChar = charPairs.get(char);\n openCharCount = 1;\n blockStartIndex = i + 1;\n resultParts.push(input.substring(nonBlockStartIndex, blockStartIndex));\n }\n }\n if (blockStartIndex !== -1) {\n escapedBlocks.push(input.substring(blockStartIndex));\n resultParts.push(placeholder);\n } else {\n resultParts.push(input.substring(nonBlockStartIndex));\n }\n return new StringWithEscapedBlocks(resultParts.join(''), escapedBlocks);\n}\n\n/**\n * Combine the `contextSelectors` with the `hostMarker` and the `otherSelectors`\n * to create a selector that matches the same as `:host-context()`.\n *\n * Given a single context selector `A` we need to output selectors that match on the host and as an\n * ancestor of the host:\n *\n * ```\n * A , A {}\n * ```\n *\n * When there is more than one context selector we also have to create combinations of those\n * selectors with each other. For example if there are `A` and `B` selectors the output is:\n *\n * ```\n * AB, AB , A B,\n * B A, A B , B A {}\n * ```\n *\n * And so on...\n *\n * @param hostMarker the string that selects the host element.\n * @param contextSelectors an array of context selectors that will be combined.\n * @param otherSelectors the rest of the selectors that are not context selectors.\n */\nfunction combineHostContextSelectors(contextSelectors: string[], otherSelectors: string): string {\n const hostMarker = _polyfillHostNoCombinator;\n _polyfillHostRe.lastIndex = 0; // reset the regex to ensure we get an accurate test\n const otherSelectorsHasHost = _polyfillHostRe.test(otherSelectors);\n\n // If there are no context selectors then just output a host marker\n if (contextSelectors.length === 0) {\n return hostMarker + otherSelectors;\n }\n\n const combined: string[] = [contextSelectors.pop() || ''];\n while (contextSelectors.length > 0) {\n const length = combined.length;\n const contextSelector = contextSelectors.pop();\n for (let i = 0; i < length; i++) {\n const previousSelectors = combined[i];\n // Add the new selector as a descendant of the previous selectors\n combined[length * 2 + i] = previousSelectors + ' ' + contextSelector;\n // Add the new selector as an ancestor of the previous selectors\n combined[length + i] = contextSelector + ' ' + previousSelectors;\n // Add the new selector to act on the same element as the previous selectors\n combined[i] = contextSelector + previousSelectors;\n }\n }\n // Finally connect the selector to the `hostMarker`s: either acting directly on the host\n // (A) or as an ancestor (A ).\n return combined\n .map(\n s => otherSelectorsHasHost ?\n `${s}${otherSelectors}` :\n `${s}${hostMarker}${otherSelectors}, ${s} ${hostMarker}${otherSelectors}`)\n .join(',');\n}\n\n/**\n * Mutate the given `groups` array so that there are `multiples` clones of the original array\n * stored.\n *\n * For example `repeatGroups([a, b], 3)` will result in `[a, b, a, b, a, b]` - but importantly the\n * newly added groups will be clones of the original.\n *\n * @param groups An array of groups of strings that will be repeated. This array is mutated\n * in-place.\n * @param multiples The number of times the current groups should appear.\n */\nexport function repeatGroups(groups: string[][], multiples: number): void {\n const length = groups.length;\n for (let i = 1; i < multiples; i++) {\n for (let j = 0; j < length; j++) {\n groups[j + (i * length)] = groups[j].slice(0);\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\nconst enum Char {\n OpenParen = 40,\n CloseParen = 41,\n Colon = 58,\n Semicolon = 59,\n BackSlash = 92,\n QuoteNone = 0, // indicating we are not inside a quote\n QuoteDouble = 34,\n QuoteSingle = 39,\n}\n\n\n/**\n * Parses string representation of a style and converts it into object literal.\n *\n * @param value string representation of style as used in the `style` attribute in HTML.\n * Example: `color: red; height: auto`.\n * @returns An array of style property name and value pairs, e.g. `['color', 'red', 'height',\n * 'auto']`\n */\nexport function parse(value: string): string[] {\n // we use a string array here instead of a string map\n // because a string-map is not guaranteed to retain the\n // order of the entries whereas a string array can be\n // constructed in a [key, value, key, value] format.\n const styles: string[] = [];\n\n let i = 0;\n let parenDepth = 0;\n let quote: Char = Char.QuoteNone;\n let valueStart = 0;\n let propStart = 0;\n let currentProp: string|null = null;\n let valueHasQuotes = false;\n while (i < value.length) {\n const token = value.charCodeAt(i++) as Char;\n switch (token) {\n case Char.OpenParen:\n parenDepth++;\n break;\n case Char.CloseParen:\n parenDepth--;\n break;\n case Char.QuoteSingle:\n // valueStart needs to be there since prop values don't\n // have quotes in CSS\n valueHasQuotes = valueHasQuotes || valueStart > 0;\n if (quote === Char.QuoteNone) {\n quote = Char.QuoteSingle;\n } else if (quote === Char.QuoteSingle && value.charCodeAt(i - 1) !== Char.BackSlash) {\n quote = Char.QuoteNone;\n }\n break;\n case Char.QuoteDouble:\n // same logic as above\n valueHasQuotes = valueHasQuotes || valueStart > 0;\n if (quote === Char.QuoteNone) {\n quote = Char.QuoteDouble;\n } else if (quote === Char.QuoteDouble && value.charCodeAt(i - 1) !== Char.BackSlash) {\n quote = Char.QuoteNone;\n }\n break;\n case Char.Colon:\n if (!currentProp && parenDepth === 0 && quote === Char.QuoteNone) {\n currentProp = hyphenate(value.substring(propStart, i - 1).trim());\n valueStart = i;\n }\n break;\n case Char.Semicolon:\n if (currentProp && valueStart > 0 && parenDepth === 0 && quote === Char.QuoteNone) {\n const styleVal = value.substring(valueStart, i - 1).trim();\n styles.push(currentProp, valueHasQuotes ? stripUnnecessaryQuotes(styleVal) : styleVal);\n propStart = i;\n valueStart = 0;\n currentProp = null;\n valueHasQuotes = false;\n }\n break;\n }\n }\n\n if (currentProp && valueStart) {\n const styleVal = value.substr(valueStart).trim();\n styles.push(currentProp, valueHasQuotes ? stripUnnecessaryQuotes(styleVal) : styleVal);\n }\n\n return styles;\n}\n\nexport function stripUnnecessaryQuotes(value: string): string {\n const qS = value.charCodeAt(0);\n const qE = value.charCodeAt(value.length - 1);\n if (qS == qE && (qS == Char.QuoteSingle || qS == Char.QuoteDouble)) {\n const tempValue = value.substring(1, value.length - 1);\n // special case to avoid using a multi-quoted string that was just chomped\n // (e.g. `font-family: \"Verdana\", \"sans-serif\"`)\n if (tempValue.indexOf('\\'') == -1 && tempValue.indexOf('\"') == -1) {\n value = tempValue;\n }\n }\n return value;\n}\n\nexport function hyphenate(value: string): string {\n return value\n .replace(\n /[a-z][A-Z]/g,\n v => {\n return v.charAt(0) + '-' + v.charAt(1);\n })\n .toLowerCase();\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {AttributeMarker} from '../../core';\nimport {AST, ASTWithSource, BindingPipe, BindingType, EmptyExpr, Interpolation} from '../../expression_parser/ast';\nimport * as o from '../../output/output_ast';\nimport {ParseSourceSpan} from '../../parse_util';\nimport * as t from '../r3_ast';\nimport {Identifiers as R3} from '../r3_identifiers';\n\nimport {hyphenate, parse as parseStyle} from './style_parser';\nimport {ValueConverter} from './template';\nimport {DefinitionMap, getInterpolationArgsLength} from './util';\n\nconst IMPORTANT_FLAG = '!important';\n\n/**\n * Minimum amount of binding slots required in the runtime for style/class bindings.\n *\n * Styling in Angular uses up two slots in the runtime LView/TData data structures to\n * record binding data, property information and metadata.\n *\n * When a binding is registered it will place the following information in the `LView`:\n *\n * slot 1) binding value\n * slot 2) cached value (all other values collected before it in string form)\n *\n * When a binding is registered it will place the following information in the `TData`:\n *\n * slot 1) prop name\n * slot 2) binding index that points to the previous style/class binding (and some extra config\n * values)\n *\n * Let's imagine we have a binding that looks like so:\n *\n * ```\n *
    \n * ```\n *\n * Our `LView` and `TData` data-structures look like so:\n *\n * ```typescript\n * LView = [\n * // ...\n * x, // value of x\n * \"width: x\",\n *\n * y, // value of y\n * \"width: x; height: y\",\n * // ...\n * ];\n *\n * TData = [\n * // ...\n * \"width\", // binding slot 20\n * 0,\n *\n * \"height\",\n * 20,\n * // ...\n * ];\n * ```\n *\n * */\nexport const MIN_STYLING_BINDING_SLOTS_REQUIRED = 2;\n\n/**\n * A styling expression summary that is to be processed by the compiler\n */\nexport interface StylingInstruction {\n reference: o.ExternalReference;\n /** Calls to individual styling instructions. Used when chaining calls to the same instruction. */\n calls: StylingInstructionCall[];\n}\n\nexport interface StylingInstructionCall {\n sourceSpan: ParseSourceSpan|null;\n supportsInterpolation: boolean;\n allocateBindingSlots: number;\n params: ((convertFn: (value: any) => o.Expression | o.Expression[]) => o.Expression[]);\n}\n\n/**\n * An internal record of the input data for a styling binding\n */\ninterface BoundStylingEntry {\n hasOverrideFlag: boolean;\n name: string|null;\n suffix: string|null;\n sourceSpan: ParseSourceSpan;\n value: AST;\n}\n\n/**\n * Produces creation/update instructions for all styling bindings (class and style)\n *\n * It also produces the creation instruction to register all initial styling values\n * (which are all the static class=\"...\" and style=\"...\" attribute values that exist\n * on an element within a template).\n *\n * The builder class below handles producing instructions for the following cases:\n *\n * - Static style/class attributes (style=\"...\" and class=\"...\")\n * - Dynamic style/class map bindings ([style]=\"map\" and [class]=\"map|string\")\n * - Dynamic style/class property bindings ([style.prop]=\"exp\" and [class.name]=\"exp\")\n *\n * Due to the complex relationship of all of these cases, the instructions generated\n * for these attributes/properties/bindings must be done so in the correct order. The\n * order which these must be generated is as follows:\n *\n * if (createMode) {\n * styling(...)\n * }\n * if (updateMode) {\n * styleMap(...)\n * classMap(...)\n * styleProp(...)\n * classProp(...)\n * }\n *\n * The creation/update methods within the builder class produce these instructions.\n */\nexport class StylingBuilder {\n /** Whether or not there are any static styling values present */\n private _hasInitialValues = false;\n /**\n * Whether or not there are any styling bindings present\n * (i.e. `[style]`, `[class]`, `[style.prop]` or `[class.name]`)\n */\n public hasBindings = false;\n public hasBindingsWithPipes = false;\n\n /** the input for [class] (if it exists) */\n private _classMapInput: BoundStylingEntry|null = null;\n /** the input for [style] (if it exists) */\n private _styleMapInput: BoundStylingEntry|null = null;\n /** an array of each [style.prop] input */\n private _singleStyleInputs: BoundStylingEntry[]|null = null;\n /** an array of each [class.name] input */\n private _singleClassInputs: BoundStylingEntry[]|null = null;\n private _lastStylingInput: BoundStylingEntry|null = null;\n private _firstStylingInput: BoundStylingEntry|null = null;\n\n // maps are used instead of hash maps because a Map will\n // retain the ordering of the keys\n\n /**\n * Represents the location of each style binding in the template\n * (e.g. `
    ` implies\n * that `width=0` and `height=1`)\n */\n private _stylesIndex = new Map();\n\n /**\n * Represents the location of each class binding in the template\n * (e.g. `
    ` implies\n * that `big=0` and `hidden=1`)\n */\n private _classesIndex = new Map();\n private _initialStyleValues: string[] = [];\n private _initialClassValues: string[] = [];\n\n constructor(private _directiveExpr: o.Expression|null) {}\n\n /**\n * Registers a given input to the styling builder to be later used when producing AOT code.\n *\n * The code below will only accept the input if it is somehow tied to styling (whether it be\n * style/class bindings or static style/class attributes).\n */\n registerBoundInput(input: t.BoundAttribute): boolean {\n // [attr.style] or [attr.class] are skipped in the code below,\n // they should not be treated as styling-based bindings since\n // they are intended to be written directly to the attr and\n // will therefore skip all style/class resolution that is present\n // with style=\"\", [style]=\"\" and [style.prop]=\"\", class=\"\",\n // [class.prop]=\"\". [class]=\"\" assignments\n let binding: BoundStylingEntry|null = null;\n let name = input.name;\n switch (input.type) {\n case BindingType.Property:\n binding = this.registerInputBasedOnName(name, input.value, input.sourceSpan);\n break;\n case BindingType.Style:\n binding = this.registerStyleInput(name, false, input.value, input.sourceSpan, input.unit);\n break;\n case BindingType.Class:\n binding = this.registerClassInput(name, false, input.value, input.sourceSpan);\n break;\n }\n return binding ? true : false;\n }\n\n registerInputBasedOnName(name: string, expression: AST, sourceSpan: ParseSourceSpan) {\n let binding: BoundStylingEntry|null = null;\n const prefix = name.substring(0, 6);\n const isStyle = name === 'style' || prefix === 'style.' || prefix === 'style!';\n const isClass = !isStyle && (name === 'class' || prefix === 'class.' || prefix === 'class!');\n if (isStyle || isClass) {\n const isMapBased = name.charAt(5) !== '.'; // style.prop or class.prop makes this a no\n const property = name.substr(isMapBased ? 5 : 6); // the dot explains why there's a +1\n if (isStyle) {\n binding = this.registerStyleInput(property, isMapBased, expression, sourceSpan);\n } else {\n binding = this.registerClassInput(property, isMapBased, expression, sourceSpan);\n }\n }\n return binding;\n }\n\n registerStyleInput(\n name: string, isMapBased: boolean, value: AST, sourceSpan: ParseSourceSpan,\n suffix?: string|null): BoundStylingEntry|null {\n if (isEmptyExpression(value)) {\n return null;\n }\n // CSS custom properties are case-sensitive so we shouldn't normalize them.\n // See: https://www.w3.org/TR/css-variables-1/#defining-variables\n if (!isCssCustomProperty(name)) {\n name = hyphenate(name);\n }\n const {property, hasOverrideFlag, suffix: bindingSuffix} = parseProperty(name);\n suffix = typeof suffix === 'string' && suffix.length !== 0 ? suffix : bindingSuffix;\n const entry:\n BoundStylingEntry = {name: property, suffix: suffix, value, sourceSpan, hasOverrideFlag};\n if (isMapBased) {\n this._styleMapInput = entry;\n } else {\n (this._singleStyleInputs = this._singleStyleInputs || []).push(entry);\n registerIntoMap(this._stylesIndex, property);\n }\n this._lastStylingInput = entry;\n this._firstStylingInput = this._firstStylingInput || entry;\n this._checkForPipes(value);\n this.hasBindings = true;\n return entry;\n }\n\n registerClassInput(name: string, isMapBased: boolean, value: AST, sourceSpan: ParseSourceSpan):\n BoundStylingEntry|null {\n if (isEmptyExpression(value)) {\n return null;\n }\n const {property, hasOverrideFlag} = parseProperty(name);\n const entry:\n BoundStylingEntry = {name: property, value, sourceSpan, hasOverrideFlag, suffix: null};\n if (isMapBased) {\n this._classMapInput = entry;\n } else {\n (this._singleClassInputs = this._singleClassInputs || []).push(entry);\n registerIntoMap(this._classesIndex, property);\n }\n this._lastStylingInput = entry;\n this._firstStylingInput = this._firstStylingInput || entry;\n this._checkForPipes(value);\n this.hasBindings = true;\n return entry;\n }\n\n private _checkForPipes(value: AST) {\n if ((value instanceof ASTWithSource) && (value.ast instanceof BindingPipe)) {\n this.hasBindingsWithPipes = true;\n }\n }\n\n /**\n * Registers the element's static style string value to the builder.\n *\n * @param value the style string (e.g. `width:100px; height:200px;`)\n */\n registerStyleAttr(value: string) {\n this._initialStyleValues = parseStyle(value);\n this._hasInitialValues = true;\n }\n\n /**\n * Registers the element's static class string value to the builder.\n *\n * @param value the className string (e.g. `disabled gold zoom`)\n */\n registerClassAttr(value: string) {\n this._initialClassValues = value.trim().split(/\\s+/g);\n this._hasInitialValues = true;\n }\n\n /**\n * Appends all styling-related expressions to the provided attrs array.\n *\n * @param attrs an existing array where each of the styling expressions\n * will be inserted into.\n */\n populateInitialStylingAttrs(attrs: o.Expression[]): void {\n // [CLASS_MARKER, 'foo', 'bar', 'baz' ...]\n if (this._initialClassValues.length) {\n attrs.push(o.literal(AttributeMarker.Classes));\n for (let i = 0; i < this._initialClassValues.length; i++) {\n attrs.push(o.literal(this._initialClassValues[i]));\n }\n }\n\n // [STYLE_MARKER, 'width', '200px', 'height', '100px', ...]\n if (this._initialStyleValues.length) {\n attrs.push(o.literal(AttributeMarker.Styles));\n for (let i = 0; i < this._initialStyleValues.length; i += 2) {\n attrs.push(\n o.literal(this._initialStyleValues[i]), o.literal(this._initialStyleValues[i + 1]));\n }\n }\n }\n\n /**\n * Builds an instruction with all the expressions and parameters for `elementHostAttrs`.\n *\n * The instruction generation code below is used for producing the AOT statement code which is\n * responsible for registering initial styles (within a directive hostBindings' creation block),\n * as well as any of the provided attribute values, to the directive host element.\n */\n assignHostAttrs(attrs: o.Expression[], definitionMap: DefinitionMap): void {\n if (this._directiveExpr && (attrs.length || this._hasInitialValues)) {\n this.populateInitialStylingAttrs(attrs);\n definitionMap.set('hostAttrs', o.literalArr(attrs));\n }\n }\n\n /**\n * Builds an instruction with all the expressions and parameters for `classMap`.\n *\n * The instruction data will contain all expressions for `classMap` to function\n * which includes the `[class]` expression params.\n */\n buildClassMapInstruction(valueConverter: ValueConverter): StylingInstruction|null {\n if (this._classMapInput) {\n return this._buildMapBasedInstruction(valueConverter, true, this._classMapInput);\n }\n return null;\n }\n\n /**\n * Builds an instruction with all the expressions and parameters for `styleMap`.\n *\n * The instruction data will contain all expressions for `styleMap` to function\n * which includes the `[style]` expression params.\n */\n buildStyleMapInstruction(valueConverter: ValueConverter): StylingInstruction|null {\n if (this._styleMapInput) {\n return this._buildMapBasedInstruction(valueConverter, false, this._styleMapInput);\n }\n return null;\n }\n\n private _buildMapBasedInstruction(\n valueConverter: ValueConverter, isClassBased: boolean,\n stylingInput: BoundStylingEntry): StylingInstruction {\n // each styling binding value is stored in the LView\n // map-based bindings allocate two slots: one for the\n // previous binding value and another for the previous\n // className or style attribute value.\n let totalBindingSlotsRequired = MIN_STYLING_BINDING_SLOTS_REQUIRED;\n\n // these values must be outside of the update block so that they can\n // be evaluated (the AST visit call) during creation time so that any\n // pipes can be picked up in time before the template is built\n const mapValue = stylingInput.value.visit(valueConverter);\n let reference: o.ExternalReference;\n if (mapValue instanceof Interpolation) {\n totalBindingSlotsRequired += mapValue.expressions.length;\n reference = isClassBased ? getClassMapInterpolationExpression(mapValue) :\n getStyleMapInterpolationExpression(mapValue);\n } else {\n reference = isClassBased ? R3.classMap : R3.styleMap;\n }\n\n return {\n reference,\n calls: [{\n supportsInterpolation: true,\n sourceSpan: stylingInput.sourceSpan,\n allocateBindingSlots: totalBindingSlotsRequired,\n params: (convertFn: (value: any) => o.Expression|o.Expression[]) => {\n const convertResult = convertFn(mapValue);\n const params = Array.isArray(convertResult) ? convertResult : [convertResult];\n return params;\n }\n }]\n };\n }\n\n private _buildSingleInputs(\n reference: o.ExternalReference, inputs: BoundStylingEntry[], valueConverter: ValueConverter,\n getInterpolationExpressionFn: ((value: Interpolation) => o.ExternalReference)|null,\n isClassBased: boolean): StylingInstruction[] {\n const instructions: StylingInstruction[] = [];\n\n inputs.forEach(input => {\n const previousInstruction: StylingInstruction|undefined =\n instructions[instructions.length - 1];\n const value = input.value.visit(valueConverter);\n let referenceForCall = reference;\n\n // each styling binding value is stored in the LView\n // but there are two values stored for each binding:\n // 1) the value itself\n // 2) an intermediate value (concatenation of style up to this point).\n // We need to store the intermediate value so that we don't allocate\n // the strings on each CD.\n let totalBindingSlotsRequired = MIN_STYLING_BINDING_SLOTS_REQUIRED;\n\n if (value instanceof Interpolation) {\n totalBindingSlotsRequired += value.expressions.length;\n\n if (getInterpolationExpressionFn) {\n referenceForCall = getInterpolationExpressionFn(value);\n }\n }\n\n const call = {\n sourceSpan: input.sourceSpan,\n allocateBindingSlots: totalBindingSlotsRequired,\n supportsInterpolation: !!getInterpolationExpressionFn,\n params: (convertFn: (value: any) => o.Expression | o.Expression[]) => {\n // params => stylingProp(propName, value, suffix)\n const params: o.Expression[] = [];\n params.push(o.literal(input.name));\n\n const convertResult = convertFn(value);\n if (Array.isArray(convertResult)) {\n params.push(...convertResult);\n } else {\n params.push(convertResult);\n }\n\n // [style.prop] bindings may use suffix values (e.g. px, em, etc...), therefore,\n // if that is detected then we need to pass that in as an optional param.\n if (!isClassBased && input.suffix !== null) {\n params.push(o.literal(input.suffix));\n }\n\n return params;\n }\n };\n\n // If we ended up generating a call to the same instruction as the previous styling property\n // we can chain the calls together safely to save some bytes, otherwise we have to generate\n // a separate instruction call. This is primarily a concern with interpolation instructions\n // where we may start off with one `reference`, but end up using another based on the\n // number of interpolations.\n if (previousInstruction && previousInstruction.reference === referenceForCall) {\n previousInstruction.calls.push(call);\n } else {\n instructions.push({reference: referenceForCall, calls: [call]});\n }\n });\n\n return instructions;\n }\n\n private _buildClassInputs(valueConverter: ValueConverter): StylingInstruction[] {\n if (this._singleClassInputs) {\n return this._buildSingleInputs(\n R3.classProp, this._singleClassInputs, valueConverter, null, true);\n }\n return [];\n }\n\n private _buildStyleInputs(valueConverter: ValueConverter): StylingInstruction[] {\n if (this._singleStyleInputs) {\n return this._buildSingleInputs(\n R3.styleProp, this._singleStyleInputs, valueConverter,\n getStylePropInterpolationExpression, false);\n }\n return [];\n }\n\n /**\n * Constructs all instructions which contain the expressions that will be placed\n * into the update block of a template function or a directive hostBindings function.\n */\n buildUpdateLevelInstructions(valueConverter: ValueConverter) {\n const instructions: StylingInstruction[] = [];\n if (this.hasBindings) {\n const styleMapInstruction = this.buildStyleMapInstruction(valueConverter);\n if (styleMapInstruction) {\n instructions.push(styleMapInstruction);\n }\n const classMapInstruction = this.buildClassMapInstruction(valueConverter);\n if (classMapInstruction) {\n instructions.push(classMapInstruction);\n }\n instructions.push(...this._buildStyleInputs(valueConverter));\n instructions.push(...this._buildClassInputs(valueConverter));\n }\n return instructions;\n }\n}\n\nfunction registerIntoMap(map: Map, key: string) {\n if (!map.has(key)) {\n map.set(key, map.size);\n }\n}\n\nexport function parseProperty(name: string):\n {property: string, suffix: string|null, hasOverrideFlag: boolean} {\n let hasOverrideFlag = false;\n const overrideIndex = name.indexOf(IMPORTANT_FLAG);\n if (overrideIndex !== -1) {\n name = overrideIndex > 0 ? name.substring(0, overrideIndex) : '';\n hasOverrideFlag = true;\n }\n\n let suffix: string|null = null;\n let property = name;\n const unitIndex = name.lastIndexOf('.');\n if (unitIndex > 0) {\n suffix = name.substr(unitIndex + 1);\n property = name.substring(0, unitIndex);\n }\n\n return {property, suffix, hasOverrideFlag};\n}\n\n/**\n * Gets the instruction to generate for an interpolated class map.\n * @param interpolation An Interpolation AST\n */\nfunction getClassMapInterpolationExpression(interpolation: Interpolation): o.ExternalReference {\n switch (getInterpolationArgsLength(interpolation)) {\n case 1:\n return R3.classMap;\n case 3:\n return R3.classMapInterpolate1;\n case 5:\n return R3.classMapInterpolate2;\n case 7:\n return R3.classMapInterpolate3;\n case 9:\n return R3.classMapInterpolate4;\n case 11:\n return R3.classMapInterpolate5;\n case 13:\n return R3.classMapInterpolate6;\n case 15:\n return R3.classMapInterpolate7;\n case 17:\n return R3.classMapInterpolate8;\n default:\n return R3.classMapInterpolateV;\n }\n}\n\n/**\n * Gets the instruction to generate for an interpolated style map.\n * @param interpolation An Interpolation AST\n */\nfunction getStyleMapInterpolationExpression(interpolation: Interpolation): o.ExternalReference {\n switch (getInterpolationArgsLength(interpolation)) {\n case 1:\n return R3.styleMap;\n case 3:\n return R3.styleMapInterpolate1;\n case 5:\n return R3.styleMapInterpolate2;\n case 7:\n return R3.styleMapInterpolate3;\n case 9:\n return R3.styleMapInterpolate4;\n case 11:\n return R3.styleMapInterpolate5;\n case 13:\n return R3.styleMapInterpolate6;\n case 15:\n return R3.styleMapInterpolate7;\n case 17:\n return R3.styleMapInterpolate8;\n default:\n return R3.styleMapInterpolateV;\n }\n}\n\n/**\n * Gets the instruction to generate for an interpolated style prop.\n * @param interpolation An Interpolation AST\n */\nfunction getStylePropInterpolationExpression(interpolation: Interpolation) {\n switch (getInterpolationArgsLength(interpolation)) {\n case 1:\n return R3.styleProp;\n case 3:\n return R3.stylePropInterpolate1;\n case 5:\n return R3.stylePropInterpolate2;\n case 7:\n return R3.stylePropInterpolate3;\n case 9:\n return R3.stylePropInterpolate4;\n case 11:\n return R3.stylePropInterpolate5;\n case 13:\n return R3.stylePropInterpolate6;\n case 15:\n return R3.stylePropInterpolate7;\n case 17:\n return R3.stylePropInterpolate8;\n default:\n return R3.stylePropInterpolateV;\n }\n}\n\n/**\n * Checks whether property name is a custom CSS property.\n * See: https://www.w3.org/TR/css-variables-1\n */\nfunction isCssCustomProperty(name: string): boolean {\n return name.startsWith('--');\n}\n\nfunction isEmptyExpression(ast: AST): boolean {\n if (ast instanceof ASTWithSource) {\n ast = ast.ast;\n }\n return ast instanceof EmptyExpr;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport * as chars from '../chars';\n\nexport enum TokenType {\n Character,\n Identifier,\n PrivateIdentifier,\n Keyword,\n String,\n Operator,\n Number,\n Error\n}\n\nconst KEYWORDS = ['var', 'let', 'as', 'null', 'undefined', 'true', 'false', 'if', 'else', 'this'];\n\nexport class Lexer {\n tokenize(text: string): Token[] {\n const scanner = new _Scanner(text);\n const tokens: Token[] = [];\n let token = scanner.scanToken();\n while (token != null) {\n tokens.push(token);\n token = scanner.scanToken();\n }\n return tokens;\n }\n}\n\nexport class Token {\n constructor(\n public index: number, public end: number, public type: TokenType, public numValue: number,\n public strValue: string) {}\n\n isCharacter(code: number): boolean {\n return this.type == TokenType.Character && this.numValue == code;\n }\n\n isNumber(): boolean {\n return this.type == TokenType.Number;\n }\n\n isString(): boolean {\n return this.type == TokenType.String;\n }\n\n isOperator(operator: string): boolean {\n return this.type == TokenType.Operator && this.strValue == operator;\n }\n\n isIdentifier(): boolean {\n return this.type == TokenType.Identifier;\n }\n\n isPrivateIdentifier(): boolean {\n return this.type == TokenType.PrivateIdentifier;\n }\n\n isKeyword(): boolean {\n return this.type == TokenType.Keyword;\n }\n\n isKeywordLet(): boolean {\n return this.type == TokenType.Keyword && this.strValue == 'let';\n }\n\n isKeywordAs(): boolean {\n return this.type == TokenType.Keyword && this.strValue == 'as';\n }\n\n isKeywordNull(): boolean {\n return this.type == TokenType.Keyword && this.strValue == 'null';\n }\n\n isKeywordUndefined(): boolean {\n return this.type == TokenType.Keyword && this.strValue == 'undefined';\n }\n\n isKeywordTrue(): boolean {\n return this.type == TokenType.Keyword && this.strValue == 'true';\n }\n\n isKeywordFalse(): boolean {\n return this.type == TokenType.Keyword && this.strValue == 'false';\n }\n\n isKeywordThis(): boolean {\n return this.type == TokenType.Keyword && this.strValue == 'this';\n }\n\n isError(): boolean {\n return this.type == TokenType.Error;\n }\n\n toNumber(): number {\n return this.type == TokenType.Number ? this.numValue : -1;\n }\n\n toString(): string|null {\n switch (this.type) {\n case TokenType.Character:\n case TokenType.Identifier:\n case TokenType.Keyword:\n case TokenType.Operator:\n case TokenType.PrivateIdentifier:\n case TokenType.String:\n case TokenType.Error:\n return this.strValue;\n case TokenType.Number:\n return this.numValue.toString();\n default:\n return null;\n }\n }\n}\n\nfunction newCharacterToken(index: number, end: number, code: number): Token {\n return new Token(index, end, TokenType.Character, code, String.fromCharCode(code));\n}\n\nfunction newIdentifierToken(index: number, end: number, text: string): Token {\n return new Token(index, end, TokenType.Identifier, 0, text);\n}\n\nfunction newPrivateIdentifierToken(index: number, end: number, text: string): Token {\n return new Token(index, end, TokenType.PrivateIdentifier, 0, text);\n}\n\nfunction newKeywordToken(index: number, end: number, text: string): Token {\n return new Token(index, end, TokenType.Keyword, 0, text);\n}\n\nfunction newOperatorToken(index: number, end: number, text: string): Token {\n return new Token(index, end, TokenType.Operator, 0, text);\n}\n\nfunction newStringToken(index: number, end: number, text: string): Token {\n return new Token(index, end, TokenType.String, 0, text);\n}\n\nfunction newNumberToken(index: number, end: number, n: number): Token {\n return new Token(index, end, TokenType.Number, n, '');\n}\n\nfunction newErrorToken(index: number, end: number, message: string): Token {\n return new Token(index, end, TokenType.Error, 0, message);\n}\n\nexport const EOF: Token = new Token(-1, -1, TokenType.Character, 0, '');\n\nclass _Scanner {\n length: number;\n peek: number = 0;\n index: number = -1;\n\n constructor(public input: string) {\n this.length = input.length;\n this.advance();\n }\n\n advance() {\n this.peek = ++this.index >= this.length ? chars.$EOF : this.input.charCodeAt(this.index);\n }\n\n scanToken(): Token|null {\n const input = this.input, length = this.length;\n let peek = this.peek, index = this.index;\n\n // Skip whitespace.\n while (peek <= chars.$SPACE) {\n if (++index >= length) {\n peek = chars.$EOF;\n break;\n } else {\n peek = input.charCodeAt(index);\n }\n }\n\n this.peek = peek;\n this.index = index;\n\n if (index >= length) {\n return null;\n }\n\n // Handle identifiers and numbers.\n if (isIdentifierStart(peek)) return this.scanIdentifier();\n if (chars.isDigit(peek)) return this.scanNumber(index);\n\n const start: number = index;\n switch (peek) {\n case chars.$PERIOD:\n this.advance();\n return chars.isDigit(this.peek) ? this.scanNumber(start) :\n newCharacterToken(start, this.index, chars.$PERIOD);\n case chars.$LPAREN:\n case chars.$RPAREN:\n case chars.$LBRACE:\n case chars.$RBRACE:\n case chars.$LBRACKET:\n case chars.$RBRACKET:\n case chars.$COMMA:\n case chars.$COLON:\n case chars.$SEMICOLON:\n return this.scanCharacter(start, peek);\n case chars.$SQ:\n case chars.$DQ:\n return this.scanString();\n case chars.$HASH:\n return this.scanPrivateIdentifier();\n case chars.$PLUS:\n case chars.$MINUS:\n case chars.$STAR:\n case chars.$SLASH:\n case chars.$PERCENT:\n case chars.$CARET:\n return this.scanOperator(start, String.fromCharCode(peek));\n case chars.$QUESTION:\n return this.scanQuestion(start);\n case chars.$LT:\n case chars.$GT:\n return this.scanComplexOperator(start, String.fromCharCode(peek), chars.$EQ, '=');\n case chars.$BANG:\n case chars.$EQ:\n return this.scanComplexOperator(\n start, String.fromCharCode(peek), chars.$EQ, '=', chars.$EQ, '=');\n case chars.$AMPERSAND:\n return this.scanComplexOperator(start, '&', chars.$AMPERSAND, '&');\n case chars.$BAR:\n return this.scanComplexOperator(start, '|', chars.$BAR, '|');\n case chars.$NBSP:\n while (chars.isWhitespace(this.peek)) this.advance();\n return this.scanToken();\n }\n\n this.advance();\n return this.error(`Unexpected character [${String.fromCharCode(peek)}]`, 0);\n }\n\n scanCharacter(start: number, code: number): Token {\n this.advance();\n return newCharacterToken(start, this.index, code);\n }\n\n\n scanOperator(start: number, str: string): Token {\n this.advance();\n return newOperatorToken(start, this.index, str);\n }\n\n /**\n * Tokenize a 2/3 char long operator\n *\n * @param start start index in the expression\n * @param one first symbol (always part of the operator)\n * @param twoCode code point for the second symbol\n * @param two second symbol (part of the operator when the second code point matches)\n * @param threeCode code point for the third symbol\n * @param three third symbol (part of the operator when provided and matches source expression)\n */\n scanComplexOperator(\n start: number, one: string, twoCode: number, two: string, threeCode?: number,\n three?: string): Token {\n this.advance();\n let str: string = one;\n if (this.peek == twoCode) {\n this.advance();\n str += two;\n }\n if (threeCode != null && this.peek == threeCode) {\n this.advance();\n str += three;\n }\n return newOperatorToken(start, this.index, str);\n }\n\n scanIdentifier(): Token {\n const start: number = this.index;\n this.advance();\n while (isIdentifierPart(this.peek)) this.advance();\n const str: string = this.input.substring(start, this.index);\n return KEYWORDS.indexOf(str) > -1 ? newKeywordToken(start, this.index, str) :\n newIdentifierToken(start, this.index, str);\n }\n\n /** Scans an ECMAScript private identifier. */\n scanPrivateIdentifier(): Token {\n const start: number = this.index;\n this.advance();\n if (!isIdentifierStart(this.peek)) {\n return this.error('Invalid character [#]', -1);\n }\n while (isIdentifierPart(this.peek)) this.advance();\n const identifierName: string = this.input.substring(start, this.index);\n return newPrivateIdentifierToken(start, this.index, identifierName);\n }\n\n scanNumber(start: number): Token {\n let simple = (this.index === start);\n let hasSeparators = false;\n this.advance(); // Skip initial digit.\n while (true) {\n if (chars.isDigit(this.peek)) {\n // Do nothing.\n } else if (this.peek === chars.$_) {\n // Separators are only valid when they're surrounded by digits. E.g. `1_0_1` is\n // valid while `_101` and `101_` are not. The separator can't be next to the decimal\n // point or another separator either. Note that it's unlikely that we'll hit a case where\n // the underscore is at the start, because that's a valid identifier and it will be picked\n // up earlier in the parsing. We validate for it anyway just in case.\n if (!chars.isDigit(this.input.charCodeAt(this.index - 1)) ||\n !chars.isDigit(this.input.charCodeAt(this.index + 1))) {\n return this.error('Invalid numeric separator', 0);\n }\n hasSeparators = true;\n } else if (this.peek === chars.$PERIOD) {\n simple = false;\n } else if (isExponentStart(this.peek)) {\n this.advance();\n if (isExponentSign(this.peek)) this.advance();\n if (!chars.isDigit(this.peek)) return this.error('Invalid exponent', -1);\n simple = false;\n } else {\n break;\n }\n this.advance();\n }\n\n let str = this.input.substring(start, this.index);\n if (hasSeparators) {\n str = str.replace(/_/g, '');\n }\n const value = simple ? parseIntAutoRadix(str) : parseFloat(str);\n return newNumberToken(start, this.index, value);\n }\n\n scanString(): Token {\n const start: number = this.index;\n const quote: number = this.peek;\n this.advance(); // Skip initial quote.\n\n let buffer: string = '';\n let marker: number = this.index;\n const input: string = this.input;\n\n while (this.peek != quote) {\n if (this.peek == chars.$BACKSLASH) {\n buffer += input.substring(marker, this.index);\n this.advance();\n let unescapedCode: number;\n // Workaround for TS2.1-introduced type strictness\n this.peek = this.peek;\n if (this.peek == chars.$u) {\n // 4 character hex code for unicode character.\n const hex: string = input.substring(this.index + 1, this.index + 5);\n if (/^[0-9a-f]+$/i.test(hex)) {\n unescapedCode = parseInt(hex, 16);\n } else {\n return this.error(`Invalid unicode escape [\\\\u${hex}]`, 0);\n }\n for (let i: number = 0; i < 5; i++) {\n this.advance();\n }\n } else {\n unescapedCode = unescape(this.peek);\n this.advance();\n }\n buffer += String.fromCharCode(unescapedCode);\n marker = this.index;\n } else if (this.peek == chars.$EOF) {\n return this.error('Unterminated quote', 0);\n } else {\n this.advance();\n }\n }\n\n const last: string = input.substring(marker, this.index);\n this.advance(); // Skip terminating quote.\n\n return newStringToken(start, this.index, buffer + last);\n }\n\n scanQuestion(start: number): Token {\n this.advance();\n let str: string = '?';\n // Either `a ?? b` or 'a?.b'.\n if (this.peek === chars.$QUESTION || this.peek === chars.$PERIOD) {\n str += this.peek === chars.$PERIOD ? '.' : '?';\n this.advance();\n }\n return newOperatorToken(start, this.index, str);\n }\n\n error(message: string, offset: number): Token {\n const position: number = this.index + offset;\n return newErrorToken(\n position, this.index,\n `Lexer Error: ${message} at column ${position} in expression [${this.input}]`);\n }\n}\n\nfunction isIdentifierStart(code: number): boolean {\n return (chars.$a <= code && code <= chars.$z) || (chars.$A <= code && code <= chars.$Z) ||\n (code == chars.$_) || (code == chars.$$);\n}\n\nexport function isIdentifier(input: string): boolean {\n if (input.length == 0) return false;\n const scanner = new _Scanner(input);\n if (!isIdentifierStart(scanner.peek)) return false;\n scanner.advance();\n while (scanner.peek !== chars.$EOF) {\n if (!isIdentifierPart(scanner.peek)) return false;\n scanner.advance();\n }\n return true;\n}\n\nfunction isIdentifierPart(code: number): boolean {\n return chars.isAsciiLetter(code) || chars.isDigit(code) || (code == chars.$_) ||\n (code == chars.$$);\n}\n\nfunction isExponentStart(code: number): boolean {\n return code == chars.$e || code == chars.$E;\n}\n\nfunction isExponentSign(code: number): boolean {\n return code == chars.$MINUS || code == chars.$PLUS;\n}\n\nfunction unescape(code: number): number {\n switch (code) {\n case chars.$n:\n return chars.$LF;\n case chars.$f:\n return chars.$FF;\n case chars.$r:\n return chars.$CR;\n case chars.$t:\n return chars.$TAB;\n case chars.$v:\n return chars.$VTAB;\n default:\n return code;\n }\n}\n\nfunction parseIntAutoRadix(text: string): number {\n const result: number = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport * as chars from '../chars';\nimport {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from '../ml_parser/interpolation_config';\n\nimport {AbsoluteSourceSpan, AST, AstVisitor, ASTWithSource, Binary, BindingPipe, Call, Chain, Conditional, EmptyExpr, ExpressionBinding, ImplicitReceiver, Interpolation, KeyedRead, KeyedWrite, LiteralArray, LiteralMap, LiteralMapKey, LiteralPrimitive, NonNullAssert, ParserError, ParseSpan, PrefixNot, PropertyRead, PropertyWrite, Quote, RecursiveAstVisitor, SafeKeyedRead, SafePropertyRead, TemplateBinding, TemplateBindingIdentifier, ThisReceiver, Unary, VariableBinding} from './ast';\nimport {EOF, isIdentifier, Lexer, Token, TokenType} from './lexer';\n\nexport interface InterpolationPiece {\n text: string;\n start: number;\n end: number;\n}\nexport class SplitInterpolation {\n constructor(\n public strings: InterpolationPiece[], public expressions: InterpolationPiece[],\n public offsets: number[]) {}\n}\n\nexport class TemplateBindingParseResult {\n constructor(\n public templateBindings: TemplateBinding[], public warnings: string[],\n public errors: ParserError[]) {}\n}\n\nexport class Parser {\n private errors: ParserError[] = [];\n\n constructor(private _lexer: Lexer) {}\n\n simpleExpressionChecker = SimpleExpressionChecker;\n\n parseAction(\n input: string, location: string, absoluteOffset: number,\n interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): ASTWithSource {\n this._checkNoInterpolation(input, location, interpolationConfig);\n const sourceToLex = this._stripComments(input);\n const tokens = this._lexer.tokenize(this._stripComments(input));\n const ast = new _ParseAST(\n input, location, absoluteOffset, tokens, sourceToLex.length, true, this.errors,\n input.length - sourceToLex.length)\n .parseChain();\n return new ASTWithSource(ast, input, location, absoluteOffset, this.errors);\n }\n\n parseBinding(\n input: string, location: string, absoluteOffset: number,\n interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): ASTWithSource {\n const ast = this._parseBindingAst(input, location, absoluteOffset, interpolationConfig);\n return new ASTWithSource(ast, input, location, absoluteOffset, this.errors);\n }\n\n private checkSimpleExpression(ast: AST): string[] {\n const checker = new this.simpleExpressionChecker();\n ast.visit(checker);\n return checker.errors;\n }\n\n parseSimpleBinding(\n input: string, location: string, absoluteOffset: number,\n interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): ASTWithSource {\n const ast = this._parseBindingAst(input, location, absoluteOffset, interpolationConfig);\n const errors = this.checkSimpleExpression(ast);\n if (errors.length > 0) {\n this._reportError(\n `Host binding expression cannot contain ${errors.join(' ')}`, input, location);\n }\n return new ASTWithSource(ast, input, location, absoluteOffset, this.errors);\n }\n\n private _reportError(message: string, input: string, errLocation: string, ctxLocation?: string) {\n this.errors.push(new ParserError(message, input, errLocation, ctxLocation));\n }\n\n private _parseBindingAst(\n input: string, location: string, absoluteOffset: number,\n interpolationConfig: InterpolationConfig): AST {\n // Quotes expressions use 3rd-party expression language. We don't want to use\n // our lexer or parser for that, so we check for that ahead of time.\n const quote = this._parseQuote(input, location, absoluteOffset);\n\n if (quote != null) {\n return quote;\n }\n\n this._checkNoInterpolation(input, location, interpolationConfig);\n const sourceToLex = this._stripComments(input);\n const tokens = this._lexer.tokenize(sourceToLex);\n return new _ParseAST(\n input, location, absoluteOffset, tokens, sourceToLex.length, false, this.errors,\n input.length - sourceToLex.length)\n .parseChain();\n }\n\n private _parseQuote(input: string|null, location: string, absoluteOffset: number): AST|null {\n if (input == null) return null;\n const prefixSeparatorIndex = input.indexOf(':');\n if (prefixSeparatorIndex == -1) return null;\n const prefix = input.substring(0, prefixSeparatorIndex).trim();\n if (!isIdentifier(prefix)) return null;\n const uninterpretedExpression = input.substring(prefixSeparatorIndex + 1);\n const span = new ParseSpan(0, input.length);\n return new Quote(\n span, span.toAbsolute(absoluteOffset), prefix, uninterpretedExpression, location);\n }\n\n /**\n * Parse microsyntax template expression and return a list of bindings or\n * parsing errors in case the given expression is invalid.\n *\n * For example,\n * ```\n *
    \n * ^ ^ absoluteValueOffset for `templateValue`\n * absoluteKeyOffset for `templateKey`\n * ```\n * contains three bindings:\n * 1. ngFor -> null\n * 2. item -> NgForOfContext.$implicit\n * 3. ngForOf -> items\n *\n * This is apparent from the de-sugared template:\n * ```\n * \n * ```\n *\n * @param templateKey name of directive, without the * prefix. For example: ngIf, ngFor\n * @param templateValue RHS of the microsyntax attribute\n * @param templateUrl template filename if it's external, component filename if it's inline\n * @param absoluteKeyOffset start of the `templateKey`\n * @param absoluteValueOffset start of the `templateValue`\n */\n parseTemplateBindings(\n templateKey: string, templateValue: string, templateUrl: string, absoluteKeyOffset: number,\n absoluteValueOffset: number): TemplateBindingParseResult {\n const tokens = this._lexer.tokenize(templateValue);\n const parser = new _ParseAST(\n templateValue, templateUrl, absoluteValueOffset, tokens, templateValue.length,\n false /* parseAction */, this.errors, 0 /* relative offset */);\n return parser.parseTemplateBindings({\n source: templateKey,\n span: new AbsoluteSourceSpan(absoluteKeyOffset, absoluteKeyOffset + templateKey.length),\n });\n }\n\n parseInterpolation(\n input: string, location: string, absoluteOffset: number,\n interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): ASTWithSource|null {\n const {strings, expressions, offsets} =\n this.splitInterpolation(input, location, interpolationConfig);\n if (expressions.length === 0) return null;\n\n const expressionNodes: AST[] = [];\n\n for (let i = 0; i < expressions.length; ++i) {\n const expressionText = expressions[i].text;\n const sourceToLex = this._stripComments(expressionText);\n const tokens = this._lexer.tokenize(sourceToLex);\n const ast = new _ParseAST(\n input, location, absoluteOffset, tokens, sourceToLex.length, false,\n this.errors, offsets[i] + (expressionText.length - sourceToLex.length))\n .parseChain();\n expressionNodes.push(ast);\n }\n\n return this.createInterpolationAst(\n strings.map(s => s.text), expressionNodes, input, location, absoluteOffset);\n }\n\n /**\n * Similar to `parseInterpolation`, but treats the provided string as a single expression\n * element that would normally appear within the interpolation prefix and suffix (`{{` and `}}`).\n * This is used for parsing the switch expression in ICUs.\n */\n parseInterpolationExpression(expression: string, location: string, absoluteOffset: number):\n ASTWithSource {\n const sourceToLex = this._stripComments(expression);\n const tokens = this._lexer.tokenize(sourceToLex);\n const ast = new _ParseAST(\n expression, location, absoluteOffset, tokens, sourceToLex.length,\n /* parseAction */ false, this.errors, 0)\n .parseChain();\n const strings = ['', '']; // The prefix and suffix strings are both empty\n return this.createInterpolationAst(strings, [ast], expression, location, absoluteOffset);\n }\n\n private createInterpolationAst(\n strings: string[], expressions: AST[], input: string, location: string,\n absoluteOffset: number): ASTWithSource {\n const span = new ParseSpan(0, input.length);\n const interpolation =\n new Interpolation(span, span.toAbsolute(absoluteOffset), strings, expressions);\n return new ASTWithSource(interpolation, input, location, absoluteOffset, this.errors);\n }\n\n /**\n * Splits a string of text into \"raw\" text segments and expressions present in interpolations in\n * the string.\n * Returns `null` if there are no interpolations, otherwise a\n * `SplitInterpolation` with splits that look like\n * ... \n */\n splitInterpolation(\n input: string, location: string,\n interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG): SplitInterpolation {\n const strings: InterpolationPiece[] = [];\n const expressions: InterpolationPiece[] = [];\n const offsets: number[] = [];\n let i = 0;\n let atInterpolation = false;\n let extendLastString = false;\n let {start: interpStart, end: interpEnd} = interpolationConfig;\n while (i < input.length) {\n if (!atInterpolation) {\n // parse until starting {{\n const start = i;\n i = input.indexOf(interpStart, i);\n if (i === -1) {\n i = input.length;\n }\n const text = input.substring(start, i);\n strings.push({text, start, end: i});\n\n atInterpolation = true;\n } else {\n // parse from starting {{ to ending }} while ignoring content inside quotes.\n const fullStart = i;\n const exprStart = fullStart + interpStart.length;\n const exprEnd = this._getInterpolationEndIndex(input, interpEnd, exprStart);\n if (exprEnd === -1) {\n // Could not find the end of the interpolation; do not parse an expression.\n // Instead we should extend the content on the last raw string.\n atInterpolation = false;\n extendLastString = true;\n break;\n }\n const fullEnd = exprEnd + interpEnd.length;\n\n const text = input.substring(exprStart, exprEnd);\n if (text.trim().length === 0) {\n this._reportError(\n 'Blank expressions are not allowed in interpolated strings', input,\n `at column ${i} in`, location);\n }\n expressions.push({text, start: fullStart, end: fullEnd});\n offsets.push(exprStart);\n\n i = fullEnd;\n atInterpolation = false;\n }\n }\n if (!atInterpolation) {\n // If we are now at a text section, add the remaining content as a raw string.\n if (extendLastString) {\n const piece = strings[strings.length - 1];\n piece.text += input.substring(i);\n piece.end = input.length;\n } else {\n strings.push({text: input.substring(i), start: i, end: input.length});\n }\n }\n return new SplitInterpolation(strings, expressions, offsets);\n }\n\n wrapLiteralPrimitive(input: string|null, location: string, absoluteOffset: number):\n ASTWithSource {\n const span = new ParseSpan(0, input == null ? 0 : input.length);\n return new ASTWithSource(\n new LiteralPrimitive(span, span.toAbsolute(absoluteOffset), input), input, location,\n absoluteOffset, this.errors);\n }\n\n private _stripComments(input: string): string {\n const i = this._commentStart(input);\n return i != null ? input.substring(0, i).trim() : input;\n }\n\n private _commentStart(input: string): number|null {\n let outerQuote: number|null = null;\n for (let i = 0; i < input.length - 1; i++) {\n const char = input.charCodeAt(i);\n const nextChar = input.charCodeAt(i + 1);\n\n if (char === chars.$SLASH && nextChar == chars.$SLASH && outerQuote == null) return i;\n\n if (outerQuote === char) {\n outerQuote = null;\n } else if (outerQuote == null && chars.isQuote(char)) {\n outerQuote = char;\n }\n }\n return null;\n }\n\n private _checkNoInterpolation(input: string, location: string, {start, end}: InterpolationConfig):\n void {\n let startIndex = -1;\n let endIndex = -1;\n\n for (const charIndex of this._forEachUnquotedChar(input, 0)) {\n if (startIndex === -1) {\n if (input.startsWith(start)) {\n startIndex = charIndex;\n }\n } else {\n endIndex = this._getInterpolationEndIndex(input, end, charIndex);\n if (endIndex > -1) {\n break;\n }\n }\n }\n\n if (startIndex > -1 && endIndex > -1) {\n this._reportError(\n `Got interpolation (${start}${end}) where expression was expected`, input,\n `at column ${startIndex} in`, location);\n }\n }\n\n /**\n * Finds the index of the end of an interpolation expression\n * while ignoring comments and quoted content.\n */\n private _getInterpolationEndIndex(input: string, expressionEnd: string, start: number): number {\n for (const charIndex of this._forEachUnquotedChar(input, start)) {\n if (input.startsWith(expressionEnd, charIndex)) {\n return charIndex;\n }\n\n // Nothing else in the expression matters after we've\n // hit a comment so look directly for the end token.\n if (input.startsWith('//', charIndex)) {\n return input.indexOf(expressionEnd, charIndex);\n }\n }\n\n return -1;\n }\n\n /**\n * Generator used to iterate over the character indexes of a string that are outside of quotes.\n * @param input String to loop through.\n * @param start Index within the string at which to start.\n */\n private * _forEachUnquotedChar(input: string, start: number) {\n let currentQuote: string|null = null;\n let escapeCount = 0;\n for (let i = start; i < input.length; i++) {\n const char = input[i];\n // Skip the characters inside quotes. Note that we only care about the outer-most\n // quotes matching up and we need to account for escape characters.\n if (chars.isQuote(input.charCodeAt(i)) && (currentQuote === null || currentQuote === char) &&\n escapeCount % 2 === 0) {\n currentQuote = currentQuote === null ? char : null;\n } else if (currentQuote === null) {\n yield i;\n }\n escapeCount = char === '\\\\' ? escapeCount + 1 : 0;\n }\n }\n}\n\nexport class IvyParser extends Parser {\n override simpleExpressionChecker = IvySimpleExpressionChecker;\n}\n\n/** Describes a stateful context an expression parser is in. */\nenum ParseContextFlags {\n None = 0,\n /**\n * A Writable context is one in which a value may be written to an lvalue.\n * For example, after we see a property access, we may expect a write to the\n * property via the \"=\" operator.\n * prop\n * ^ possible \"=\" after\n */\n Writable = 1,\n}\n\nexport class _ParseAST {\n private rparensExpected = 0;\n private rbracketsExpected = 0;\n private rbracesExpected = 0;\n private context = ParseContextFlags.None;\n\n // Cache of expression start and input indeces to the absolute source span they map to, used to\n // prevent creating superfluous source spans in `sourceSpan`.\n // A serial of the expression start and input index is used for mapping because both are stateful\n // and may change for subsequent expressions visited by the parser.\n private sourceSpanCache = new Map();\n\n index: number = 0;\n\n constructor(\n public input: string, public location: string, public absoluteOffset: number,\n public tokens: Token[], public inputLength: number, public parseAction: boolean,\n private errors: ParserError[], private offset: number) {}\n\n peek(offset: number): Token {\n const i = this.index + offset;\n return i < this.tokens.length ? this.tokens[i] : EOF;\n }\n\n get next(): Token {\n return this.peek(0);\n }\n\n /** Whether all the parser input has been processed. */\n get atEOF(): boolean {\n return this.index >= this.tokens.length;\n }\n\n /**\n * Index of the next token to be processed, or the end of the last token if all have been\n * processed.\n */\n get inputIndex(): number {\n return this.atEOF ? this.currentEndIndex : this.next.index + this.offset;\n }\n\n /**\n * End index of the last processed token, or the start of the first token if none have been\n * processed.\n */\n get currentEndIndex(): number {\n if (this.index > 0) {\n const curToken = this.peek(-1);\n return curToken.end + this.offset;\n }\n // No tokens have been processed yet; return the next token's start or the length of the input\n // if there is no token.\n if (this.tokens.length === 0) {\n return this.inputLength + this.offset;\n }\n return this.next.index + this.offset;\n }\n\n /**\n * Returns the absolute offset of the start of the current token.\n */\n get currentAbsoluteOffset(): number {\n return this.absoluteOffset + this.inputIndex;\n }\n\n /**\n * Retrieve a `ParseSpan` from `start` to the current position (or to `artificialEndIndex` if\n * provided).\n *\n * @param start Position from which the `ParseSpan` will start.\n * @param artificialEndIndex Optional ending index to be used if provided (and if greater than the\n * natural ending index)\n */\n span(start: number, artificialEndIndex?: number): ParseSpan {\n let endIndex = this.currentEndIndex;\n if (artificialEndIndex !== undefined && artificialEndIndex > this.currentEndIndex) {\n endIndex = artificialEndIndex;\n }\n\n // In some unusual parsing scenarios (like when certain tokens are missing and an `EmptyExpr` is\n // being created), the current token may already be advanced beyond the `currentEndIndex`. This\n // appears to be a deep-seated parser bug.\n //\n // As a workaround for now, swap the start and end indices to ensure a valid `ParseSpan`.\n // TODO(alxhub): fix the bug upstream in the parser state, and remove this workaround.\n if (start > endIndex) {\n const tmp = endIndex;\n endIndex = start;\n start = tmp;\n }\n\n return new ParseSpan(start, endIndex);\n }\n\n sourceSpan(start: number, artificialEndIndex?: number): AbsoluteSourceSpan {\n const serial = `${start}@${this.inputIndex}:${artificialEndIndex}`;\n if (!this.sourceSpanCache.has(serial)) {\n this.sourceSpanCache.set(\n serial, this.span(start, artificialEndIndex).toAbsolute(this.absoluteOffset));\n }\n return this.sourceSpanCache.get(serial)!;\n }\n\n advance() {\n this.index++;\n }\n\n /**\n * Executes a callback in the provided context.\n */\n private withContext(context: ParseContextFlags, cb: () => T): T {\n this.context |= context;\n const ret = cb();\n this.context ^= context;\n return ret;\n }\n\n consumeOptionalCharacter(code: number): boolean {\n if (this.next.isCharacter(code)) {\n this.advance();\n return true;\n } else {\n return false;\n }\n }\n\n peekKeywordLet(): boolean {\n return this.next.isKeywordLet();\n }\n peekKeywordAs(): boolean {\n return this.next.isKeywordAs();\n }\n\n /**\n * Consumes an expected character, otherwise emits an error about the missing expected character\n * and skips over the token stream until reaching a recoverable point.\n *\n * See `this.error` and `this.skip` for more details.\n */\n expectCharacter(code: number) {\n if (this.consumeOptionalCharacter(code)) return;\n this.error(`Missing expected ${String.fromCharCode(code)}`);\n }\n\n consumeOptionalOperator(op: string): boolean {\n if (this.next.isOperator(op)) {\n this.advance();\n return true;\n } else {\n return false;\n }\n }\n\n expectOperator(operator: string) {\n if (this.consumeOptionalOperator(operator)) return;\n this.error(`Missing expected operator ${operator}`);\n }\n\n prettyPrintToken(tok: Token): string {\n return tok === EOF ? 'end of input' : `token ${tok}`;\n }\n\n expectIdentifierOrKeyword(): string|null {\n const n = this.next;\n if (!n.isIdentifier() && !n.isKeyword()) {\n if (n.isPrivateIdentifier()) {\n this._reportErrorForPrivateIdentifier(n, 'expected identifier or keyword');\n } else {\n this.error(`Unexpected ${this.prettyPrintToken(n)}, expected identifier or keyword`);\n }\n return null;\n }\n this.advance();\n return n.toString() as string;\n }\n\n expectIdentifierOrKeywordOrString(): string {\n const n = this.next;\n if (!n.isIdentifier() && !n.isKeyword() && !n.isString()) {\n if (n.isPrivateIdentifier()) {\n this._reportErrorForPrivateIdentifier(n, 'expected identifier, keyword or string');\n } else {\n this.error(\n `Unexpected ${this.prettyPrintToken(n)}, expected identifier, keyword, or string`);\n }\n return '';\n }\n this.advance();\n return n.toString() as string;\n }\n\n parseChain(): AST {\n const exprs: AST[] = [];\n const start = this.inputIndex;\n while (this.index < this.tokens.length) {\n const expr = this.parsePipe();\n exprs.push(expr);\n\n if (this.consumeOptionalCharacter(chars.$SEMICOLON)) {\n if (!this.parseAction) {\n this.error('Binding expression cannot contain chained expression');\n }\n while (this.consumeOptionalCharacter(chars.$SEMICOLON)) {\n } // read all semicolons\n } else if (this.index < this.tokens.length) {\n this.error(`Unexpected token '${this.next}'`);\n }\n }\n if (exprs.length == 0) {\n // We have no expressions so create an empty expression that spans the entire input length\n const artificialStart = this.offset;\n const artificialEnd = this.offset + this.inputLength;\n return new EmptyExpr(\n this.span(artificialStart, artificialEnd),\n this.sourceSpan(artificialStart, artificialEnd));\n }\n if (exprs.length == 1) return exprs[0];\n return new Chain(this.span(start), this.sourceSpan(start), exprs);\n }\n\n parsePipe(): AST {\n const start = this.inputIndex;\n let result = this.parseExpression();\n if (this.consumeOptionalOperator('|')) {\n if (this.parseAction) {\n this.error('Cannot have a pipe in an action expression');\n }\n\n do {\n const nameStart = this.inputIndex;\n let nameId = this.expectIdentifierOrKeyword();\n let nameSpan: AbsoluteSourceSpan;\n let fullSpanEnd: number|undefined = undefined;\n if (nameId !== null) {\n nameSpan = this.sourceSpan(nameStart);\n } else {\n // No valid identifier was found, so we'll assume an empty pipe name ('').\n nameId = '';\n\n // However, there may have been whitespace present between the pipe character and the next\n // token in the sequence (or the end of input). We want to track this whitespace so that\n // the `BindingPipe` we produce covers not just the pipe character, but any trailing\n // whitespace beyond it. Another way of thinking about this is that the zero-length name\n // is assumed to be at the end of any whitespace beyond the pipe character.\n //\n // Therefore, we push the end of the `ParseSpan` for this pipe all the way up to the\n // beginning of the next token, or until the end of input if the next token is EOF.\n fullSpanEnd = this.next.index !== -1 ? this.next.index : this.inputLength + this.offset;\n\n // The `nameSpan` for an empty pipe name is zero-length at the end of any whitespace\n // beyond the pipe character.\n nameSpan = new ParseSpan(fullSpanEnd, fullSpanEnd).toAbsolute(this.absoluteOffset);\n }\n\n const args: AST[] = [];\n while (this.consumeOptionalCharacter(chars.$COLON)) {\n args.push(this.parseExpression());\n\n // If there are additional expressions beyond the name, then the artificial end for the\n // name is no longer relevant.\n }\n result = new BindingPipe(\n this.span(start), this.sourceSpan(start, fullSpanEnd), result, nameId, args, nameSpan);\n } while (this.consumeOptionalOperator('|'));\n }\n\n return result;\n }\n\n parseExpression(): AST {\n return this.parseConditional();\n }\n\n parseConditional(): AST {\n const start = this.inputIndex;\n const result = this.parseLogicalOr();\n\n if (this.consumeOptionalOperator('?')) {\n const yes = this.parsePipe();\n let no: AST;\n if (!this.consumeOptionalCharacter(chars.$COLON)) {\n const end = this.inputIndex;\n const expression = this.input.substring(start, end);\n this.error(`Conditional expression ${expression} requires all 3 expressions`);\n no = new EmptyExpr(this.span(start), this.sourceSpan(start));\n } else {\n no = this.parsePipe();\n }\n return new Conditional(this.span(start), this.sourceSpan(start), result, yes, no);\n } else {\n return result;\n }\n }\n\n parseLogicalOr(): AST {\n // '||'\n const start = this.inputIndex;\n let result = this.parseLogicalAnd();\n while (this.consumeOptionalOperator('||')) {\n const right = this.parseLogicalAnd();\n result = new Binary(this.span(start), this.sourceSpan(start), '||', result, right);\n }\n return result;\n }\n\n parseLogicalAnd(): AST {\n // '&&'\n const start = this.inputIndex;\n let result = this.parseNullishCoalescing();\n while (this.consumeOptionalOperator('&&')) {\n const right = this.parseNullishCoalescing();\n result = new Binary(this.span(start), this.sourceSpan(start), '&&', result, right);\n }\n return result;\n }\n\n parseNullishCoalescing(): AST {\n // '??'\n const start = this.inputIndex;\n let result = this.parseEquality();\n while (this.consumeOptionalOperator('??')) {\n const right = this.parseEquality();\n result = new Binary(this.span(start), this.sourceSpan(start), '??', result, right);\n }\n return result;\n }\n\n parseEquality(): AST {\n // '==','!=','===','!=='\n const start = this.inputIndex;\n let result = this.parseRelational();\n while (this.next.type == TokenType.Operator) {\n const operator = this.next.strValue;\n switch (operator) {\n case '==':\n case '===':\n case '!=':\n case '!==':\n this.advance();\n const right = this.parseRelational();\n result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n }\n\n parseRelational(): AST {\n // '<', '>', '<=', '>='\n const start = this.inputIndex;\n let result = this.parseAdditive();\n while (this.next.type == TokenType.Operator) {\n const operator = this.next.strValue;\n switch (operator) {\n case '<':\n case '>':\n case '<=':\n case '>=':\n this.advance();\n const right = this.parseAdditive();\n result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n }\n\n parseAdditive(): AST {\n // '+', '-'\n const start = this.inputIndex;\n let result = this.parseMultiplicative();\n while (this.next.type == TokenType.Operator) {\n const operator = this.next.strValue;\n switch (operator) {\n case '+':\n case '-':\n this.advance();\n let right = this.parseMultiplicative();\n result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n }\n\n parseMultiplicative(): AST {\n // '*', '%', '/'\n const start = this.inputIndex;\n let result = this.parsePrefix();\n while (this.next.type == TokenType.Operator) {\n const operator = this.next.strValue;\n switch (operator) {\n case '*':\n case '%':\n case '/':\n this.advance();\n let right = this.parsePrefix();\n result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n }\n\n parsePrefix(): AST {\n if (this.next.type == TokenType.Operator) {\n const start = this.inputIndex;\n const operator = this.next.strValue;\n let result: AST;\n switch (operator) {\n case '+':\n this.advance();\n result = this.parsePrefix();\n return Unary.createPlus(this.span(start), this.sourceSpan(start), result);\n case '-':\n this.advance();\n result = this.parsePrefix();\n return Unary.createMinus(this.span(start), this.sourceSpan(start), result);\n case '!':\n this.advance();\n result = this.parsePrefix();\n return new PrefixNot(this.span(start), this.sourceSpan(start), result);\n }\n }\n return this.parseCallChain();\n }\n\n parseCallChain(): AST {\n const start = this.inputIndex;\n let result = this.parsePrimary();\n while (true) {\n if (this.consumeOptionalCharacter(chars.$PERIOD)) {\n result = this.parseAccessMemberOrCall(result, start, false);\n\n } else if (this.consumeOptionalOperator('?.')) {\n result = this.consumeOptionalCharacter(chars.$LBRACKET) ?\n this.parseKeyedReadOrWrite(result, start, true) :\n this.parseAccessMemberOrCall(result, start, true);\n } else if (this.consumeOptionalCharacter(chars.$LBRACKET)) {\n result = this.parseKeyedReadOrWrite(result, start, false);\n } else if (this.consumeOptionalCharacter(chars.$LPAREN)) {\n const argumentStart = this.inputIndex;\n this.rparensExpected++;\n const args = this.parseCallArguments();\n const argumentSpan =\n this.span(argumentStart, this.inputIndex).toAbsolute(this.absoluteOffset);\n this.rparensExpected--;\n this.expectCharacter(chars.$RPAREN);\n result = new Call(this.span(start), this.sourceSpan(start), result, args, argumentSpan);\n } else if (this.consumeOptionalOperator('!')) {\n result = new NonNullAssert(this.span(start), this.sourceSpan(start), result);\n\n } else {\n return result;\n }\n }\n }\n\n parsePrimary(): AST {\n const start = this.inputIndex;\n if (this.consumeOptionalCharacter(chars.$LPAREN)) {\n this.rparensExpected++;\n const result = this.parsePipe();\n this.rparensExpected--;\n this.expectCharacter(chars.$RPAREN);\n return result;\n\n } else if (this.next.isKeywordNull()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), null);\n\n } else if (this.next.isKeywordUndefined()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), void 0);\n\n } else if (this.next.isKeywordTrue()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), true);\n\n } else if (this.next.isKeywordFalse()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), false);\n\n } else if (this.next.isKeywordThis()) {\n this.advance();\n return new ThisReceiver(this.span(start), this.sourceSpan(start));\n } else if (this.consumeOptionalCharacter(chars.$LBRACKET)) {\n this.rbracketsExpected++;\n const elements = this.parseExpressionList(chars.$RBRACKET);\n this.rbracketsExpected--;\n this.expectCharacter(chars.$RBRACKET);\n return new LiteralArray(this.span(start), this.sourceSpan(start), elements);\n\n } else if (this.next.isCharacter(chars.$LBRACE)) {\n return this.parseLiteralMap();\n\n } else if (this.next.isIdentifier()) {\n return this.parseAccessMemberOrCall(\n new ImplicitReceiver(this.span(start), this.sourceSpan(start)), start, false);\n\n } else if (this.next.isNumber()) {\n const value = this.next.toNumber();\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), value);\n\n } else if (this.next.isString()) {\n const literalValue = this.next.toString();\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), literalValue);\n\n } else if (this.next.isPrivateIdentifier()) {\n this._reportErrorForPrivateIdentifier(this.next, null);\n return new EmptyExpr(this.span(start), this.sourceSpan(start));\n\n } else if (this.index >= this.tokens.length) {\n this.error(`Unexpected end of expression: ${this.input}`);\n return new EmptyExpr(this.span(start), this.sourceSpan(start));\n } else {\n this.error(`Unexpected token ${this.next}`);\n return new EmptyExpr(this.span(start), this.sourceSpan(start));\n }\n }\n\n parseExpressionList(terminator: number): AST[] {\n const result: AST[] = [];\n\n do {\n if (!this.next.isCharacter(terminator)) {\n result.push(this.parsePipe());\n } else {\n break;\n }\n } while (this.consumeOptionalCharacter(chars.$COMMA));\n return result;\n }\n\n parseLiteralMap(): LiteralMap {\n const keys: LiteralMapKey[] = [];\n const values: AST[] = [];\n const start = this.inputIndex;\n this.expectCharacter(chars.$LBRACE);\n if (!this.consumeOptionalCharacter(chars.$RBRACE)) {\n this.rbracesExpected++;\n do {\n const keyStart = this.inputIndex;\n const quoted = this.next.isString();\n const key = this.expectIdentifierOrKeywordOrString();\n keys.push({key, quoted});\n\n // Properties with quoted keys can't use the shorthand syntax.\n if (quoted) {\n this.expectCharacter(chars.$COLON);\n values.push(this.parsePipe());\n } else if (this.consumeOptionalCharacter(chars.$COLON)) {\n values.push(this.parsePipe());\n } else {\n const span = this.span(keyStart);\n const sourceSpan = this.sourceSpan(keyStart);\n values.push(new PropertyRead(\n span, sourceSpan, sourceSpan, new ImplicitReceiver(span, sourceSpan), key));\n }\n } while (this.consumeOptionalCharacter(chars.$COMMA));\n this.rbracesExpected--;\n this.expectCharacter(chars.$RBRACE);\n }\n return new LiteralMap(this.span(start), this.sourceSpan(start), keys, values);\n }\n\n parseAccessMemberOrCall(readReceiver: AST, start: number, isSafe: boolean): AST {\n const nameStart = this.inputIndex;\n const id = this.withContext(ParseContextFlags.Writable, () => {\n const id = this.expectIdentifierOrKeyword() ?? '';\n if (id.length === 0) {\n this.error(`Expected identifier for property access`, readReceiver.span.end);\n }\n return id;\n });\n const nameSpan = this.sourceSpan(nameStart);\n let receiver: AST;\n\n if (isSafe) {\n if (this.consumeOptionalOperator('=')) {\n this.error('The \\'?.\\' operator cannot be used in the assignment');\n receiver = new EmptyExpr(this.span(start), this.sourceSpan(start));\n } else {\n receiver = new SafePropertyRead(\n this.span(start), this.sourceSpan(start), nameSpan, readReceiver, id);\n }\n } else {\n if (this.consumeOptionalOperator('=')) {\n if (!this.parseAction) {\n this.error('Bindings cannot contain assignments');\n return new EmptyExpr(this.span(start), this.sourceSpan(start));\n }\n\n const value = this.parseConditional();\n receiver = new PropertyWrite(\n this.span(start), this.sourceSpan(start), nameSpan, readReceiver, id, value);\n } else {\n receiver =\n new PropertyRead(this.span(start), this.sourceSpan(start), nameSpan, readReceiver, id);\n }\n }\n\n if (this.consumeOptionalCharacter(chars.$LPAREN)) {\n const argumentStart = this.inputIndex;\n this.rparensExpected++;\n const args = this.parseCallArguments();\n const argumentSpan =\n this.span(argumentStart, this.inputIndex).toAbsolute(this.absoluteOffset);\n this.expectCharacter(chars.$RPAREN);\n this.rparensExpected--;\n const span = this.span(start);\n const sourceSpan = this.sourceSpan(start);\n return new Call(span, sourceSpan, receiver, args, argumentSpan);\n }\n\n return receiver;\n }\n\n parseCallArguments(): BindingPipe[] {\n if (this.next.isCharacter(chars.$RPAREN)) return [];\n const positionals: AST[] = [];\n do {\n positionals.push(this.parsePipe());\n } while (this.consumeOptionalCharacter(chars.$COMMA));\n return positionals as BindingPipe[];\n }\n\n /**\n * Parses an identifier, a keyword, a string with an optional `-` in between,\n * and returns the string along with its absolute source span.\n */\n expectTemplateBindingKey(): TemplateBindingIdentifier {\n let result = '';\n let operatorFound = false;\n const start = this.currentAbsoluteOffset;\n do {\n result += this.expectIdentifierOrKeywordOrString();\n operatorFound = this.consumeOptionalOperator('-');\n if (operatorFound) {\n result += '-';\n }\n } while (operatorFound);\n return {\n source: result,\n span: new AbsoluteSourceSpan(start, start + result.length),\n };\n }\n\n /**\n * Parse microsyntax template expression and return a list of bindings or\n * parsing errors in case the given expression is invalid.\n *\n * For example,\n * ```\n *
    \n * ```\n * contains five bindings:\n * 1. ngFor -> null\n * 2. item -> NgForOfContext.$implicit\n * 3. ngForOf -> items\n * 4. i -> NgForOfContext.index\n * 5. ngForTrackBy -> func\n *\n * For a full description of the microsyntax grammar, see\n * https://gist.github.com/mhevery/d3530294cff2e4a1b3fe15ff75d08855\n *\n * @param templateKey name of the microsyntax directive, like ngIf, ngFor,\n * without the *, along with its absolute span.\n */\n parseTemplateBindings(templateKey: TemplateBindingIdentifier): TemplateBindingParseResult {\n const bindings: TemplateBinding[] = [];\n\n // The first binding is for the template key itself\n // In *ngFor=\"let item of items\", key = \"ngFor\", value = null\n // In *ngIf=\"cond | pipe\", key = \"ngIf\", value = \"cond | pipe\"\n bindings.push(...this.parseDirectiveKeywordBindings(templateKey));\n\n while (this.index < this.tokens.length) {\n // If it starts with 'let', then this must be variable declaration\n const letBinding = this.parseLetBinding();\n if (letBinding) {\n bindings.push(letBinding);\n } else {\n // Two possible cases here, either `value \"as\" key` or\n // \"directive-keyword expression\". We don't know which case, but both\n // \"value\" and \"directive-keyword\" are template binding key, so consume\n // the key first.\n const key = this.expectTemplateBindingKey();\n // Peek at the next token, if it is \"as\" then this must be variable\n // declaration.\n const binding = this.parseAsBinding(key);\n if (binding) {\n bindings.push(binding);\n } else {\n // Otherwise the key must be a directive keyword, like \"of\". Transform\n // the key to actual key. Eg. of -> ngForOf, trackBy -> ngForTrackBy\n key.source =\n templateKey.source + key.source.charAt(0).toUpperCase() + key.source.substring(1);\n bindings.push(...this.parseDirectiveKeywordBindings(key));\n }\n }\n this.consumeStatementTerminator();\n }\n\n return new TemplateBindingParseResult(bindings, [] /* warnings */, this.errors);\n }\n\n parseKeyedReadOrWrite(receiver: AST, start: number, isSafe: boolean): AST {\n return this.withContext(ParseContextFlags.Writable, () => {\n this.rbracketsExpected++;\n const key = this.parsePipe();\n if (key instanceof EmptyExpr) {\n this.error(`Key access cannot be empty`);\n }\n this.rbracketsExpected--;\n this.expectCharacter(chars.$RBRACKET);\n if (this.consumeOptionalOperator('=')) {\n if (isSafe) {\n this.error('The \\'?.\\' operator cannot be used in the assignment');\n } else {\n const value = this.parseConditional();\n return new KeyedWrite(this.span(start), this.sourceSpan(start), receiver, key, value);\n }\n } else {\n return isSafe ? new SafeKeyedRead(this.span(start), this.sourceSpan(start), receiver, key) :\n new KeyedRead(this.span(start), this.sourceSpan(start), receiver, key);\n }\n\n return new EmptyExpr(this.span(start), this.sourceSpan(start));\n });\n }\n\n /**\n * Parse a directive keyword, followed by a mandatory expression.\n * For example, \"of items\", \"trackBy: func\".\n * The bindings are: ngForOf -> items, ngForTrackBy -> func\n * There could be an optional \"as\" binding that follows the expression.\n * For example,\n * ```\n * *ngFor=\"let item of items | slice:0:1 as collection\".\n * ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^\n * keyword bound target optional 'as' binding\n * ```\n *\n * @param key binding key, for example, ngFor, ngIf, ngForOf, along with its\n * absolute span.\n */\n private parseDirectiveKeywordBindings(key: TemplateBindingIdentifier): TemplateBinding[] {\n const bindings: TemplateBinding[] = [];\n this.consumeOptionalCharacter(chars.$COLON); // trackBy: trackByFunction\n const value = this.getDirectiveBoundTarget();\n let spanEnd = this.currentAbsoluteOffset;\n // The binding could optionally be followed by \"as\". For example,\n // *ngIf=\"cond | pipe as x\". In this case, the key in the \"as\" binding\n // is \"x\" and the value is the template key itself (\"ngIf\"). Note that the\n // 'key' in the current context now becomes the \"value\" in the next binding.\n const asBinding = this.parseAsBinding(key);\n if (!asBinding) {\n this.consumeStatementTerminator();\n spanEnd = this.currentAbsoluteOffset;\n }\n const sourceSpan = new AbsoluteSourceSpan(key.span.start, spanEnd);\n bindings.push(new ExpressionBinding(sourceSpan, key, value));\n if (asBinding) {\n bindings.push(asBinding);\n }\n return bindings;\n }\n\n /**\n * Return the expression AST for the bound target of a directive keyword\n * binding. For example,\n * ```\n * *ngIf=\"condition | pipe\"\n * ^^^^^^^^^^^^^^^^ bound target for \"ngIf\"\n * *ngFor=\"let item of items\"\n * ^^^^^ bound target for \"ngForOf\"\n * ```\n */\n private getDirectiveBoundTarget(): ASTWithSource|null {\n if (this.next === EOF || this.peekKeywordAs() || this.peekKeywordLet()) {\n return null;\n }\n const ast = this.parsePipe(); // example: \"condition | async\"\n const {start, end} = ast.span;\n const value = this.input.substring(start, end);\n return new ASTWithSource(ast, value, this.location, this.absoluteOffset + start, this.errors);\n }\n\n /**\n * Return the binding for a variable declared using `as`. Note that the order\n * of the key-value pair in this declaration is reversed. For example,\n * ```\n * *ngFor=\"let item of items; index as i\"\n * ^^^^^ ^\n * value key\n * ```\n *\n * @param value name of the value in the declaration, \"ngIf\" in the example\n * above, along with its absolute span.\n */\n private parseAsBinding(value: TemplateBindingIdentifier): TemplateBinding|null {\n if (!this.peekKeywordAs()) {\n return null;\n }\n this.advance(); // consume the 'as' keyword\n const key = this.expectTemplateBindingKey();\n this.consumeStatementTerminator();\n const sourceSpan = new AbsoluteSourceSpan(value.span.start, this.currentAbsoluteOffset);\n return new VariableBinding(sourceSpan, key, value);\n }\n\n /**\n * Return the binding for a variable declared using `let`. For example,\n * ```\n * *ngFor=\"let item of items; let i=index;\"\n * ^^^^^^^^ ^^^^^^^^^^^\n * ```\n * In the first binding, `item` is bound to `NgForOfContext.$implicit`.\n * In the second binding, `i` is bound to `NgForOfContext.index`.\n */\n private parseLetBinding(): TemplateBinding|null {\n if (!this.peekKeywordLet()) {\n return null;\n }\n const spanStart = this.currentAbsoluteOffset;\n this.advance(); // consume the 'let' keyword\n const key = this.expectTemplateBindingKey();\n let value: TemplateBindingIdentifier|null = null;\n if (this.consumeOptionalOperator('=')) {\n value = this.expectTemplateBindingKey();\n }\n this.consumeStatementTerminator();\n const sourceSpan = new AbsoluteSourceSpan(spanStart, this.currentAbsoluteOffset);\n return new VariableBinding(sourceSpan, key, value);\n }\n\n /**\n * Consume the optional statement terminator: semicolon or comma.\n */\n private consumeStatementTerminator() {\n this.consumeOptionalCharacter(chars.$SEMICOLON) || this.consumeOptionalCharacter(chars.$COMMA);\n }\n\n /**\n * Records an error and skips over the token stream until reaching a recoverable point. See\n * `this.skip` for more details on token skipping.\n */\n error(message: string, index: number|null = null) {\n this.errors.push(new ParserError(message, this.input, this.locationText(index), this.location));\n this.skip();\n }\n\n private locationText(index: number|null = null) {\n if (index == null) index = this.index;\n return (index < this.tokens.length) ? `at column ${this.tokens[index].index + 1} in` :\n `at the end of the expression`;\n }\n\n /**\n * Records an error for an unexpected private identifier being discovered.\n * @param token Token representing a private identifier.\n * @param extraMessage Optional additional message being appended to the error.\n */\n private _reportErrorForPrivateIdentifier(token: Token, extraMessage: string|null) {\n let errorMessage =\n `Private identifiers are not supported. Unexpected private identifier: ${token}`;\n if (extraMessage !== null) {\n errorMessage += `, ${extraMessage}`;\n }\n this.error(errorMessage);\n }\n\n /**\n * Error recovery should skip tokens until it encounters a recovery point.\n *\n * The following are treated as unconditional recovery points:\n * - end of input\n * - ';' (parseChain() is always the root production, and it expects a ';')\n * - '|' (since pipes may be chained and each pipe expression may be treated independently)\n *\n * The following are conditional recovery points:\n * - ')', '}', ']' if one of calling productions is expecting one of these symbols\n * - This allows skip() to recover from errors such as '(a.) + 1' allowing more of the AST to\n * be retained (it doesn't skip any tokens as the ')' is retained because of the '(' begins\n * an '(' ')' production).\n * The recovery points of grouping symbols must be conditional as they must be skipped if\n * none of the calling productions are not expecting the closing token else we will never\n * make progress in the case of an extraneous group closing symbol (such as a stray ')').\n * That is, we skip a closing symbol if we are not in a grouping production.\n * - '=' in a `Writable` context\n * - In this context, we are able to recover after seeing the `=` operator, which\n * signals the presence of an independent rvalue expression following the `=` operator.\n *\n * If a production expects one of these token it increments the corresponding nesting count,\n * and then decrements it just prior to checking if the token is in the input.\n */\n private skip() {\n let n = this.next;\n while (this.index < this.tokens.length && !n.isCharacter(chars.$SEMICOLON) &&\n !n.isOperator('|') && (this.rparensExpected <= 0 || !n.isCharacter(chars.$RPAREN)) &&\n (this.rbracesExpected <= 0 || !n.isCharacter(chars.$RBRACE)) &&\n (this.rbracketsExpected <= 0 || !n.isCharacter(chars.$RBRACKET)) &&\n (!(this.context & ParseContextFlags.Writable) || !n.isOperator('='))) {\n if (this.next.isError()) {\n this.errors.push(\n new ParserError(this.next.toString()!, this.input, this.locationText(), this.location));\n }\n this.advance();\n n = this.next;\n }\n }\n}\n\nclass SimpleExpressionChecker implements AstVisitor {\n errors: string[] = [];\n\n visitImplicitReceiver(ast: ImplicitReceiver, context: any) {}\n\n visitThisReceiver(ast: ThisReceiver, context: any) {}\n\n visitInterpolation(ast: Interpolation, context: any) {}\n\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any) {}\n\n visitPropertyRead(ast: PropertyRead, context: any) {}\n\n visitPropertyWrite(ast: PropertyWrite, context: any) {}\n\n visitSafePropertyRead(ast: SafePropertyRead, context: any) {}\n\n visitCall(ast: Call, context: any) {}\n\n visitLiteralArray(ast: LiteralArray, context: any) {\n this.visitAll(ast.expressions, context);\n }\n\n visitLiteralMap(ast: LiteralMap, context: any) {\n this.visitAll(ast.values, context);\n }\n\n visitUnary(ast: Unary, context: any) {}\n\n visitBinary(ast: Binary, context: any) {}\n\n visitPrefixNot(ast: PrefixNot, context: any) {}\n\n visitNonNullAssert(ast: NonNullAssert, context: any) {}\n\n visitConditional(ast: Conditional, context: any) {}\n\n visitPipe(ast: BindingPipe, context: any) {\n this.errors.push('pipes');\n }\n\n visitKeyedRead(ast: KeyedRead, context: any) {}\n\n visitKeyedWrite(ast: KeyedWrite, context: any) {}\n\n visitAll(asts: any[], context: any): any[] {\n return asts.map(node => node.visit(this, context));\n }\n\n visitChain(ast: Chain, context: any) {}\n\n visitQuote(ast: Quote, context: any) {}\n\n visitSafeKeyedRead(ast: SafeKeyedRead, context: any) {}\n}\n\n/**\n * This class implements SimpleExpressionChecker used in View Engine and performs more strict checks\n * to make sure host bindings do not contain pipes. In View Engine, having pipes in host bindings is\n * not supported as well, but in some cases (like `!(value | async)`) the error is not triggered at\n * compile time. In order to preserve View Engine behavior, more strict checks are introduced for\n * Ivy mode only.\n */\nclass IvySimpleExpressionChecker extends RecursiveAstVisitor implements SimpleExpressionChecker {\n errors: string[] = [];\n\n override visitPipe() {\n this.errors.push('pipes');\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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 * A path is an ordered set of elements. Typically a path is to a\n * particular offset in a source file. The head of the list is the top\n * most node. The tail is the node that contains the offset directly.\n *\n * For example, the expression `a + b + c` might have an ast that looks\n * like:\n * +\n * / \\\n * a +\n * / \\\n * b c\n *\n * The path to the node at offset 9 would be `['+' at 1-10, '+' at 7-10,\n * 'c' at 9-10]` and the path the node at offset 1 would be\n * `['+' at 1-10, 'a' at 1-2]`.\n */\nexport class AstPath {\n constructor(private path: T[], public position: number = -1) {}\n\n get empty(): boolean {\n return !this.path || !this.path.length;\n }\n get head(): T|undefined {\n return this.path[0];\n }\n get tail(): T|undefined {\n return this.path[this.path.length - 1];\n }\n\n parentOf(node: T|undefined): T|undefined {\n return node && this.path[this.path.indexOf(node) - 1];\n }\n childOf(node: T): T|undefined {\n return this.path[this.path.indexOf(node) + 1];\n }\n\n first(ctor: {new(...args: any[]): N}): N|undefined {\n for (let i = this.path.length - 1; i >= 0; i--) {\n let item = this.path[i];\n if (item instanceof ctor) return item;\n }\n }\n\n push(node: T) {\n this.path.push(node);\n }\n\n pop(): T {\n return this.path.pop()!;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport {AstPath} from '../ast_path';\nimport {I18nMeta} from '../i18n/i18n_ast';\nimport {ParseSourceSpan} from '../parse_util';\nimport {InterpolatedAttributeToken, InterpolatedTextToken} from './tokens';\n\ninterface BaseNode {\n sourceSpan: ParseSourceSpan;\n visit(visitor: Visitor, context: any): any;\n}\n\nexport type Node = Attribute|Comment|Element|Expansion|ExpansionCase|Text;\n\nexport abstract class NodeWithI18n implements BaseNode {\n constructor(public sourceSpan: ParseSourceSpan, public i18n?: I18nMeta) {}\n abstract visit(visitor: Visitor, context: any): any;\n}\n\nexport class Text extends NodeWithI18n {\n constructor(\n public value: string, sourceSpan: ParseSourceSpan, public tokens: InterpolatedTextToken[],\n i18n?: I18nMeta) {\n super(sourceSpan, i18n);\n }\n override visit(visitor: Visitor, context: any): any {\n return visitor.visitText(this, context);\n }\n}\n\nexport class Expansion extends NodeWithI18n {\n constructor(\n public switchValue: string, public type: string, public cases: ExpansionCase[],\n sourceSpan: ParseSourceSpan, public switchValueSourceSpan: ParseSourceSpan, i18n?: I18nMeta) {\n super(sourceSpan, i18n);\n }\n override visit(visitor: Visitor, context: any): any {\n return visitor.visitExpansion(this, context);\n }\n}\n\nexport class ExpansionCase implements BaseNode {\n constructor(\n public value: string, public expression: Node[], public sourceSpan: ParseSourceSpan,\n public valueSourceSpan: ParseSourceSpan, public expSourceSpan: ParseSourceSpan) {}\n\n visit(visitor: Visitor, context: any): any {\n return visitor.visitExpansionCase(this, context);\n }\n}\n\nexport class Attribute extends NodeWithI18n {\n constructor(\n public name: string, public value: string, sourceSpan: ParseSourceSpan,\n readonly keySpan: ParseSourceSpan|undefined, public valueSpan: ParseSourceSpan|undefined,\n public valueTokens: InterpolatedAttributeToken[]|undefined, i18n: I18nMeta|undefined) {\n super(sourceSpan, i18n);\n }\n override visit(visitor: Visitor, context: any): any {\n return visitor.visitAttribute(this, context);\n }\n}\n\nexport class Element extends NodeWithI18n {\n constructor(\n public name: string, public attrs: Attribute[], public children: Node[],\n sourceSpan: ParseSourceSpan, public startSourceSpan: ParseSourceSpan,\n public endSourceSpan: ParseSourceSpan|null = null, i18n?: I18nMeta) {\n super(sourceSpan, i18n);\n }\n override visit(visitor: Visitor, context: any): any {\n return visitor.visitElement(this, context);\n }\n}\n\nexport class Comment implements BaseNode {\n constructor(public value: string|null, public sourceSpan: ParseSourceSpan) {}\n visit(visitor: Visitor, context: any): any {\n return visitor.visitComment(this, context);\n }\n}\n\nexport interface Visitor {\n // Returning a truthy value from `visit()` will prevent `visitAll()` from the call to the typed\n // method and result returned will become the result included in `visitAll()`s result array.\n visit?(node: Node, context: any): any;\n\n visitElement(element: Element, context: any): any;\n visitAttribute(attribute: Attribute, context: any): any;\n visitText(text: Text, context: any): any;\n visitComment(comment: Comment, context: any): any;\n visitExpansion(expansion: Expansion, context: any): any;\n visitExpansionCase(expansionCase: ExpansionCase, context: any): any;\n}\n\nexport function visitAll(visitor: Visitor, nodes: Node[], context: any = null): any[] {\n const result: any[] = [];\n\n const visit = visitor.visit ?\n (ast: Node) => visitor.visit!(ast, context) || ast.visit(visitor, context) :\n (ast: Node) => ast.visit(visitor, context);\n nodes.forEach(ast => {\n const astResult = visit(ast);\n if (astResult) {\n result.push(astResult);\n }\n });\n return result;\n}\n\nexport class RecursiveVisitor implements Visitor {\n constructor() {}\n\n visitElement(ast: Element, context: any): any {\n this.visitChildren(context, visit => {\n visit(ast.attrs);\n visit(ast.children);\n });\n }\n\n visitAttribute(ast: Attribute, context: any): any {}\n visitText(ast: Text, context: any): any {}\n visitComment(ast: Comment, context: any): any {}\n\n visitExpansion(ast: Expansion, context: any): any {\n return this.visitChildren(context, visit => {\n visit(ast.cases);\n });\n }\n\n visitExpansionCase(ast: ExpansionCase, context: any): any {}\n\n private visitChildren(\n context: any, cb: (visit: ((children: V[]|undefined) => void)) => void) {\n let results: any[][] = [];\n let t = this;\n function visit(children: T[]|undefined) {\n if (children) results.push(visitAll(t, children, context));\n }\n cb(visit);\n return Array.prototype.concat.apply([], results);\n }\n}\n\nexport type HtmlAstPath = AstPath;\n\nfunction spanOf(ast: Node) {\n const start = ast.sourceSpan.start.offset;\n let end = ast.sourceSpan.end.offset;\n if (ast instanceof Element) {\n if (ast.endSourceSpan) {\n end = ast.endSourceSpan.end.offset;\n } else if (ast.children && ast.children.length) {\n end = spanOf(ast.children[ast.children.length - 1]).end;\n }\n }\n return {start, end};\n}\n\nexport function findNode(nodes: Node[], position: number): HtmlAstPath {\n const path: Node[] = [];\n\n const visitor = new class extends RecursiveVisitor {\n visit(ast: Node, context: any): any {\n const span = spanOf(ast);\n if (span.start <= position && position < span.end) {\n path.push(ast);\n } else {\n // Returning a value here will result in the children being skipped.\n return true;\n }\n }\n };\n\n visitAll(visitor, nodes);\n\n return new AstPath(path, position);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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// Mapping between all HTML entity names and their unicode representation.\n// Generated from https://html.spec.whatwg.org/multipage/entities.json by stripping\n// the `&` and `;` from the keys and removing the duplicates.\n// see https://www.w3.org/TR/html51/syntax.html#named-character-references\nexport const NAMED_ENTITIES: Record = {\n 'AElig': '\\u00C6',\n 'AMP': '\\u0026',\n 'amp': '\\u0026',\n 'Aacute': '\\u00C1',\n 'Abreve': '\\u0102',\n 'Acirc': '\\u00C2',\n 'Acy': '\\u0410',\n 'Afr': '\\uD835\\uDD04',\n 'Agrave': '\\u00C0',\n 'Alpha': '\\u0391',\n 'Amacr': '\\u0100',\n 'And': '\\u2A53',\n 'Aogon': '\\u0104',\n 'Aopf': '\\uD835\\uDD38',\n 'ApplyFunction': '\\u2061',\n 'af': '\\u2061',\n 'Aring': '\\u00C5',\n 'angst': '\\u00C5',\n 'Ascr': '\\uD835\\uDC9C',\n 'Assign': '\\u2254',\n 'colone': '\\u2254',\n 'coloneq': '\\u2254',\n 'Atilde': '\\u00C3',\n 'Auml': '\\u00C4',\n 'Backslash': '\\u2216',\n 'setminus': '\\u2216',\n 'setmn': '\\u2216',\n 'smallsetminus': '\\u2216',\n 'ssetmn': '\\u2216',\n 'Barv': '\\u2AE7',\n 'Barwed': '\\u2306',\n 'doublebarwedge': '\\u2306',\n 'Bcy': '\\u0411',\n 'Because': '\\u2235',\n 'becaus': '\\u2235',\n 'because': '\\u2235',\n 'Bernoullis': '\\u212C',\n 'Bscr': '\\u212C',\n 'bernou': '\\u212C',\n 'Beta': '\\u0392',\n 'Bfr': '\\uD835\\uDD05',\n 'Bopf': '\\uD835\\uDD39',\n 'Breve': '\\u02D8',\n 'breve': '\\u02D8',\n 'Bumpeq': '\\u224E',\n 'HumpDownHump': '\\u224E',\n 'bump': '\\u224E',\n 'CHcy': '\\u0427',\n 'COPY': '\\u00A9',\n 'copy': '\\u00A9',\n 'Cacute': '\\u0106',\n 'Cap': '\\u22D2',\n 'CapitalDifferentialD': '\\u2145',\n 'DD': '\\u2145',\n 'Cayleys': '\\u212D',\n 'Cfr': '\\u212D',\n 'Ccaron': '\\u010C',\n 'Ccedil': '\\u00C7',\n 'Ccirc': '\\u0108',\n 'Cconint': '\\u2230',\n 'Cdot': '\\u010A',\n 'Cedilla': '\\u00B8',\n 'cedil': '\\u00B8',\n 'CenterDot': '\\u00B7',\n 'centerdot': '\\u00B7',\n 'middot': '\\u00B7',\n 'Chi': '\\u03A7',\n 'CircleDot': '\\u2299',\n 'odot': '\\u2299',\n 'CircleMinus': '\\u2296',\n 'ominus': '\\u2296',\n 'CirclePlus': '\\u2295',\n 'oplus': '\\u2295',\n 'CircleTimes': '\\u2297',\n 'otimes': '\\u2297',\n 'ClockwiseContourIntegral': '\\u2232',\n 'cwconint': '\\u2232',\n 'CloseCurlyDoubleQuote': '\\u201D',\n 'rdquo': '\\u201D',\n 'rdquor': '\\u201D',\n 'CloseCurlyQuote': '\\u2019',\n 'rsquo': '\\u2019',\n 'rsquor': '\\u2019',\n 'Colon': '\\u2237',\n 'Proportion': '\\u2237',\n 'Colone': '\\u2A74',\n 'Congruent': '\\u2261',\n 'equiv': '\\u2261',\n 'Conint': '\\u222F',\n 'DoubleContourIntegral': '\\u222F',\n 'ContourIntegral': '\\u222E',\n 'conint': '\\u222E',\n 'oint': '\\u222E',\n 'Copf': '\\u2102',\n 'complexes': '\\u2102',\n 'Coproduct': '\\u2210',\n 'coprod': '\\u2210',\n 'CounterClockwiseContourIntegral': '\\u2233',\n 'awconint': '\\u2233',\n 'Cross': '\\u2A2F',\n 'Cscr': '\\uD835\\uDC9E',\n 'Cup': '\\u22D3',\n 'CupCap': '\\u224D',\n 'asympeq': '\\u224D',\n 'DDotrahd': '\\u2911',\n 'DJcy': '\\u0402',\n 'DScy': '\\u0405',\n 'DZcy': '\\u040F',\n 'Dagger': '\\u2021',\n 'ddagger': '\\u2021',\n 'Darr': '\\u21A1',\n 'Dashv': '\\u2AE4',\n 'DoubleLeftTee': '\\u2AE4',\n 'Dcaron': '\\u010E',\n 'Dcy': '\\u0414',\n 'Del': '\\u2207',\n 'nabla': '\\u2207',\n 'Delta': '\\u0394',\n 'Dfr': '\\uD835\\uDD07',\n 'DiacriticalAcute': '\\u00B4',\n 'acute': '\\u00B4',\n 'DiacriticalDot': '\\u02D9',\n 'dot': '\\u02D9',\n 'DiacriticalDoubleAcute': '\\u02DD',\n 'dblac': '\\u02DD',\n 'DiacriticalGrave': '\\u0060',\n 'grave': '\\u0060',\n 'DiacriticalTilde': '\\u02DC',\n 'tilde': '\\u02DC',\n 'Diamond': '\\u22C4',\n 'diam': '\\u22C4',\n 'diamond': '\\u22C4',\n 'DifferentialD': '\\u2146',\n 'dd': '\\u2146',\n 'Dopf': '\\uD835\\uDD3B',\n 'Dot': '\\u00A8',\n 'DoubleDot': '\\u00A8',\n 'die': '\\u00A8',\n 'uml': '\\u00A8',\n 'DotDot': '\\u20DC',\n 'DotEqual': '\\u2250',\n 'doteq': '\\u2250',\n 'esdot': '\\u2250',\n 'DoubleDownArrow': '\\u21D3',\n 'Downarrow': '\\u21D3',\n 'dArr': '\\u21D3',\n 'DoubleLeftArrow': '\\u21D0',\n 'Leftarrow': '\\u21D0',\n 'lArr': '\\u21D0',\n 'DoubleLeftRightArrow': '\\u21D4',\n 'Leftrightarrow': '\\u21D4',\n 'hArr': '\\u21D4',\n 'iff': '\\u21D4',\n 'DoubleLongLeftArrow': '\\u27F8',\n 'Longleftarrow': '\\u27F8',\n 'xlArr': '\\u27F8',\n 'DoubleLongLeftRightArrow': '\\u27FA',\n 'Longleftrightarrow': '\\u27FA',\n 'xhArr': '\\u27FA',\n 'DoubleLongRightArrow': '\\u27F9',\n 'Longrightarrow': '\\u27F9',\n 'xrArr': '\\u27F9',\n 'DoubleRightArrow': '\\u21D2',\n 'Implies': '\\u21D2',\n 'Rightarrow': '\\u21D2',\n 'rArr': '\\u21D2',\n 'DoubleRightTee': '\\u22A8',\n 'vDash': '\\u22A8',\n 'DoubleUpArrow': '\\u21D1',\n 'Uparrow': '\\u21D1',\n 'uArr': '\\u21D1',\n 'DoubleUpDownArrow': '\\u21D5',\n 'Updownarrow': '\\u21D5',\n 'vArr': '\\u21D5',\n 'DoubleVerticalBar': '\\u2225',\n 'par': '\\u2225',\n 'parallel': '\\u2225',\n 'shortparallel': '\\u2225',\n 'spar': '\\u2225',\n 'DownArrow': '\\u2193',\n 'ShortDownArrow': '\\u2193',\n 'darr': '\\u2193',\n 'downarrow': '\\u2193',\n 'DownArrowBar': '\\u2913',\n 'DownArrowUpArrow': '\\u21F5',\n 'duarr': '\\u21F5',\n 'DownBreve': '\\u0311',\n 'DownLeftRightVector': '\\u2950',\n 'DownLeftTeeVector': '\\u295E',\n 'DownLeftVector': '\\u21BD',\n 'leftharpoondown': '\\u21BD',\n 'lhard': '\\u21BD',\n 'DownLeftVectorBar': '\\u2956',\n 'DownRightTeeVector': '\\u295F',\n 'DownRightVector': '\\u21C1',\n 'rhard': '\\u21C1',\n 'rightharpoondown': '\\u21C1',\n 'DownRightVectorBar': '\\u2957',\n 'DownTee': '\\u22A4',\n 'top': '\\u22A4',\n 'DownTeeArrow': '\\u21A7',\n 'mapstodown': '\\u21A7',\n 'Dscr': '\\uD835\\uDC9F',\n 'Dstrok': '\\u0110',\n 'ENG': '\\u014A',\n 'ETH': '\\u00D0',\n 'Eacute': '\\u00C9',\n 'Ecaron': '\\u011A',\n 'Ecirc': '\\u00CA',\n 'Ecy': '\\u042D',\n 'Edot': '\\u0116',\n 'Efr': '\\uD835\\uDD08',\n 'Egrave': '\\u00C8',\n 'Element': '\\u2208',\n 'in': '\\u2208',\n 'isin': '\\u2208',\n 'isinv': '\\u2208',\n 'Emacr': '\\u0112',\n 'EmptySmallSquare': '\\u25FB',\n 'EmptyVerySmallSquare': '\\u25AB',\n 'Eogon': '\\u0118',\n 'Eopf': '\\uD835\\uDD3C',\n 'Epsilon': '\\u0395',\n 'Equal': '\\u2A75',\n 'EqualTilde': '\\u2242',\n 'eqsim': '\\u2242',\n 'esim': '\\u2242',\n 'Equilibrium': '\\u21CC',\n 'rightleftharpoons': '\\u21CC',\n 'rlhar': '\\u21CC',\n 'Escr': '\\u2130',\n 'expectation': '\\u2130',\n 'Esim': '\\u2A73',\n 'Eta': '\\u0397',\n 'Euml': '\\u00CB',\n 'Exists': '\\u2203',\n 'exist': '\\u2203',\n 'ExponentialE': '\\u2147',\n 'ee': '\\u2147',\n 'exponentiale': '\\u2147',\n 'Fcy': '\\u0424',\n 'Ffr': '\\uD835\\uDD09',\n 'FilledSmallSquare': '\\u25FC',\n 'FilledVerySmallSquare': '\\u25AA',\n 'blacksquare': '\\u25AA',\n 'squarf': '\\u25AA',\n 'squf': '\\u25AA',\n 'Fopf': '\\uD835\\uDD3D',\n 'ForAll': '\\u2200',\n 'forall': '\\u2200',\n 'Fouriertrf': '\\u2131',\n 'Fscr': '\\u2131',\n 'GJcy': '\\u0403',\n 'GT': '\\u003E',\n 'gt': '\\u003E',\n 'Gamma': '\\u0393',\n 'Gammad': '\\u03DC',\n 'Gbreve': '\\u011E',\n 'Gcedil': '\\u0122',\n 'Gcirc': '\\u011C',\n 'Gcy': '\\u0413',\n 'Gdot': '\\u0120',\n 'Gfr': '\\uD835\\uDD0A',\n 'Gg': '\\u22D9',\n 'ggg': '\\u22D9',\n 'Gopf': '\\uD835\\uDD3E',\n 'GreaterEqual': '\\u2265',\n 'ge': '\\u2265',\n 'geq': '\\u2265',\n 'GreaterEqualLess': '\\u22DB',\n 'gel': '\\u22DB',\n 'gtreqless': '\\u22DB',\n 'GreaterFullEqual': '\\u2267',\n 'gE': '\\u2267',\n 'geqq': '\\u2267',\n 'GreaterGreater': '\\u2AA2',\n 'GreaterLess': '\\u2277',\n 'gl': '\\u2277',\n 'gtrless': '\\u2277',\n 'GreaterSlantEqual': '\\u2A7E',\n 'geqslant': '\\u2A7E',\n 'ges': '\\u2A7E',\n 'GreaterTilde': '\\u2273',\n 'gsim': '\\u2273',\n 'gtrsim': '\\u2273',\n 'Gscr': '\\uD835\\uDCA2',\n 'Gt': '\\u226B',\n 'NestedGreaterGreater': '\\u226B',\n 'gg': '\\u226B',\n 'HARDcy': '\\u042A',\n 'Hacek': '\\u02C7',\n 'caron': '\\u02C7',\n 'Hat': '\\u005E',\n 'Hcirc': '\\u0124',\n 'Hfr': '\\u210C',\n 'Poincareplane': '\\u210C',\n 'HilbertSpace': '\\u210B',\n 'Hscr': '\\u210B',\n 'hamilt': '\\u210B',\n 'Hopf': '\\u210D',\n 'quaternions': '\\u210D',\n 'HorizontalLine': '\\u2500',\n 'boxh': '\\u2500',\n 'Hstrok': '\\u0126',\n 'HumpEqual': '\\u224F',\n 'bumpe': '\\u224F',\n 'bumpeq': '\\u224F',\n 'IEcy': '\\u0415',\n 'IJlig': '\\u0132',\n 'IOcy': '\\u0401',\n 'Iacute': '\\u00CD',\n 'Icirc': '\\u00CE',\n 'Icy': '\\u0418',\n 'Idot': '\\u0130',\n 'Ifr': '\\u2111',\n 'Im': '\\u2111',\n 'image': '\\u2111',\n 'imagpart': '\\u2111',\n 'Igrave': '\\u00CC',\n 'Imacr': '\\u012A',\n 'ImaginaryI': '\\u2148',\n 'ii': '\\u2148',\n 'Int': '\\u222C',\n 'Integral': '\\u222B',\n 'int': '\\u222B',\n 'Intersection': '\\u22C2',\n 'bigcap': '\\u22C2',\n 'xcap': '\\u22C2',\n 'InvisibleComma': '\\u2063',\n 'ic': '\\u2063',\n 'InvisibleTimes': '\\u2062',\n 'it': '\\u2062',\n 'Iogon': '\\u012E',\n 'Iopf': '\\uD835\\uDD40',\n 'Iota': '\\u0399',\n 'Iscr': '\\u2110',\n 'imagline': '\\u2110',\n 'Itilde': '\\u0128',\n 'Iukcy': '\\u0406',\n 'Iuml': '\\u00CF',\n 'Jcirc': '\\u0134',\n 'Jcy': '\\u0419',\n 'Jfr': '\\uD835\\uDD0D',\n 'Jopf': '\\uD835\\uDD41',\n 'Jscr': '\\uD835\\uDCA5',\n 'Jsercy': '\\u0408',\n 'Jukcy': '\\u0404',\n 'KHcy': '\\u0425',\n 'KJcy': '\\u040C',\n 'Kappa': '\\u039A',\n 'Kcedil': '\\u0136',\n 'Kcy': '\\u041A',\n 'Kfr': '\\uD835\\uDD0E',\n 'Kopf': '\\uD835\\uDD42',\n 'Kscr': '\\uD835\\uDCA6',\n 'LJcy': '\\u0409',\n 'LT': '\\u003C',\n 'lt': '\\u003C',\n 'Lacute': '\\u0139',\n 'Lambda': '\\u039B',\n 'Lang': '\\u27EA',\n 'Laplacetrf': '\\u2112',\n 'Lscr': '\\u2112',\n 'lagran': '\\u2112',\n 'Larr': '\\u219E',\n 'twoheadleftarrow': '\\u219E',\n 'Lcaron': '\\u013D',\n 'Lcedil': '\\u013B',\n 'Lcy': '\\u041B',\n 'LeftAngleBracket': '\\u27E8',\n 'lang': '\\u27E8',\n 'langle': '\\u27E8',\n 'LeftArrow': '\\u2190',\n 'ShortLeftArrow': '\\u2190',\n 'larr': '\\u2190',\n 'leftarrow': '\\u2190',\n 'slarr': '\\u2190',\n 'LeftArrowBar': '\\u21E4',\n 'larrb': '\\u21E4',\n 'LeftArrowRightArrow': '\\u21C6',\n 'leftrightarrows': '\\u21C6',\n 'lrarr': '\\u21C6',\n 'LeftCeiling': '\\u2308',\n 'lceil': '\\u2308',\n 'LeftDoubleBracket': '\\u27E6',\n 'lobrk': '\\u27E6',\n 'LeftDownTeeVector': '\\u2961',\n 'LeftDownVector': '\\u21C3',\n 'dharl': '\\u21C3',\n 'downharpoonleft': '\\u21C3',\n 'LeftDownVectorBar': '\\u2959',\n 'LeftFloor': '\\u230A',\n 'lfloor': '\\u230A',\n 'LeftRightArrow': '\\u2194',\n 'harr': '\\u2194',\n 'leftrightarrow': '\\u2194',\n 'LeftRightVector': '\\u294E',\n 'LeftTee': '\\u22A3',\n 'dashv': '\\u22A3',\n 'LeftTeeArrow': '\\u21A4',\n 'mapstoleft': '\\u21A4',\n 'LeftTeeVector': '\\u295A',\n 'LeftTriangle': '\\u22B2',\n 'vartriangleleft': '\\u22B2',\n 'vltri': '\\u22B2',\n 'LeftTriangleBar': '\\u29CF',\n 'LeftTriangleEqual': '\\u22B4',\n 'ltrie': '\\u22B4',\n 'trianglelefteq': '\\u22B4',\n 'LeftUpDownVector': '\\u2951',\n 'LeftUpTeeVector': '\\u2960',\n 'LeftUpVector': '\\u21BF',\n 'uharl': '\\u21BF',\n 'upharpoonleft': '\\u21BF',\n 'LeftUpVectorBar': '\\u2958',\n 'LeftVector': '\\u21BC',\n 'leftharpoonup': '\\u21BC',\n 'lharu': '\\u21BC',\n 'LeftVectorBar': '\\u2952',\n 'LessEqualGreater': '\\u22DA',\n 'leg': '\\u22DA',\n 'lesseqgtr': '\\u22DA',\n 'LessFullEqual': '\\u2266',\n 'lE': '\\u2266',\n 'leqq': '\\u2266',\n 'LessGreater': '\\u2276',\n 'lessgtr': '\\u2276',\n 'lg': '\\u2276',\n 'LessLess': '\\u2AA1',\n 'LessSlantEqual': '\\u2A7D',\n 'leqslant': '\\u2A7D',\n 'les': '\\u2A7D',\n 'LessTilde': '\\u2272',\n 'lesssim': '\\u2272',\n 'lsim': '\\u2272',\n 'Lfr': '\\uD835\\uDD0F',\n 'Ll': '\\u22D8',\n 'Lleftarrow': '\\u21DA',\n 'lAarr': '\\u21DA',\n 'Lmidot': '\\u013F',\n 'LongLeftArrow': '\\u27F5',\n 'longleftarrow': '\\u27F5',\n 'xlarr': '\\u27F5',\n 'LongLeftRightArrow': '\\u27F7',\n 'longleftrightarrow': '\\u27F7',\n 'xharr': '\\u27F7',\n 'LongRightArrow': '\\u27F6',\n 'longrightarrow': '\\u27F6',\n 'xrarr': '\\u27F6',\n 'Lopf': '\\uD835\\uDD43',\n 'LowerLeftArrow': '\\u2199',\n 'swarr': '\\u2199',\n 'swarrow': '\\u2199',\n 'LowerRightArrow': '\\u2198',\n 'searr': '\\u2198',\n 'searrow': '\\u2198',\n 'Lsh': '\\u21B0',\n 'lsh': '\\u21B0',\n 'Lstrok': '\\u0141',\n 'Lt': '\\u226A',\n 'NestedLessLess': '\\u226A',\n 'll': '\\u226A',\n 'Map': '\\u2905',\n 'Mcy': '\\u041C',\n 'MediumSpace': '\\u205F',\n 'Mellintrf': '\\u2133',\n 'Mscr': '\\u2133',\n 'phmmat': '\\u2133',\n 'Mfr': '\\uD835\\uDD10',\n 'MinusPlus': '\\u2213',\n 'mnplus': '\\u2213',\n 'mp': '\\u2213',\n 'Mopf': '\\uD835\\uDD44',\n 'Mu': '\\u039C',\n 'NJcy': '\\u040A',\n 'Nacute': '\\u0143',\n 'Ncaron': '\\u0147',\n 'Ncedil': '\\u0145',\n 'Ncy': '\\u041D',\n 'NegativeMediumSpace': '\\u200B',\n 'NegativeThickSpace': '\\u200B',\n 'NegativeThinSpace': '\\u200B',\n 'NegativeVeryThinSpace': '\\u200B',\n 'ZeroWidthSpace': '\\u200B',\n 'NewLine': '\\u000A',\n 'Nfr': '\\uD835\\uDD11',\n 'NoBreak': '\\u2060',\n 'NonBreakingSpace': '\\u00A0',\n 'nbsp': '\\u00A0',\n 'Nopf': '\\u2115',\n 'naturals': '\\u2115',\n 'Not': '\\u2AEC',\n 'NotCongruent': '\\u2262',\n 'nequiv': '\\u2262',\n 'NotCupCap': '\\u226D',\n 'NotDoubleVerticalBar': '\\u2226',\n 'npar': '\\u2226',\n 'nparallel': '\\u2226',\n 'nshortparallel': '\\u2226',\n 'nspar': '\\u2226',\n 'NotElement': '\\u2209',\n 'notin': '\\u2209',\n 'notinva': '\\u2209',\n 'NotEqual': '\\u2260',\n 'ne': '\\u2260',\n 'NotEqualTilde': '\\u2242\\u0338',\n 'nesim': '\\u2242\\u0338',\n 'NotExists': '\\u2204',\n 'nexist': '\\u2204',\n 'nexists': '\\u2204',\n 'NotGreater': '\\u226F',\n 'ngt': '\\u226F',\n 'ngtr': '\\u226F',\n 'NotGreaterEqual': '\\u2271',\n 'nge': '\\u2271',\n 'ngeq': '\\u2271',\n 'NotGreaterFullEqual': '\\u2267\\u0338',\n 'ngE': '\\u2267\\u0338',\n 'ngeqq': '\\u2267\\u0338',\n 'NotGreaterGreater': '\\u226B\\u0338',\n 'nGtv': '\\u226B\\u0338',\n 'NotGreaterLess': '\\u2279',\n 'ntgl': '\\u2279',\n 'NotGreaterSlantEqual': '\\u2A7E\\u0338',\n 'ngeqslant': '\\u2A7E\\u0338',\n 'nges': '\\u2A7E\\u0338',\n 'NotGreaterTilde': '\\u2275',\n 'ngsim': '\\u2275',\n 'NotHumpDownHump': '\\u224E\\u0338',\n 'nbump': '\\u224E\\u0338',\n 'NotHumpEqual': '\\u224F\\u0338',\n 'nbumpe': '\\u224F\\u0338',\n 'NotLeftTriangle': '\\u22EA',\n 'nltri': '\\u22EA',\n 'ntriangleleft': '\\u22EA',\n 'NotLeftTriangleBar': '\\u29CF\\u0338',\n 'NotLeftTriangleEqual': '\\u22EC',\n 'nltrie': '\\u22EC',\n 'ntrianglelefteq': '\\u22EC',\n 'NotLess': '\\u226E',\n 'nless': '\\u226E',\n 'nlt': '\\u226E',\n 'NotLessEqual': '\\u2270',\n 'nle': '\\u2270',\n 'nleq': '\\u2270',\n 'NotLessGreater': '\\u2278',\n 'ntlg': '\\u2278',\n 'NotLessLess': '\\u226A\\u0338',\n 'nLtv': '\\u226A\\u0338',\n 'NotLessSlantEqual': '\\u2A7D\\u0338',\n 'nleqslant': '\\u2A7D\\u0338',\n 'nles': '\\u2A7D\\u0338',\n 'NotLessTilde': '\\u2274',\n 'nlsim': '\\u2274',\n 'NotNestedGreaterGreater': '\\u2AA2\\u0338',\n 'NotNestedLessLess': '\\u2AA1\\u0338',\n 'NotPrecedes': '\\u2280',\n 'npr': '\\u2280',\n 'nprec': '\\u2280',\n 'NotPrecedesEqual': '\\u2AAF\\u0338',\n 'npre': '\\u2AAF\\u0338',\n 'npreceq': '\\u2AAF\\u0338',\n 'NotPrecedesSlantEqual': '\\u22E0',\n 'nprcue': '\\u22E0',\n 'NotReverseElement': '\\u220C',\n 'notni': '\\u220C',\n 'notniva': '\\u220C',\n 'NotRightTriangle': '\\u22EB',\n 'nrtri': '\\u22EB',\n 'ntriangleright': '\\u22EB',\n 'NotRightTriangleBar': '\\u29D0\\u0338',\n 'NotRightTriangleEqual': '\\u22ED',\n 'nrtrie': '\\u22ED',\n 'ntrianglerighteq': '\\u22ED',\n 'NotSquareSubset': '\\u228F\\u0338',\n 'NotSquareSubsetEqual': '\\u22E2',\n 'nsqsube': '\\u22E2',\n 'NotSquareSuperset': '\\u2290\\u0338',\n 'NotSquareSupersetEqual': '\\u22E3',\n 'nsqsupe': '\\u22E3',\n 'NotSubset': '\\u2282\\u20D2',\n 'nsubset': '\\u2282\\u20D2',\n 'vnsub': '\\u2282\\u20D2',\n 'NotSubsetEqual': '\\u2288',\n 'nsube': '\\u2288',\n 'nsubseteq': '\\u2288',\n 'NotSucceeds': '\\u2281',\n 'nsc': '\\u2281',\n 'nsucc': '\\u2281',\n 'NotSucceedsEqual': '\\u2AB0\\u0338',\n 'nsce': '\\u2AB0\\u0338',\n 'nsucceq': '\\u2AB0\\u0338',\n 'NotSucceedsSlantEqual': '\\u22E1',\n 'nsccue': '\\u22E1',\n 'NotSucceedsTilde': '\\u227F\\u0338',\n 'NotSuperset': '\\u2283\\u20D2',\n 'nsupset': '\\u2283\\u20D2',\n 'vnsup': '\\u2283\\u20D2',\n 'NotSupersetEqual': '\\u2289',\n 'nsupe': '\\u2289',\n 'nsupseteq': '\\u2289',\n 'NotTilde': '\\u2241',\n 'nsim': '\\u2241',\n 'NotTildeEqual': '\\u2244',\n 'nsime': '\\u2244',\n 'nsimeq': '\\u2244',\n 'NotTildeFullEqual': '\\u2247',\n 'ncong': '\\u2247',\n 'NotTildeTilde': '\\u2249',\n 'nap': '\\u2249',\n 'napprox': '\\u2249',\n 'NotVerticalBar': '\\u2224',\n 'nmid': '\\u2224',\n 'nshortmid': '\\u2224',\n 'nsmid': '\\u2224',\n 'Nscr': '\\uD835\\uDCA9',\n 'Ntilde': '\\u00D1',\n 'Nu': '\\u039D',\n 'OElig': '\\u0152',\n 'Oacute': '\\u00D3',\n 'Ocirc': '\\u00D4',\n 'Ocy': '\\u041E',\n 'Odblac': '\\u0150',\n 'Ofr': '\\uD835\\uDD12',\n 'Ograve': '\\u00D2',\n 'Omacr': '\\u014C',\n 'Omega': '\\u03A9',\n 'ohm': '\\u03A9',\n 'Omicron': '\\u039F',\n 'Oopf': '\\uD835\\uDD46',\n 'OpenCurlyDoubleQuote': '\\u201C',\n 'ldquo': '\\u201C',\n 'OpenCurlyQuote': '\\u2018',\n 'lsquo': '\\u2018',\n 'Or': '\\u2A54',\n 'Oscr': '\\uD835\\uDCAA',\n 'Oslash': '\\u00D8',\n 'Otilde': '\\u00D5',\n 'Otimes': '\\u2A37',\n 'Ouml': '\\u00D6',\n 'OverBar': '\\u203E',\n 'oline': '\\u203E',\n 'OverBrace': '\\u23DE',\n 'OverBracket': '\\u23B4',\n 'tbrk': '\\u23B4',\n 'OverParenthesis': '\\u23DC',\n 'PartialD': '\\u2202',\n 'part': '\\u2202',\n 'Pcy': '\\u041F',\n 'Pfr': '\\uD835\\uDD13',\n 'Phi': '\\u03A6',\n 'Pi': '\\u03A0',\n 'PlusMinus': '\\u00B1',\n 'plusmn': '\\u00B1',\n 'pm': '\\u00B1',\n 'Popf': '\\u2119',\n 'primes': '\\u2119',\n 'Pr': '\\u2ABB',\n 'Precedes': '\\u227A',\n 'pr': '\\u227A',\n 'prec': '\\u227A',\n 'PrecedesEqual': '\\u2AAF',\n 'pre': '\\u2AAF',\n 'preceq': '\\u2AAF',\n 'PrecedesSlantEqual': '\\u227C',\n 'prcue': '\\u227C',\n 'preccurlyeq': '\\u227C',\n 'PrecedesTilde': '\\u227E',\n 'precsim': '\\u227E',\n 'prsim': '\\u227E',\n 'Prime': '\\u2033',\n 'Product': '\\u220F',\n 'prod': '\\u220F',\n 'Proportional': '\\u221D',\n 'prop': '\\u221D',\n 'propto': '\\u221D',\n 'varpropto': '\\u221D',\n 'vprop': '\\u221D',\n 'Pscr': '\\uD835\\uDCAB',\n 'Psi': '\\u03A8',\n 'QUOT': '\\u0022',\n 'quot': '\\u0022',\n 'Qfr': '\\uD835\\uDD14',\n 'Qopf': '\\u211A',\n 'rationals': '\\u211A',\n 'Qscr': '\\uD835\\uDCAC',\n 'RBarr': '\\u2910',\n 'drbkarow': '\\u2910',\n 'REG': '\\u00AE',\n 'circledR': '\\u00AE',\n 'reg': '\\u00AE',\n 'Racute': '\\u0154',\n 'Rang': '\\u27EB',\n 'Rarr': '\\u21A0',\n 'twoheadrightarrow': '\\u21A0',\n 'Rarrtl': '\\u2916',\n 'Rcaron': '\\u0158',\n 'Rcedil': '\\u0156',\n 'Rcy': '\\u0420',\n 'Re': '\\u211C',\n 'Rfr': '\\u211C',\n 'real': '\\u211C',\n 'realpart': '\\u211C',\n 'ReverseElement': '\\u220B',\n 'SuchThat': '\\u220B',\n 'ni': '\\u220B',\n 'niv': '\\u220B',\n 'ReverseEquilibrium': '\\u21CB',\n 'leftrightharpoons': '\\u21CB',\n 'lrhar': '\\u21CB',\n 'ReverseUpEquilibrium': '\\u296F',\n 'duhar': '\\u296F',\n 'Rho': '\\u03A1',\n 'RightAngleBracket': '\\u27E9',\n 'rang': '\\u27E9',\n 'rangle': '\\u27E9',\n 'RightArrow': '\\u2192',\n 'ShortRightArrow': '\\u2192',\n 'rarr': '\\u2192',\n 'rightarrow': '\\u2192',\n 'srarr': '\\u2192',\n 'RightArrowBar': '\\u21E5',\n 'rarrb': '\\u21E5',\n 'RightArrowLeftArrow': '\\u21C4',\n 'rightleftarrows': '\\u21C4',\n 'rlarr': '\\u21C4',\n 'RightCeiling': '\\u2309',\n 'rceil': '\\u2309',\n 'RightDoubleBracket': '\\u27E7',\n 'robrk': '\\u27E7',\n 'RightDownTeeVector': '\\u295D',\n 'RightDownVector': '\\u21C2',\n 'dharr': '\\u21C2',\n 'downharpoonright': '\\u21C2',\n 'RightDownVectorBar': '\\u2955',\n 'RightFloor': '\\u230B',\n 'rfloor': '\\u230B',\n 'RightTee': '\\u22A2',\n 'vdash': '\\u22A2',\n 'RightTeeArrow': '\\u21A6',\n 'map': '\\u21A6',\n 'mapsto': '\\u21A6',\n 'RightTeeVector': '\\u295B',\n 'RightTriangle': '\\u22B3',\n 'vartriangleright': '\\u22B3',\n 'vrtri': '\\u22B3',\n 'RightTriangleBar': '\\u29D0',\n 'RightTriangleEqual': '\\u22B5',\n 'rtrie': '\\u22B5',\n 'trianglerighteq': '\\u22B5',\n 'RightUpDownVector': '\\u294F',\n 'RightUpTeeVector': '\\u295C',\n 'RightUpVector': '\\u21BE',\n 'uharr': '\\u21BE',\n 'upharpoonright': '\\u21BE',\n 'RightUpVectorBar': '\\u2954',\n 'RightVector': '\\u21C0',\n 'rharu': '\\u21C0',\n 'rightharpoonup': '\\u21C0',\n 'RightVectorBar': '\\u2953',\n 'Ropf': '\\u211D',\n 'reals': '\\u211D',\n 'RoundImplies': '\\u2970',\n 'Rrightarrow': '\\u21DB',\n 'rAarr': '\\u21DB',\n 'Rscr': '\\u211B',\n 'realine': '\\u211B',\n 'Rsh': '\\u21B1',\n 'rsh': '\\u21B1',\n 'RuleDelayed': '\\u29F4',\n 'SHCHcy': '\\u0429',\n 'SHcy': '\\u0428',\n 'SOFTcy': '\\u042C',\n 'Sacute': '\\u015A',\n 'Sc': '\\u2ABC',\n 'Scaron': '\\u0160',\n 'Scedil': '\\u015E',\n 'Scirc': '\\u015C',\n 'Scy': '\\u0421',\n 'Sfr': '\\uD835\\uDD16',\n 'ShortUpArrow': '\\u2191',\n 'UpArrow': '\\u2191',\n 'uarr': '\\u2191',\n 'uparrow': '\\u2191',\n 'Sigma': '\\u03A3',\n 'SmallCircle': '\\u2218',\n 'compfn': '\\u2218',\n 'Sopf': '\\uD835\\uDD4A',\n 'Sqrt': '\\u221A',\n 'radic': '\\u221A',\n 'Square': '\\u25A1',\n 'squ': '\\u25A1',\n 'square': '\\u25A1',\n 'SquareIntersection': '\\u2293',\n 'sqcap': '\\u2293',\n 'SquareSubset': '\\u228F',\n 'sqsub': '\\u228F',\n 'sqsubset': '\\u228F',\n 'SquareSubsetEqual': '\\u2291',\n 'sqsube': '\\u2291',\n 'sqsubseteq': '\\u2291',\n 'SquareSuperset': '\\u2290',\n 'sqsup': '\\u2290',\n 'sqsupset': '\\u2290',\n 'SquareSupersetEqual': '\\u2292',\n 'sqsupe': '\\u2292',\n 'sqsupseteq': '\\u2292',\n 'SquareUnion': '\\u2294',\n 'sqcup': '\\u2294',\n 'Sscr': '\\uD835\\uDCAE',\n 'Star': '\\u22C6',\n 'sstarf': '\\u22C6',\n 'Sub': '\\u22D0',\n 'Subset': '\\u22D0',\n 'SubsetEqual': '\\u2286',\n 'sube': '\\u2286',\n 'subseteq': '\\u2286',\n 'Succeeds': '\\u227B',\n 'sc': '\\u227B',\n 'succ': '\\u227B',\n 'SucceedsEqual': '\\u2AB0',\n 'sce': '\\u2AB0',\n 'succeq': '\\u2AB0',\n 'SucceedsSlantEqual': '\\u227D',\n 'sccue': '\\u227D',\n 'succcurlyeq': '\\u227D',\n 'SucceedsTilde': '\\u227F',\n 'scsim': '\\u227F',\n 'succsim': '\\u227F',\n 'Sum': '\\u2211',\n 'sum': '\\u2211',\n 'Sup': '\\u22D1',\n 'Supset': '\\u22D1',\n 'Superset': '\\u2283',\n 'sup': '\\u2283',\n 'supset': '\\u2283',\n 'SupersetEqual': '\\u2287',\n 'supe': '\\u2287',\n 'supseteq': '\\u2287',\n 'THORN': '\\u00DE',\n 'TRADE': '\\u2122',\n 'trade': '\\u2122',\n 'TSHcy': '\\u040B',\n 'TScy': '\\u0426',\n 'Tab': '\\u0009',\n 'Tau': '\\u03A4',\n 'Tcaron': '\\u0164',\n 'Tcedil': '\\u0162',\n 'Tcy': '\\u0422',\n 'Tfr': '\\uD835\\uDD17',\n 'Therefore': '\\u2234',\n 'there4': '\\u2234',\n 'therefore': '\\u2234',\n 'Theta': '\\u0398',\n 'ThickSpace': '\\u205F\\u200A',\n 'ThinSpace': '\\u2009',\n 'thinsp': '\\u2009',\n 'Tilde': '\\u223C',\n 'sim': '\\u223C',\n 'thicksim': '\\u223C',\n 'thksim': '\\u223C',\n 'TildeEqual': '\\u2243',\n 'sime': '\\u2243',\n 'simeq': '\\u2243',\n 'TildeFullEqual': '\\u2245',\n 'cong': '\\u2245',\n 'TildeTilde': '\\u2248',\n 'ap': '\\u2248',\n 'approx': '\\u2248',\n 'asymp': '\\u2248',\n 'thickapprox': '\\u2248',\n 'thkap': '\\u2248',\n 'Topf': '\\uD835\\uDD4B',\n 'TripleDot': '\\u20DB',\n 'tdot': '\\u20DB',\n 'Tscr': '\\uD835\\uDCAF',\n 'Tstrok': '\\u0166',\n 'Uacute': '\\u00DA',\n 'Uarr': '\\u219F',\n 'Uarrocir': '\\u2949',\n 'Ubrcy': '\\u040E',\n 'Ubreve': '\\u016C',\n 'Ucirc': '\\u00DB',\n 'Ucy': '\\u0423',\n 'Udblac': '\\u0170',\n 'Ufr': '\\uD835\\uDD18',\n 'Ugrave': '\\u00D9',\n 'Umacr': '\\u016A',\n 'UnderBar': '\\u005F',\n 'lowbar': '\\u005F',\n 'UnderBrace': '\\u23DF',\n 'UnderBracket': '\\u23B5',\n 'bbrk': '\\u23B5',\n 'UnderParenthesis': '\\u23DD',\n 'Union': '\\u22C3',\n 'bigcup': '\\u22C3',\n 'xcup': '\\u22C3',\n 'UnionPlus': '\\u228E',\n 'uplus': '\\u228E',\n 'Uogon': '\\u0172',\n 'Uopf': '\\uD835\\uDD4C',\n 'UpArrowBar': '\\u2912',\n 'UpArrowDownArrow': '\\u21C5',\n 'udarr': '\\u21C5',\n 'UpDownArrow': '\\u2195',\n 'updownarrow': '\\u2195',\n 'varr': '\\u2195',\n 'UpEquilibrium': '\\u296E',\n 'udhar': '\\u296E',\n 'UpTee': '\\u22A5',\n 'bot': '\\u22A5',\n 'bottom': '\\u22A5',\n 'perp': '\\u22A5',\n 'UpTeeArrow': '\\u21A5',\n 'mapstoup': '\\u21A5',\n 'UpperLeftArrow': '\\u2196',\n 'nwarr': '\\u2196',\n 'nwarrow': '\\u2196',\n 'UpperRightArrow': '\\u2197',\n 'nearr': '\\u2197',\n 'nearrow': '\\u2197',\n 'Upsi': '\\u03D2',\n 'upsih': '\\u03D2',\n 'Upsilon': '\\u03A5',\n 'Uring': '\\u016E',\n 'Uscr': '\\uD835\\uDCB0',\n 'Utilde': '\\u0168',\n 'Uuml': '\\u00DC',\n 'VDash': '\\u22AB',\n 'Vbar': '\\u2AEB',\n 'Vcy': '\\u0412',\n 'Vdash': '\\u22A9',\n 'Vdashl': '\\u2AE6',\n 'Vee': '\\u22C1',\n 'bigvee': '\\u22C1',\n 'xvee': '\\u22C1',\n 'Verbar': '\\u2016',\n 'Vert': '\\u2016',\n 'VerticalBar': '\\u2223',\n 'mid': '\\u2223',\n 'shortmid': '\\u2223',\n 'smid': '\\u2223',\n 'VerticalLine': '\\u007C',\n 'verbar': '\\u007C',\n 'vert': '\\u007C',\n 'VerticalSeparator': '\\u2758',\n 'VerticalTilde': '\\u2240',\n 'wr': '\\u2240',\n 'wreath': '\\u2240',\n 'VeryThinSpace': '\\u200A',\n 'hairsp': '\\u200A',\n 'Vfr': '\\uD835\\uDD19',\n 'Vopf': '\\uD835\\uDD4D',\n 'Vscr': '\\uD835\\uDCB1',\n 'Vvdash': '\\u22AA',\n 'Wcirc': '\\u0174',\n 'Wedge': '\\u22C0',\n 'bigwedge': '\\u22C0',\n 'xwedge': '\\u22C0',\n 'Wfr': '\\uD835\\uDD1A',\n 'Wopf': '\\uD835\\uDD4E',\n 'Wscr': '\\uD835\\uDCB2',\n 'Xfr': '\\uD835\\uDD1B',\n 'Xi': '\\u039E',\n 'Xopf': '\\uD835\\uDD4F',\n 'Xscr': '\\uD835\\uDCB3',\n 'YAcy': '\\u042F',\n 'YIcy': '\\u0407',\n 'YUcy': '\\u042E',\n 'Yacute': '\\u00DD',\n 'Ycirc': '\\u0176',\n 'Ycy': '\\u042B',\n 'Yfr': '\\uD835\\uDD1C',\n 'Yopf': '\\uD835\\uDD50',\n 'Yscr': '\\uD835\\uDCB4',\n 'Yuml': '\\u0178',\n 'ZHcy': '\\u0416',\n 'Zacute': '\\u0179',\n 'Zcaron': '\\u017D',\n 'Zcy': '\\u0417',\n 'Zdot': '\\u017B',\n 'Zeta': '\\u0396',\n 'Zfr': '\\u2128',\n 'zeetrf': '\\u2128',\n 'Zopf': '\\u2124',\n 'integers': '\\u2124',\n 'Zscr': '\\uD835\\uDCB5',\n 'aacute': '\\u00E1',\n 'abreve': '\\u0103',\n 'ac': '\\u223E',\n 'mstpos': '\\u223E',\n 'acE': '\\u223E\\u0333',\n 'acd': '\\u223F',\n 'acirc': '\\u00E2',\n 'acy': '\\u0430',\n 'aelig': '\\u00E6',\n 'afr': '\\uD835\\uDD1E',\n 'agrave': '\\u00E0',\n 'alefsym': '\\u2135',\n 'aleph': '\\u2135',\n 'alpha': '\\u03B1',\n 'amacr': '\\u0101',\n 'amalg': '\\u2A3F',\n 'and': '\\u2227',\n 'wedge': '\\u2227',\n 'andand': '\\u2A55',\n 'andd': '\\u2A5C',\n 'andslope': '\\u2A58',\n 'andv': '\\u2A5A',\n 'ang': '\\u2220',\n 'angle': '\\u2220',\n 'ange': '\\u29A4',\n 'angmsd': '\\u2221',\n 'measuredangle': '\\u2221',\n 'angmsdaa': '\\u29A8',\n 'angmsdab': '\\u29A9',\n 'angmsdac': '\\u29AA',\n 'angmsdad': '\\u29AB',\n 'angmsdae': '\\u29AC',\n 'angmsdaf': '\\u29AD',\n 'angmsdag': '\\u29AE',\n 'angmsdah': '\\u29AF',\n 'angrt': '\\u221F',\n 'angrtvb': '\\u22BE',\n 'angrtvbd': '\\u299D',\n 'angsph': '\\u2222',\n 'angzarr': '\\u237C',\n 'aogon': '\\u0105',\n 'aopf': '\\uD835\\uDD52',\n 'apE': '\\u2A70',\n 'apacir': '\\u2A6F',\n 'ape': '\\u224A',\n 'approxeq': '\\u224A',\n 'apid': '\\u224B',\n 'apos': '\\u0027',\n 'aring': '\\u00E5',\n 'ascr': '\\uD835\\uDCB6',\n 'ast': '\\u002A',\n 'midast': '\\u002A',\n 'atilde': '\\u00E3',\n 'auml': '\\u00E4',\n 'awint': '\\u2A11',\n 'bNot': '\\u2AED',\n 'backcong': '\\u224C',\n 'bcong': '\\u224C',\n 'backepsilon': '\\u03F6',\n 'bepsi': '\\u03F6',\n 'backprime': '\\u2035',\n 'bprime': '\\u2035',\n 'backsim': '\\u223D',\n 'bsim': '\\u223D',\n 'backsimeq': '\\u22CD',\n 'bsime': '\\u22CD',\n 'barvee': '\\u22BD',\n 'barwed': '\\u2305',\n 'barwedge': '\\u2305',\n 'bbrktbrk': '\\u23B6',\n 'bcy': '\\u0431',\n 'bdquo': '\\u201E',\n 'ldquor': '\\u201E',\n 'bemptyv': '\\u29B0',\n 'beta': '\\u03B2',\n 'beth': '\\u2136',\n 'between': '\\u226C',\n 'twixt': '\\u226C',\n 'bfr': '\\uD835\\uDD1F',\n 'bigcirc': '\\u25EF',\n 'xcirc': '\\u25EF',\n 'bigodot': '\\u2A00',\n 'xodot': '\\u2A00',\n 'bigoplus': '\\u2A01',\n 'xoplus': '\\u2A01',\n 'bigotimes': '\\u2A02',\n 'xotime': '\\u2A02',\n 'bigsqcup': '\\u2A06',\n 'xsqcup': '\\u2A06',\n 'bigstar': '\\u2605',\n 'starf': '\\u2605',\n 'bigtriangledown': '\\u25BD',\n 'xdtri': '\\u25BD',\n 'bigtriangleup': '\\u25B3',\n 'xutri': '\\u25B3',\n 'biguplus': '\\u2A04',\n 'xuplus': '\\u2A04',\n 'bkarow': '\\u290D',\n 'rbarr': '\\u290D',\n 'blacklozenge': '\\u29EB',\n 'lozf': '\\u29EB',\n 'blacktriangle': '\\u25B4',\n 'utrif': '\\u25B4',\n 'blacktriangledown': '\\u25BE',\n 'dtrif': '\\u25BE',\n 'blacktriangleleft': '\\u25C2',\n 'ltrif': '\\u25C2',\n 'blacktriangleright': '\\u25B8',\n 'rtrif': '\\u25B8',\n 'blank': '\\u2423',\n 'blk12': '\\u2592',\n 'blk14': '\\u2591',\n 'blk34': '\\u2593',\n 'block': '\\u2588',\n 'bne': '\\u003D\\u20E5',\n 'bnequiv': '\\u2261\\u20E5',\n 'bnot': '\\u2310',\n 'bopf': '\\uD835\\uDD53',\n 'bowtie': '\\u22C8',\n 'boxDL': '\\u2557',\n 'boxDR': '\\u2554',\n 'boxDl': '\\u2556',\n 'boxDr': '\\u2553',\n 'boxH': '\\u2550',\n 'boxHD': '\\u2566',\n 'boxHU': '\\u2569',\n 'boxHd': '\\u2564',\n 'boxHu': '\\u2567',\n 'boxUL': '\\u255D',\n 'boxUR': '\\u255A',\n 'boxUl': '\\u255C',\n 'boxUr': '\\u2559',\n 'boxV': '\\u2551',\n 'boxVH': '\\u256C',\n 'boxVL': '\\u2563',\n 'boxVR': '\\u2560',\n 'boxVh': '\\u256B',\n 'boxVl': '\\u2562',\n 'boxVr': '\\u255F',\n 'boxbox': '\\u29C9',\n 'boxdL': '\\u2555',\n 'boxdR': '\\u2552',\n 'boxdl': '\\u2510',\n 'boxdr': '\\u250C',\n 'boxhD': '\\u2565',\n 'boxhU': '\\u2568',\n 'boxhd': '\\u252C',\n 'boxhu': '\\u2534',\n 'boxminus': '\\u229F',\n 'minusb': '\\u229F',\n 'boxplus': '\\u229E',\n 'plusb': '\\u229E',\n 'boxtimes': '\\u22A0',\n 'timesb': '\\u22A0',\n 'boxuL': '\\u255B',\n 'boxuR': '\\u2558',\n 'boxul': '\\u2518',\n 'boxur': '\\u2514',\n 'boxv': '\\u2502',\n 'boxvH': '\\u256A',\n 'boxvL': '\\u2561',\n 'boxvR': '\\u255E',\n 'boxvh': '\\u253C',\n 'boxvl': '\\u2524',\n 'boxvr': '\\u251C',\n 'brvbar': '\\u00A6',\n 'bscr': '\\uD835\\uDCB7',\n 'bsemi': '\\u204F',\n 'bsol': '\\u005C',\n 'bsolb': '\\u29C5',\n 'bsolhsub': '\\u27C8',\n 'bull': '\\u2022',\n 'bullet': '\\u2022',\n 'bumpE': '\\u2AAE',\n 'cacute': '\\u0107',\n 'cap': '\\u2229',\n 'capand': '\\u2A44',\n 'capbrcup': '\\u2A49',\n 'capcap': '\\u2A4B',\n 'capcup': '\\u2A47',\n 'capdot': '\\u2A40',\n 'caps': '\\u2229\\uFE00',\n 'caret': '\\u2041',\n 'ccaps': '\\u2A4D',\n 'ccaron': '\\u010D',\n 'ccedil': '\\u00E7',\n 'ccirc': '\\u0109',\n 'ccups': '\\u2A4C',\n 'ccupssm': '\\u2A50',\n 'cdot': '\\u010B',\n 'cemptyv': '\\u29B2',\n 'cent': '\\u00A2',\n 'cfr': '\\uD835\\uDD20',\n 'chcy': '\\u0447',\n 'check': '\\u2713',\n 'checkmark': '\\u2713',\n 'chi': '\\u03C7',\n 'cir': '\\u25CB',\n 'cirE': '\\u29C3',\n 'circ': '\\u02C6',\n 'circeq': '\\u2257',\n 'cire': '\\u2257',\n 'circlearrowleft': '\\u21BA',\n 'olarr': '\\u21BA',\n 'circlearrowright': '\\u21BB',\n 'orarr': '\\u21BB',\n 'circledS': '\\u24C8',\n 'oS': '\\u24C8',\n 'circledast': '\\u229B',\n 'oast': '\\u229B',\n 'circledcirc': '\\u229A',\n 'ocir': '\\u229A',\n 'circleddash': '\\u229D',\n 'odash': '\\u229D',\n 'cirfnint': '\\u2A10',\n 'cirmid': '\\u2AEF',\n 'cirscir': '\\u29C2',\n 'clubs': '\\u2663',\n 'clubsuit': '\\u2663',\n 'colon': '\\u003A',\n 'comma': '\\u002C',\n 'commat': '\\u0040',\n 'comp': '\\u2201',\n 'complement': '\\u2201',\n 'congdot': '\\u2A6D',\n 'copf': '\\uD835\\uDD54',\n 'copysr': '\\u2117',\n 'crarr': '\\u21B5',\n 'cross': '\\u2717',\n 'cscr': '\\uD835\\uDCB8',\n 'csub': '\\u2ACF',\n 'csube': '\\u2AD1',\n 'csup': '\\u2AD0',\n 'csupe': '\\u2AD2',\n 'ctdot': '\\u22EF',\n 'cudarrl': '\\u2938',\n 'cudarrr': '\\u2935',\n 'cuepr': '\\u22DE',\n 'curlyeqprec': '\\u22DE',\n 'cuesc': '\\u22DF',\n 'curlyeqsucc': '\\u22DF',\n 'cularr': '\\u21B6',\n 'curvearrowleft': '\\u21B6',\n 'cularrp': '\\u293D',\n 'cup': '\\u222A',\n 'cupbrcap': '\\u2A48',\n 'cupcap': '\\u2A46',\n 'cupcup': '\\u2A4A',\n 'cupdot': '\\u228D',\n 'cupor': '\\u2A45',\n 'cups': '\\u222A\\uFE00',\n 'curarr': '\\u21B7',\n 'curvearrowright': '\\u21B7',\n 'curarrm': '\\u293C',\n 'curlyvee': '\\u22CE',\n 'cuvee': '\\u22CE',\n 'curlywedge': '\\u22CF',\n 'cuwed': '\\u22CF',\n 'curren': '\\u00A4',\n 'cwint': '\\u2231',\n 'cylcty': '\\u232D',\n 'dHar': '\\u2965',\n 'dagger': '\\u2020',\n 'daleth': '\\u2138',\n 'dash': '\\u2010',\n 'hyphen': '\\u2010',\n 'dbkarow': '\\u290F',\n 'rBarr': '\\u290F',\n 'dcaron': '\\u010F',\n 'dcy': '\\u0434',\n 'ddarr': '\\u21CA',\n 'downdownarrows': '\\u21CA',\n 'ddotseq': '\\u2A77',\n 'eDDot': '\\u2A77',\n 'deg': '\\u00B0',\n 'delta': '\\u03B4',\n 'demptyv': '\\u29B1',\n 'dfisht': '\\u297F',\n 'dfr': '\\uD835\\uDD21',\n 'diamondsuit': '\\u2666',\n 'diams': '\\u2666',\n 'digamma': '\\u03DD',\n 'gammad': '\\u03DD',\n 'disin': '\\u22F2',\n 'div': '\\u00F7',\n 'divide': '\\u00F7',\n 'divideontimes': '\\u22C7',\n 'divonx': '\\u22C7',\n 'djcy': '\\u0452',\n 'dlcorn': '\\u231E',\n 'llcorner': '\\u231E',\n 'dlcrop': '\\u230D',\n 'dollar': '\\u0024',\n 'dopf': '\\uD835\\uDD55',\n 'doteqdot': '\\u2251',\n 'eDot': '\\u2251',\n 'dotminus': '\\u2238',\n 'minusd': '\\u2238',\n 'dotplus': '\\u2214',\n 'plusdo': '\\u2214',\n 'dotsquare': '\\u22A1',\n 'sdotb': '\\u22A1',\n 'drcorn': '\\u231F',\n 'lrcorner': '\\u231F',\n 'drcrop': '\\u230C',\n 'dscr': '\\uD835\\uDCB9',\n 'dscy': '\\u0455',\n 'dsol': '\\u29F6',\n 'dstrok': '\\u0111',\n 'dtdot': '\\u22F1',\n 'dtri': '\\u25BF',\n 'triangledown': '\\u25BF',\n 'dwangle': '\\u29A6',\n 'dzcy': '\\u045F',\n 'dzigrarr': '\\u27FF',\n 'eacute': '\\u00E9',\n 'easter': '\\u2A6E',\n 'ecaron': '\\u011B',\n 'ecir': '\\u2256',\n 'eqcirc': '\\u2256',\n 'ecirc': '\\u00EA',\n 'ecolon': '\\u2255',\n 'eqcolon': '\\u2255',\n 'ecy': '\\u044D',\n 'edot': '\\u0117',\n 'efDot': '\\u2252',\n 'fallingdotseq': '\\u2252',\n 'efr': '\\uD835\\uDD22',\n 'eg': '\\u2A9A',\n 'egrave': '\\u00E8',\n 'egs': '\\u2A96',\n 'eqslantgtr': '\\u2A96',\n 'egsdot': '\\u2A98',\n 'el': '\\u2A99',\n 'elinters': '\\u23E7',\n 'ell': '\\u2113',\n 'els': '\\u2A95',\n 'eqslantless': '\\u2A95',\n 'elsdot': '\\u2A97',\n 'emacr': '\\u0113',\n 'empty': '\\u2205',\n 'emptyset': '\\u2205',\n 'emptyv': '\\u2205',\n 'varnothing': '\\u2205',\n 'emsp13': '\\u2004',\n 'emsp14': '\\u2005',\n 'emsp': '\\u2003',\n 'eng': '\\u014B',\n 'ensp': '\\u2002',\n 'eogon': '\\u0119',\n 'eopf': '\\uD835\\uDD56',\n 'epar': '\\u22D5',\n 'eparsl': '\\u29E3',\n 'eplus': '\\u2A71',\n 'epsi': '\\u03B5',\n 'epsilon': '\\u03B5',\n 'epsiv': '\\u03F5',\n 'straightepsilon': '\\u03F5',\n 'varepsilon': '\\u03F5',\n 'equals': '\\u003D',\n 'equest': '\\u225F',\n 'questeq': '\\u225F',\n 'equivDD': '\\u2A78',\n 'eqvparsl': '\\u29E5',\n 'erDot': '\\u2253',\n 'risingdotseq': '\\u2253',\n 'erarr': '\\u2971',\n 'escr': '\\u212F',\n 'eta': '\\u03B7',\n 'eth': '\\u00F0',\n 'euml': '\\u00EB',\n 'euro': '\\u20AC',\n 'excl': '\\u0021',\n 'fcy': '\\u0444',\n 'female': '\\u2640',\n 'ffilig': '\\uFB03',\n 'fflig': '\\uFB00',\n 'ffllig': '\\uFB04',\n 'ffr': '\\uD835\\uDD23',\n 'filig': '\\uFB01',\n 'fjlig': '\\u0066\\u006A',\n 'flat': '\\u266D',\n 'fllig': '\\uFB02',\n 'fltns': '\\u25B1',\n 'fnof': '\\u0192',\n 'fopf': '\\uD835\\uDD57',\n 'fork': '\\u22D4',\n 'pitchfork': '\\u22D4',\n 'forkv': '\\u2AD9',\n 'fpartint': '\\u2A0D',\n 'frac12': '\\u00BD',\n 'half': '\\u00BD',\n 'frac13': '\\u2153',\n 'frac14': '\\u00BC',\n 'frac15': '\\u2155',\n 'frac16': '\\u2159',\n 'frac18': '\\u215B',\n 'frac23': '\\u2154',\n 'frac25': '\\u2156',\n 'frac34': '\\u00BE',\n 'frac35': '\\u2157',\n 'frac38': '\\u215C',\n 'frac45': '\\u2158',\n 'frac56': '\\u215A',\n 'frac58': '\\u215D',\n 'frac78': '\\u215E',\n 'frasl': '\\u2044',\n 'frown': '\\u2322',\n 'sfrown': '\\u2322',\n 'fscr': '\\uD835\\uDCBB',\n 'gEl': '\\u2A8C',\n 'gtreqqless': '\\u2A8C',\n 'gacute': '\\u01F5',\n 'gamma': '\\u03B3',\n 'gap': '\\u2A86',\n 'gtrapprox': '\\u2A86',\n 'gbreve': '\\u011F',\n 'gcirc': '\\u011D',\n 'gcy': '\\u0433',\n 'gdot': '\\u0121',\n 'gescc': '\\u2AA9',\n 'gesdot': '\\u2A80',\n 'gesdoto': '\\u2A82',\n 'gesdotol': '\\u2A84',\n 'gesl': '\\u22DB\\uFE00',\n 'gesles': '\\u2A94',\n 'gfr': '\\uD835\\uDD24',\n 'gimel': '\\u2137',\n 'gjcy': '\\u0453',\n 'glE': '\\u2A92',\n 'gla': '\\u2AA5',\n 'glj': '\\u2AA4',\n 'gnE': '\\u2269',\n 'gneqq': '\\u2269',\n 'gnap': '\\u2A8A',\n 'gnapprox': '\\u2A8A',\n 'gne': '\\u2A88',\n 'gneq': '\\u2A88',\n 'gnsim': '\\u22E7',\n 'gopf': '\\uD835\\uDD58',\n 'gscr': '\\u210A',\n 'gsime': '\\u2A8E',\n 'gsiml': '\\u2A90',\n 'gtcc': '\\u2AA7',\n 'gtcir': '\\u2A7A',\n 'gtdot': '\\u22D7',\n 'gtrdot': '\\u22D7',\n 'gtlPar': '\\u2995',\n 'gtquest': '\\u2A7C',\n 'gtrarr': '\\u2978',\n 'gvertneqq': '\\u2269\\uFE00',\n 'gvnE': '\\u2269\\uFE00',\n 'hardcy': '\\u044A',\n 'harrcir': '\\u2948',\n 'harrw': '\\u21AD',\n 'leftrightsquigarrow': '\\u21AD',\n 'hbar': '\\u210F',\n 'hslash': '\\u210F',\n 'planck': '\\u210F',\n 'plankv': '\\u210F',\n 'hcirc': '\\u0125',\n 'hearts': '\\u2665',\n 'heartsuit': '\\u2665',\n 'hellip': '\\u2026',\n 'mldr': '\\u2026',\n 'hercon': '\\u22B9',\n 'hfr': '\\uD835\\uDD25',\n 'hksearow': '\\u2925',\n 'searhk': '\\u2925',\n 'hkswarow': '\\u2926',\n 'swarhk': '\\u2926',\n 'hoarr': '\\u21FF',\n 'homtht': '\\u223B',\n 'hookleftarrow': '\\u21A9',\n 'larrhk': '\\u21A9',\n 'hookrightarrow': '\\u21AA',\n 'rarrhk': '\\u21AA',\n 'hopf': '\\uD835\\uDD59',\n 'horbar': '\\u2015',\n 'hscr': '\\uD835\\uDCBD',\n 'hstrok': '\\u0127',\n 'hybull': '\\u2043',\n 'iacute': '\\u00ED',\n 'icirc': '\\u00EE',\n 'icy': '\\u0438',\n 'iecy': '\\u0435',\n 'iexcl': '\\u00A1',\n 'ifr': '\\uD835\\uDD26',\n 'igrave': '\\u00EC',\n 'iiiint': '\\u2A0C',\n 'qint': '\\u2A0C',\n 'iiint': '\\u222D',\n 'tint': '\\u222D',\n 'iinfin': '\\u29DC',\n 'iiota': '\\u2129',\n 'ijlig': '\\u0133',\n 'imacr': '\\u012B',\n 'imath': '\\u0131',\n 'inodot': '\\u0131',\n 'imof': '\\u22B7',\n 'imped': '\\u01B5',\n 'incare': '\\u2105',\n 'infin': '\\u221E',\n 'infintie': '\\u29DD',\n 'intcal': '\\u22BA',\n 'intercal': '\\u22BA',\n 'intlarhk': '\\u2A17',\n 'intprod': '\\u2A3C',\n 'iprod': '\\u2A3C',\n 'iocy': '\\u0451',\n 'iogon': '\\u012F',\n 'iopf': '\\uD835\\uDD5A',\n 'iota': '\\u03B9',\n 'iquest': '\\u00BF',\n 'iscr': '\\uD835\\uDCBE',\n 'isinE': '\\u22F9',\n 'isindot': '\\u22F5',\n 'isins': '\\u22F4',\n 'isinsv': '\\u22F3',\n 'itilde': '\\u0129',\n 'iukcy': '\\u0456',\n 'iuml': '\\u00EF',\n 'jcirc': '\\u0135',\n 'jcy': '\\u0439',\n 'jfr': '\\uD835\\uDD27',\n 'jmath': '\\u0237',\n 'jopf': '\\uD835\\uDD5B',\n 'jscr': '\\uD835\\uDCBF',\n 'jsercy': '\\u0458',\n 'jukcy': '\\u0454',\n 'kappa': '\\u03BA',\n 'kappav': '\\u03F0',\n 'varkappa': '\\u03F0',\n 'kcedil': '\\u0137',\n 'kcy': '\\u043A',\n 'kfr': '\\uD835\\uDD28',\n 'kgreen': '\\u0138',\n 'khcy': '\\u0445',\n 'kjcy': '\\u045C',\n 'kopf': '\\uD835\\uDD5C',\n 'kscr': '\\uD835\\uDCC0',\n 'lAtail': '\\u291B',\n 'lBarr': '\\u290E',\n 'lEg': '\\u2A8B',\n 'lesseqqgtr': '\\u2A8B',\n 'lHar': '\\u2962',\n 'lacute': '\\u013A',\n 'laemptyv': '\\u29B4',\n 'lambda': '\\u03BB',\n 'langd': '\\u2991',\n 'lap': '\\u2A85',\n 'lessapprox': '\\u2A85',\n 'laquo': '\\u00AB',\n 'larrbfs': '\\u291F',\n 'larrfs': '\\u291D',\n 'larrlp': '\\u21AB',\n 'looparrowleft': '\\u21AB',\n 'larrpl': '\\u2939',\n 'larrsim': '\\u2973',\n 'larrtl': '\\u21A2',\n 'leftarrowtail': '\\u21A2',\n 'lat': '\\u2AAB',\n 'latail': '\\u2919',\n 'late': '\\u2AAD',\n 'lates': '\\u2AAD\\uFE00',\n 'lbarr': '\\u290C',\n 'lbbrk': '\\u2772',\n 'lbrace': '\\u007B',\n 'lcub': '\\u007B',\n 'lbrack': '\\u005B',\n 'lsqb': '\\u005B',\n 'lbrke': '\\u298B',\n 'lbrksld': '\\u298F',\n 'lbrkslu': '\\u298D',\n 'lcaron': '\\u013E',\n 'lcedil': '\\u013C',\n 'lcy': '\\u043B',\n 'ldca': '\\u2936',\n 'ldrdhar': '\\u2967',\n 'ldrushar': '\\u294B',\n 'ldsh': '\\u21B2',\n 'le': '\\u2264',\n 'leq': '\\u2264',\n 'leftleftarrows': '\\u21C7',\n 'llarr': '\\u21C7',\n 'leftthreetimes': '\\u22CB',\n 'lthree': '\\u22CB',\n 'lescc': '\\u2AA8',\n 'lesdot': '\\u2A7F',\n 'lesdoto': '\\u2A81',\n 'lesdotor': '\\u2A83',\n 'lesg': '\\u22DA\\uFE00',\n 'lesges': '\\u2A93',\n 'lessdot': '\\u22D6',\n 'ltdot': '\\u22D6',\n 'lfisht': '\\u297C',\n 'lfr': '\\uD835\\uDD29',\n 'lgE': '\\u2A91',\n 'lharul': '\\u296A',\n 'lhblk': '\\u2584',\n 'ljcy': '\\u0459',\n 'llhard': '\\u296B',\n 'lltri': '\\u25FA',\n 'lmidot': '\\u0140',\n 'lmoust': '\\u23B0',\n 'lmoustache': '\\u23B0',\n 'lnE': '\\u2268',\n 'lneqq': '\\u2268',\n 'lnap': '\\u2A89',\n 'lnapprox': '\\u2A89',\n 'lne': '\\u2A87',\n 'lneq': '\\u2A87',\n 'lnsim': '\\u22E6',\n 'loang': '\\u27EC',\n 'loarr': '\\u21FD',\n 'longmapsto': '\\u27FC',\n 'xmap': '\\u27FC',\n 'looparrowright': '\\u21AC',\n 'rarrlp': '\\u21AC',\n 'lopar': '\\u2985',\n 'lopf': '\\uD835\\uDD5D',\n 'loplus': '\\u2A2D',\n 'lotimes': '\\u2A34',\n 'lowast': '\\u2217',\n 'loz': '\\u25CA',\n 'lozenge': '\\u25CA',\n 'lpar': '\\u0028',\n 'lparlt': '\\u2993',\n 'lrhard': '\\u296D',\n 'lrm': '\\u200E',\n 'lrtri': '\\u22BF',\n 'lsaquo': '\\u2039',\n 'lscr': '\\uD835\\uDCC1',\n 'lsime': '\\u2A8D',\n 'lsimg': '\\u2A8F',\n 'lsquor': '\\u201A',\n 'sbquo': '\\u201A',\n 'lstrok': '\\u0142',\n 'ltcc': '\\u2AA6',\n 'ltcir': '\\u2A79',\n 'ltimes': '\\u22C9',\n 'ltlarr': '\\u2976',\n 'ltquest': '\\u2A7B',\n 'ltrPar': '\\u2996',\n 'ltri': '\\u25C3',\n 'triangleleft': '\\u25C3',\n 'lurdshar': '\\u294A',\n 'luruhar': '\\u2966',\n 'lvertneqq': '\\u2268\\uFE00',\n 'lvnE': '\\u2268\\uFE00',\n 'mDDot': '\\u223A',\n 'macr': '\\u00AF',\n 'strns': '\\u00AF',\n 'male': '\\u2642',\n 'malt': '\\u2720',\n 'maltese': '\\u2720',\n 'marker': '\\u25AE',\n 'mcomma': '\\u2A29',\n 'mcy': '\\u043C',\n 'mdash': '\\u2014',\n 'mfr': '\\uD835\\uDD2A',\n 'mho': '\\u2127',\n 'micro': '\\u00B5',\n 'midcir': '\\u2AF0',\n 'minus': '\\u2212',\n 'minusdu': '\\u2A2A',\n 'mlcp': '\\u2ADB',\n 'models': '\\u22A7',\n 'mopf': '\\uD835\\uDD5E',\n 'mscr': '\\uD835\\uDCC2',\n 'mu': '\\u03BC',\n 'multimap': '\\u22B8',\n 'mumap': '\\u22B8',\n 'nGg': '\\u22D9\\u0338',\n 'nGt': '\\u226B\\u20D2',\n 'nLeftarrow': '\\u21CD',\n 'nlArr': '\\u21CD',\n 'nLeftrightarrow': '\\u21CE',\n 'nhArr': '\\u21CE',\n 'nLl': '\\u22D8\\u0338',\n 'nLt': '\\u226A\\u20D2',\n 'nRightarrow': '\\u21CF',\n 'nrArr': '\\u21CF',\n 'nVDash': '\\u22AF',\n 'nVdash': '\\u22AE',\n 'nacute': '\\u0144',\n 'nang': '\\u2220\\u20D2',\n 'napE': '\\u2A70\\u0338',\n 'napid': '\\u224B\\u0338',\n 'napos': '\\u0149',\n 'natur': '\\u266E',\n 'natural': '\\u266E',\n 'ncap': '\\u2A43',\n 'ncaron': '\\u0148',\n 'ncedil': '\\u0146',\n 'ncongdot': '\\u2A6D\\u0338',\n 'ncup': '\\u2A42',\n 'ncy': '\\u043D',\n 'ndash': '\\u2013',\n 'neArr': '\\u21D7',\n 'nearhk': '\\u2924',\n 'nedot': '\\u2250\\u0338',\n 'nesear': '\\u2928',\n 'toea': '\\u2928',\n 'nfr': '\\uD835\\uDD2B',\n 'nharr': '\\u21AE',\n 'nleftrightarrow': '\\u21AE',\n 'nhpar': '\\u2AF2',\n 'nis': '\\u22FC',\n 'nisd': '\\u22FA',\n 'njcy': '\\u045A',\n 'nlE': '\\u2266\\u0338',\n 'nleqq': '\\u2266\\u0338',\n 'nlarr': '\\u219A',\n 'nleftarrow': '\\u219A',\n 'nldr': '\\u2025',\n 'nopf': '\\uD835\\uDD5F',\n 'not': '\\u00AC',\n 'notinE': '\\u22F9\\u0338',\n 'notindot': '\\u22F5\\u0338',\n 'notinvb': '\\u22F7',\n 'notinvc': '\\u22F6',\n 'notnivb': '\\u22FE',\n 'notnivc': '\\u22FD',\n 'nparsl': '\\u2AFD\\u20E5',\n 'npart': '\\u2202\\u0338',\n 'npolint': '\\u2A14',\n 'nrarr': '\\u219B',\n 'nrightarrow': '\\u219B',\n 'nrarrc': '\\u2933\\u0338',\n 'nrarrw': '\\u219D\\u0338',\n 'nscr': '\\uD835\\uDCC3',\n 'nsub': '\\u2284',\n 'nsubE': '\\u2AC5\\u0338',\n 'nsubseteqq': '\\u2AC5\\u0338',\n 'nsup': '\\u2285',\n 'nsupE': '\\u2AC6\\u0338',\n 'nsupseteqq': '\\u2AC6\\u0338',\n 'ntilde': '\\u00F1',\n 'nu': '\\u03BD',\n 'num': '\\u0023',\n 'numero': '\\u2116',\n 'numsp': '\\u2007',\n 'nvDash': '\\u22AD',\n 'nvHarr': '\\u2904',\n 'nvap': '\\u224D\\u20D2',\n 'nvdash': '\\u22AC',\n 'nvge': '\\u2265\\u20D2',\n 'nvgt': '\\u003E\\u20D2',\n 'nvinfin': '\\u29DE',\n 'nvlArr': '\\u2902',\n 'nvle': '\\u2264\\u20D2',\n 'nvlt': '\\u003C\\u20D2',\n 'nvltrie': '\\u22B4\\u20D2',\n 'nvrArr': '\\u2903',\n 'nvrtrie': '\\u22B5\\u20D2',\n 'nvsim': '\\u223C\\u20D2',\n 'nwArr': '\\u21D6',\n 'nwarhk': '\\u2923',\n 'nwnear': '\\u2927',\n 'oacute': '\\u00F3',\n 'ocirc': '\\u00F4',\n 'ocy': '\\u043E',\n 'odblac': '\\u0151',\n 'odiv': '\\u2A38',\n 'odsold': '\\u29BC',\n 'oelig': '\\u0153',\n 'ofcir': '\\u29BF',\n 'ofr': '\\uD835\\uDD2C',\n 'ogon': '\\u02DB',\n 'ograve': '\\u00F2',\n 'ogt': '\\u29C1',\n 'ohbar': '\\u29B5',\n 'olcir': '\\u29BE',\n 'olcross': '\\u29BB',\n 'olt': '\\u29C0',\n 'omacr': '\\u014D',\n 'omega': '\\u03C9',\n 'omicron': '\\u03BF',\n 'omid': '\\u29B6',\n 'oopf': '\\uD835\\uDD60',\n 'opar': '\\u29B7',\n 'operp': '\\u29B9',\n 'or': '\\u2228',\n 'vee': '\\u2228',\n 'ord': '\\u2A5D',\n 'order': '\\u2134',\n 'orderof': '\\u2134',\n 'oscr': '\\u2134',\n 'ordf': '\\u00AA',\n 'ordm': '\\u00BA',\n 'origof': '\\u22B6',\n 'oror': '\\u2A56',\n 'orslope': '\\u2A57',\n 'orv': '\\u2A5B',\n 'oslash': '\\u00F8',\n 'osol': '\\u2298',\n 'otilde': '\\u00F5',\n 'otimesas': '\\u2A36',\n 'ouml': '\\u00F6',\n 'ovbar': '\\u233D',\n 'para': '\\u00B6',\n 'parsim': '\\u2AF3',\n 'parsl': '\\u2AFD',\n 'pcy': '\\u043F',\n 'percnt': '\\u0025',\n 'period': '\\u002E',\n 'permil': '\\u2030',\n 'pertenk': '\\u2031',\n 'pfr': '\\uD835\\uDD2D',\n 'phi': '\\u03C6',\n 'phiv': '\\u03D5',\n 'straightphi': '\\u03D5',\n 'varphi': '\\u03D5',\n 'phone': '\\u260E',\n 'pi': '\\u03C0',\n 'piv': '\\u03D6',\n 'varpi': '\\u03D6',\n 'planckh': '\\u210E',\n 'plus': '\\u002B',\n 'plusacir': '\\u2A23',\n 'pluscir': '\\u2A22',\n 'plusdu': '\\u2A25',\n 'pluse': '\\u2A72',\n 'plussim': '\\u2A26',\n 'plustwo': '\\u2A27',\n 'pointint': '\\u2A15',\n 'popf': '\\uD835\\uDD61',\n 'pound': '\\u00A3',\n 'prE': '\\u2AB3',\n 'prap': '\\u2AB7',\n 'precapprox': '\\u2AB7',\n 'precnapprox': '\\u2AB9',\n 'prnap': '\\u2AB9',\n 'precneqq': '\\u2AB5',\n 'prnE': '\\u2AB5',\n 'precnsim': '\\u22E8',\n 'prnsim': '\\u22E8',\n 'prime': '\\u2032',\n 'profalar': '\\u232E',\n 'profline': '\\u2312',\n 'profsurf': '\\u2313',\n 'prurel': '\\u22B0',\n 'pscr': '\\uD835\\uDCC5',\n 'psi': '\\u03C8',\n 'puncsp': '\\u2008',\n 'qfr': '\\uD835\\uDD2E',\n 'qopf': '\\uD835\\uDD62',\n 'qprime': '\\u2057',\n 'qscr': '\\uD835\\uDCC6',\n 'quatint': '\\u2A16',\n 'quest': '\\u003F',\n 'rAtail': '\\u291C',\n 'rHar': '\\u2964',\n 'race': '\\u223D\\u0331',\n 'racute': '\\u0155',\n 'raemptyv': '\\u29B3',\n 'rangd': '\\u2992',\n 'range': '\\u29A5',\n 'raquo': '\\u00BB',\n 'rarrap': '\\u2975',\n 'rarrbfs': '\\u2920',\n 'rarrc': '\\u2933',\n 'rarrfs': '\\u291E',\n 'rarrpl': '\\u2945',\n 'rarrsim': '\\u2974',\n 'rarrtl': '\\u21A3',\n 'rightarrowtail': '\\u21A3',\n 'rarrw': '\\u219D',\n 'rightsquigarrow': '\\u219D',\n 'ratail': '\\u291A',\n 'ratio': '\\u2236',\n 'rbbrk': '\\u2773',\n 'rbrace': '\\u007D',\n 'rcub': '\\u007D',\n 'rbrack': '\\u005D',\n 'rsqb': '\\u005D',\n 'rbrke': '\\u298C',\n 'rbrksld': '\\u298E',\n 'rbrkslu': '\\u2990',\n 'rcaron': '\\u0159',\n 'rcedil': '\\u0157',\n 'rcy': '\\u0440',\n 'rdca': '\\u2937',\n 'rdldhar': '\\u2969',\n 'rdsh': '\\u21B3',\n 'rect': '\\u25AD',\n 'rfisht': '\\u297D',\n 'rfr': '\\uD835\\uDD2F',\n 'rharul': '\\u296C',\n 'rho': '\\u03C1',\n 'rhov': '\\u03F1',\n 'varrho': '\\u03F1',\n 'rightrightarrows': '\\u21C9',\n 'rrarr': '\\u21C9',\n 'rightthreetimes': '\\u22CC',\n 'rthree': '\\u22CC',\n 'ring': '\\u02DA',\n 'rlm': '\\u200F',\n 'rmoust': '\\u23B1',\n 'rmoustache': '\\u23B1',\n 'rnmid': '\\u2AEE',\n 'roang': '\\u27ED',\n 'roarr': '\\u21FE',\n 'ropar': '\\u2986',\n 'ropf': '\\uD835\\uDD63',\n 'roplus': '\\u2A2E',\n 'rotimes': '\\u2A35',\n 'rpar': '\\u0029',\n 'rpargt': '\\u2994',\n 'rppolint': '\\u2A12',\n 'rsaquo': '\\u203A',\n 'rscr': '\\uD835\\uDCC7',\n 'rtimes': '\\u22CA',\n 'rtri': '\\u25B9',\n 'triangleright': '\\u25B9',\n 'rtriltri': '\\u29CE',\n 'ruluhar': '\\u2968',\n 'rx': '\\u211E',\n 'sacute': '\\u015B',\n 'scE': '\\u2AB4',\n 'scap': '\\u2AB8',\n 'succapprox': '\\u2AB8',\n 'scaron': '\\u0161',\n 'scedil': '\\u015F',\n 'scirc': '\\u015D',\n 'scnE': '\\u2AB6',\n 'succneqq': '\\u2AB6',\n 'scnap': '\\u2ABA',\n 'succnapprox': '\\u2ABA',\n 'scnsim': '\\u22E9',\n 'succnsim': '\\u22E9',\n 'scpolint': '\\u2A13',\n 'scy': '\\u0441',\n 'sdot': '\\u22C5',\n 'sdote': '\\u2A66',\n 'seArr': '\\u21D8',\n 'sect': '\\u00A7',\n 'semi': '\\u003B',\n 'seswar': '\\u2929',\n 'tosa': '\\u2929',\n 'sext': '\\u2736',\n 'sfr': '\\uD835\\uDD30',\n 'sharp': '\\u266F',\n 'shchcy': '\\u0449',\n 'shcy': '\\u0448',\n 'shy': '\\u00AD',\n 'sigma': '\\u03C3',\n 'sigmaf': '\\u03C2',\n 'sigmav': '\\u03C2',\n 'varsigma': '\\u03C2',\n 'simdot': '\\u2A6A',\n 'simg': '\\u2A9E',\n 'simgE': '\\u2AA0',\n 'siml': '\\u2A9D',\n 'simlE': '\\u2A9F',\n 'simne': '\\u2246',\n 'simplus': '\\u2A24',\n 'simrarr': '\\u2972',\n 'smashp': '\\u2A33',\n 'smeparsl': '\\u29E4',\n 'smile': '\\u2323',\n 'ssmile': '\\u2323',\n 'smt': '\\u2AAA',\n 'smte': '\\u2AAC',\n 'smtes': '\\u2AAC\\uFE00',\n 'softcy': '\\u044C',\n 'sol': '\\u002F',\n 'solb': '\\u29C4',\n 'solbar': '\\u233F',\n 'sopf': '\\uD835\\uDD64',\n 'spades': '\\u2660',\n 'spadesuit': '\\u2660',\n 'sqcaps': '\\u2293\\uFE00',\n 'sqcups': '\\u2294\\uFE00',\n 'sscr': '\\uD835\\uDCC8',\n 'star': '\\u2606',\n 'sub': '\\u2282',\n 'subset': '\\u2282',\n 'subE': '\\u2AC5',\n 'subseteqq': '\\u2AC5',\n 'subdot': '\\u2ABD',\n 'subedot': '\\u2AC3',\n 'submult': '\\u2AC1',\n 'subnE': '\\u2ACB',\n 'subsetneqq': '\\u2ACB',\n 'subne': '\\u228A',\n 'subsetneq': '\\u228A',\n 'subplus': '\\u2ABF',\n 'subrarr': '\\u2979',\n 'subsim': '\\u2AC7',\n 'subsub': '\\u2AD5',\n 'subsup': '\\u2AD3',\n 'sung': '\\u266A',\n 'sup1': '\\u00B9',\n 'sup2': '\\u00B2',\n 'sup3': '\\u00B3',\n 'supE': '\\u2AC6',\n 'supseteqq': '\\u2AC6',\n 'supdot': '\\u2ABE',\n 'supdsub': '\\u2AD8',\n 'supedot': '\\u2AC4',\n 'suphsol': '\\u27C9',\n 'suphsub': '\\u2AD7',\n 'suplarr': '\\u297B',\n 'supmult': '\\u2AC2',\n 'supnE': '\\u2ACC',\n 'supsetneqq': '\\u2ACC',\n 'supne': '\\u228B',\n 'supsetneq': '\\u228B',\n 'supplus': '\\u2AC0',\n 'supsim': '\\u2AC8',\n 'supsub': '\\u2AD4',\n 'supsup': '\\u2AD6',\n 'swArr': '\\u21D9',\n 'swnwar': '\\u292A',\n 'szlig': '\\u00DF',\n 'target': '\\u2316',\n 'tau': '\\u03C4',\n 'tcaron': '\\u0165',\n 'tcedil': '\\u0163',\n 'tcy': '\\u0442',\n 'telrec': '\\u2315',\n 'tfr': '\\uD835\\uDD31',\n 'theta': '\\u03B8',\n 'thetasym': '\\u03D1',\n 'thetav': '\\u03D1',\n 'vartheta': '\\u03D1',\n 'thorn': '\\u00FE',\n 'times': '\\u00D7',\n 'timesbar': '\\u2A31',\n 'timesd': '\\u2A30',\n 'topbot': '\\u2336',\n 'topcir': '\\u2AF1',\n 'topf': '\\uD835\\uDD65',\n 'topfork': '\\u2ADA',\n 'tprime': '\\u2034',\n 'triangle': '\\u25B5',\n 'utri': '\\u25B5',\n 'triangleq': '\\u225C',\n 'trie': '\\u225C',\n 'tridot': '\\u25EC',\n 'triminus': '\\u2A3A',\n 'triplus': '\\u2A39',\n 'trisb': '\\u29CD',\n 'tritime': '\\u2A3B',\n 'trpezium': '\\u23E2',\n 'tscr': '\\uD835\\uDCC9',\n 'tscy': '\\u0446',\n 'tshcy': '\\u045B',\n 'tstrok': '\\u0167',\n 'uHar': '\\u2963',\n 'uacute': '\\u00FA',\n 'ubrcy': '\\u045E',\n 'ubreve': '\\u016D',\n 'ucirc': '\\u00FB',\n 'ucy': '\\u0443',\n 'udblac': '\\u0171',\n 'ufisht': '\\u297E',\n 'ufr': '\\uD835\\uDD32',\n 'ugrave': '\\u00F9',\n 'uhblk': '\\u2580',\n 'ulcorn': '\\u231C',\n 'ulcorner': '\\u231C',\n 'ulcrop': '\\u230F',\n 'ultri': '\\u25F8',\n 'umacr': '\\u016B',\n 'uogon': '\\u0173',\n 'uopf': '\\uD835\\uDD66',\n 'upsi': '\\u03C5',\n 'upsilon': '\\u03C5',\n 'upuparrows': '\\u21C8',\n 'uuarr': '\\u21C8',\n 'urcorn': '\\u231D',\n 'urcorner': '\\u231D',\n 'urcrop': '\\u230E',\n 'uring': '\\u016F',\n 'urtri': '\\u25F9',\n 'uscr': '\\uD835\\uDCCA',\n 'utdot': '\\u22F0',\n 'utilde': '\\u0169',\n 'uuml': '\\u00FC',\n 'uwangle': '\\u29A7',\n 'vBar': '\\u2AE8',\n 'vBarv': '\\u2AE9',\n 'vangrt': '\\u299C',\n 'varsubsetneq': '\\u228A\\uFE00',\n 'vsubne': '\\u228A\\uFE00',\n 'varsubsetneqq': '\\u2ACB\\uFE00',\n 'vsubnE': '\\u2ACB\\uFE00',\n 'varsupsetneq': '\\u228B\\uFE00',\n 'vsupne': '\\u228B\\uFE00',\n 'varsupsetneqq': '\\u2ACC\\uFE00',\n 'vsupnE': '\\u2ACC\\uFE00',\n 'vcy': '\\u0432',\n 'veebar': '\\u22BB',\n 'veeeq': '\\u225A',\n 'vellip': '\\u22EE',\n 'vfr': '\\uD835\\uDD33',\n 'vopf': '\\uD835\\uDD67',\n 'vscr': '\\uD835\\uDCCB',\n 'vzigzag': '\\u299A',\n 'wcirc': '\\u0175',\n 'wedbar': '\\u2A5F',\n 'wedgeq': '\\u2259',\n 'weierp': '\\u2118',\n 'wp': '\\u2118',\n 'wfr': '\\uD835\\uDD34',\n 'wopf': '\\uD835\\uDD68',\n 'wscr': '\\uD835\\uDCCC',\n 'xfr': '\\uD835\\uDD35',\n 'xi': '\\u03BE',\n 'xnis': '\\u22FB',\n 'xopf': '\\uD835\\uDD69',\n 'xscr': '\\uD835\\uDCCD',\n 'yacute': '\\u00FD',\n 'yacy': '\\u044F',\n 'ycirc': '\\u0177',\n 'ycy': '\\u044B',\n 'yen': '\\u00A5',\n 'yfr': '\\uD835\\uDD36',\n 'yicy': '\\u0457',\n 'yopf': '\\uD835\\uDD6A',\n 'yscr': '\\uD835\\uDCCE',\n 'yucy': '\\u044E',\n 'yuml': '\\u00FF',\n 'zacute': '\\u017A',\n 'zcaron': '\\u017E',\n 'zcy': '\\u0437',\n 'zdot': '\\u017C',\n 'zeta': '\\u03B6',\n 'zfr': '\\uD835\\uDD37',\n 'zhcy': '\\u0436',\n 'zigrarr': '\\u21DD',\n 'zopf': '\\uD835\\uDD6B',\n 'zscr': '\\uD835\\uDCCF',\n 'zwj': '\\u200D',\n 'zwnj': '\\u200C'\n};\n\n\n// The &ngsp; pseudo-entity is denoting a space. see:\n// https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart\nexport const NGSP_UNICODE = '\\uE500';\n\nNAMED_ENTITIES['ngsp'] = NGSP_UNICODE;\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport * as chars from '../chars';\nimport {ParseError, ParseLocation, ParseSourceFile, ParseSourceSpan} from '../parse_util';\nimport {NAMED_ENTITIES} from './entities';\n\nimport {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from './interpolation_config';\nimport {TagContentType, TagDefinition} from './tags';\nimport {IncompleteTagOpenToken, TagOpenStartToken, Token, TokenType} from './tokens';\n\nexport class TokenError extends ParseError {\n constructor(errorMsg: string, public tokenType: TokenType|null, span: ParseSourceSpan) {\n super(span, errorMsg);\n }\n}\n\nexport class TokenizeResult {\n constructor(\n public tokens: Token[], public errors: TokenError[],\n public nonNormalizedIcuExpressions: Token[]) {}\n}\n\nexport interface LexerRange {\n startPos: number;\n startLine: number;\n startCol: number;\n endPos: number;\n}\n\n/**\n * Options that modify how the text is tokenized.\n */\nexport interface TokenizeOptions {\n /** Whether to tokenize ICU messages (considered as text nodes when false). */\n tokenizeExpansionForms?: boolean;\n /** How to tokenize interpolation markers. */\n interpolationConfig?: InterpolationConfig;\n /**\n * The start and end point of the text to parse within the `source` string.\n * The entire `source` string is parsed if this is not provided.\n * */\n range?: LexerRange;\n /**\n * If this text is stored in a JavaScript string, then we have to deal with escape sequences.\n *\n * **Example 1:**\n *\n * ```\n * \"abc\\\"def\\nghi\"\n * ```\n *\n * - The `\\\"` must be converted to `\"`.\n * - The `\\n` must be converted to a new line character in a token,\n * but it should not increment the current line for source mapping.\n *\n * **Example 2:**\n *\n * ```\n * \"abc\\\n * def\"\n * ```\n *\n * The line continuation (`\\` followed by a newline) should be removed from a token\n * but the new line should increment the current line for source mapping.\n */\n escapedString?: boolean;\n /**\n * If this text is stored in an external template (e.g. via `templateUrl`) then we need to decide\n * whether or not to normalize the line-endings (from `\\r\\n` to `\\n`) when processing ICU\n * expressions.\n *\n * If `true` then we will normalize ICU expression line endings.\n * The default is `false`, but this will be switched in a future major release.\n */\n i18nNormalizeLineEndingsInICUs?: boolean;\n /**\n * An array of characters that should be considered as leading trivia.\n * Leading trivia are characters that are not important to the developer, and so should not be\n * included in source-map segments. A common example is whitespace.\n */\n leadingTriviaChars?: string[];\n /**\n * If true, do not convert CRLF to LF.\n */\n preserveLineEndings?: boolean;\n}\n\nexport function tokenize(\n source: string, url: string, getTagDefinition: (tagName: string) => TagDefinition,\n options: TokenizeOptions = {}): TokenizeResult {\n const tokenizer = new _Tokenizer(new ParseSourceFile(source, url), getTagDefinition, options);\n tokenizer.tokenize();\n return new TokenizeResult(\n mergeTextTokens(tokenizer.tokens), tokenizer.errors, tokenizer.nonNormalizedIcuExpressions);\n}\n\nconst _CR_OR_CRLF_REGEXP = /\\r\\n?/g;\n\nfunction _unexpectedCharacterErrorMsg(charCode: number): string {\n const char = charCode === chars.$EOF ? 'EOF' : String.fromCharCode(charCode);\n return `Unexpected character \"${char}\"`;\n}\n\nfunction _unknownEntityErrorMsg(entitySrc: string): string {\n return `Unknown entity \"${entitySrc}\" - use the \"&#;\" or \"&#x;\" syntax`;\n}\n\nfunction _unparsableEntityErrorMsg(type: CharacterReferenceType, entityStr: string): string {\n return `Unable to parse entity \"${entityStr}\" - ${\n type} character reference entities must end with \";\"`;\n}\n\nenum CharacterReferenceType {\n HEX = 'hexadecimal',\n DEC = 'decimal',\n}\n\nclass _ControlFlowError {\n constructor(public error: TokenError) {}\n}\n\n// See https://www.w3.org/TR/html51/syntax.html#writing-html-documents\nclass _Tokenizer {\n private _cursor: CharacterCursor;\n private _tokenizeIcu: boolean;\n private _interpolationConfig: InterpolationConfig;\n private _leadingTriviaCodePoints: number[]|undefined;\n private _currentTokenStart: CharacterCursor|null = null;\n private _currentTokenType: TokenType|null = null;\n private _expansionCaseStack: TokenType[] = [];\n private _inInterpolation: boolean = false;\n private readonly _preserveLineEndings: boolean;\n private readonly _escapedString: boolean;\n private readonly _i18nNormalizeLineEndingsInICUs: boolean;\n tokens: Token[] = [];\n errors: TokenError[] = [];\n nonNormalizedIcuExpressions: Token[] = [];\n\n /**\n * @param _file The html source file being tokenized.\n * @param _getTagDefinition A function that will retrieve a tag definition for a given tag name.\n * @param options Configuration of the tokenization.\n */\n constructor(\n _file: ParseSourceFile, private _getTagDefinition: (tagName: string) => TagDefinition,\n options: TokenizeOptions) {\n this._tokenizeIcu = options.tokenizeExpansionForms || false;\n this._interpolationConfig = options.interpolationConfig || DEFAULT_INTERPOLATION_CONFIG;\n this._leadingTriviaCodePoints =\n options.leadingTriviaChars && options.leadingTriviaChars.map(c => c.codePointAt(0) || 0);\n const range =\n options.range || {endPos: _file.content.length, startPos: 0, startLine: 0, startCol: 0};\n this._cursor = options.escapedString ? new EscapedCharacterCursor(_file, range) :\n new PlainCharacterCursor(_file, range);\n this._preserveLineEndings = options.preserveLineEndings || false;\n this._escapedString = options.escapedString || false;\n this._i18nNormalizeLineEndingsInICUs = options.i18nNormalizeLineEndingsInICUs || false;\n try {\n this._cursor.init();\n } catch (e) {\n this.handleError(e);\n }\n }\n\n private _processCarriageReturns(content: string): string {\n if (this._preserveLineEndings) {\n return content;\n }\n // https://www.w3.org/TR/html51/syntax.html#preprocessing-the-input-stream\n // In order to keep the original position in the source, we can not\n // pre-process it.\n // Instead CRs are processed right before instantiating the tokens.\n return content.replace(_CR_OR_CRLF_REGEXP, '\\n');\n }\n\n tokenize(): void {\n while (this._cursor.peek() !== chars.$EOF) {\n const start = this._cursor.clone();\n try {\n if (this._attemptCharCode(chars.$LT)) {\n if (this._attemptCharCode(chars.$BANG)) {\n if (this._attemptCharCode(chars.$LBRACKET)) {\n this._consumeCdata(start);\n } else if (this._attemptCharCode(chars.$MINUS)) {\n this._consumeComment(start);\n } else {\n this._consumeDocType(start);\n }\n } else if (this._attemptCharCode(chars.$SLASH)) {\n this._consumeTagClose(start);\n } else {\n this._consumeTagOpen(start);\n }\n } else if (!(this._tokenizeIcu && this._tokenizeExpansionForm())) {\n // In (possibly interpolated) text the end of the text is given by `isTextEnd()`, while\n // the premature end of an interpolation is given by the start of a new HTML element.\n this._consumeWithInterpolation(\n TokenType.TEXT, TokenType.INTERPOLATION, () => this._isTextEnd(),\n () => this._isTagStart());\n }\n } catch (e) {\n this.handleError(e);\n }\n }\n this._beginToken(TokenType.EOF);\n this._endToken([]);\n }\n\n /**\n * @returns whether an ICU token has been created\n * @internal\n */\n private _tokenizeExpansionForm(): boolean {\n if (this.isExpansionFormStart()) {\n this._consumeExpansionFormStart();\n return true;\n }\n\n if (isExpansionCaseStart(this._cursor.peek()) && this._isInExpansionForm()) {\n this._consumeExpansionCaseStart();\n return true;\n }\n\n if (this._cursor.peek() === chars.$RBRACE) {\n if (this._isInExpansionCase()) {\n this._consumeExpansionCaseEnd();\n return true;\n }\n\n if (this._isInExpansionForm()) {\n this._consumeExpansionFormEnd();\n return true;\n }\n }\n\n return false;\n }\n\n private _beginToken(type: TokenType, start = this._cursor.clone()) {\n this._currentTokenStart = start;\n this._currentTokenType = type;\n }\n\n private _endToken(parts: string[], end?: CharacterCursor): Token {\n if (this._currentTokenStart === null) {\n throw new TokenError(\n 'Programming error - attempted to end a token when there was no start to the token',\n this._currentTokenType, this._cursor.getSpan(end));\n }\n if (this._currentTokenType === null) {\n throw new TokenError(\n 'Programming error - attempted to end a token which has no token type', null,\n this._cursor.getSpan(this._currentTokenStart));\n }\n const token = {\n type: this._currentTokenType,\n parts,\n sourceSpan:\n (end ?? this._cursor).getSpan(this._currentTokenStart, this._leadingTriviaCodePoints),\n } as Token;\n this.tokens.push(token);\n this._currentTokenStart = null;\n this._currentTokenType = null;\n return token;\n }\n\n private _createError(msg: string, span: ParseSourceSpan): _ControlFlowError {\n if (this._isInExpansionForm()) {\n msg += ` (Do you have an unescaped \"{\" in your template? Use \"{{ '{' }}\") to escape it.)`;\n }\n const error = new TokenError(msg, this._currentTokenType, span);\n this._currentTokenStart = null;\n this._currentTokenType = null;\n return new _ControlFlowError(error);\n }\n\n private handleError(e: any) {\n if (e instanceof CursorError) {\n e = this._createError(e.msg, this._cursor.getSpan(e.cursor));\n }\n if (e instanceof _ControlFlowError) {\n this.errors.push(e.error);\n } else {\n throw e;\n }\n }\n\n private _attemptCharCode(charCode: number): boolean {\n if (this._cursor.peek() === charCode) {\n this._cursor.advance();\n return true;\n }\n return false;\n }\n\n private _attemptCharCodeCaseInsensitive(charCode: number): boolean {\n if (compareCharCodeCaseInsensitive(this._cursor.peek(), charCode)) {\n this._cursor.advance();\n return true;\n }\n return false;\n }\n\n private _requireCharCode(charCode: number) {\n const location = this._cursor.clone();\n if (!this._attemptCharCode(charCode)) {\n throw this._createError(\n _unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(location));\n }\n }\n\n private _attemptStr(chars: string): boolean {\n const len = chars.length;\n if (this._cursor.charsLeft() < len) {\n return false;\n }\n const initialPosition = this._cursor.clone();\n for (let i = 0; i < len; i++) {\n if (!this._attemptCharCode(chars.charCodeAt(i))) {\n // If attempting to parse the string fails, we want to reset the parser\n // to where it was before the attempt\n this._cursor = initialPosition;\n return false;\n }\n }\n return true;\n }\n\n private _attemptStrCaseInsensitive(chars: string): boolean {\n for (let i = 0; i < chars.length; i++) {\n if (!this._attemptCharCodeCaseInsensitive(chars.charCodeAt(i))) {\n return false;\n }\n }\n return true;\n }\n\n private _requireStr(chars: string) {\n const location = this._cursor.clone();\n if (!this._attemptStr(chars)) {\n throw this._createError(\n _unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(location));\n }\n }\n\n private _attemptCharCodeUntilFn(predicate: (code: number) => boolean) {\n while (!predicate(this._cursor.peek())) {\n this._cursor.advance();\n }\n }\n\n private _requireCharCodeUntilFn(predicate: (code: number) => boolean, len: number) {\n const start = this._cursor.clone();\n this._attemptCharCodeUntilFn(predicate);\n if (this._cursor.diff(start) < len) {\n throw this._createError(\n _unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(start));\n }\n }\n\n private _attemptUntilChar(char: number) {\n while (this._cursor.peek() !== char) {\n this._cursor.advance();\n }\n }\n\n private _readChar(): string {\n // Don't rely upon reading directly from `_input` as the actual char value\n // may have been generated from an escape sequence.\n const char = String.fromCodePoint(this._cursor.peek());\n this._cursor.advance();\n return char;\n }\n\n private _consumeEntity(textTokenType: TokenType): void {\n this._beginToken(TokenType.ENCODED_ENTITY);\n const start = this._cursor.clone();\n this._cursor.advance();\n if (this._attemptCharCode(chars.$HASH)) {\n const isHex = this._attemptCharCode(chars.$x) || this._attemptCharCode(chars.$X);\n const codeStart = this._cursor.clone();\n this._attemptCharCodeUntilFn(isDigitEntityEnd);\n if (this._cursor.peek() != chars.$SEMICOLON) {\n // Advance cursor to include the peeked character in the string provided to the error\n // message.\n this._cursor.advance();\n const entityType = isHex ? CharacterReferenceType.HEX : CharacterReferenceType.DEC;\n throw this._createError(\n _unparsableEntityErrorMsg(entityType, this._cursor.getChars(start)),\n this._cursor.getSpan());\n }\n const strNum = this._cursor.getChars(codeStart);\n this._cursor.advance();\n try {\n const charCode = parseInt(strNum, isHex ? 16 : 10);\n this._endToken([String.fromCharCode(charCode), this._cursor.getChars(start)]);\n } catch {\n throw this._createError(\n _unknownEntityErrorMsg(this._cursor.getChars(start)), this._cursor.getSpan());\n }\n } else {\n const nameStart = this._cursor.clone();\n this._attemptCharCodeUntilFn(isNamedEntityEnd);\n if (this._cursor.peek() != chars.$SEMICOLON) {\n // No semicolon was found so abort the encoded entity token that was in progress, and treat\n // this as a text token\n this._beginToken(textTokenType, start);\n this._cursor = nameStart;\n this._endToken(['&']);\n } else {\n const name = this._cursor.getChars(nameStart);\n this._cursor.advance();\n const char = NAMED_ENTITIES[name];\n if (!char) {\n throw this._createError(_unknownEntityErrorMsg(name), this._cursor.getSpan(start));\n }\n this._endToken([char, `&${name};`]);\n }\n }\n }\n\n private _consumeRawText(consumeEntities: boolean, endMarkerPredicate: () => boolean): void {\n this._beginToken(consumeEntities ? TokenType.ESCAPABLE_RAW_TEXT : TokenType.RAW_TEXT);\n const parts: string[] = [];\n while (true) {\n const tagCloseStart = this._cursor.clone();\n const foundEndMarker = endMarkerPredicate();\n this._cursor = tagCloseStart;\n if (foundEndMarker) {\n break;\n }\n if (consumeEntities && this._cursor.peek() === chars.$AMPERSAND) {\n this._endToken([this._processCarriageReturns(parts.join(''))]);\n parts.length = 0;\n this._consumeEntity(TokenType.ESCAPABLE_RAW_TEXT);\n this._beginToken(TokenType.ESCAPABLE_RAW_TEXT);\n } else {\n parts.push(this._readChar());\n }\n }\n this._endToken([this._processCarriageReturns(parts.join(''))]);\n }\n\n private _consumeComment(start: CharacterCursor) {\n this._beginToken(TokenType.COMMENT_START, start);\n this._requireCharCode(chars.$MINUS);\n this._endToken([]);\n this._consumeRawText(false, () => this._attemptStr('-->'));\n this._beginToken(TokenType.COMMENT_END);\n this._requireStr('-->');\n this._endToken([]);\n }\n\n private _consumeCdata(start: CharacterCursor) {\n this._beginToken(TokenType.CDATA_START, start);\n this._requireStr('CDATA[');\n this._endToken([]);\n this._consumeRawText(false, () => this._attemptStr(']]>'));\n this._beginToken(TokenType.CDATA_END);\n this._requireStr(']]>');\n this._endToken([]);\n }\n\n private _consumeDocType(start: CharacterCursor) {\n this._beginToken(TokenType.DOC_TYPE, start);\n const contentStart = this._cursor.clone();\n this._attemptUntilChar(chars.$GT);\n const content = this._cursor.getChars(contentStart);\n this._cursor.advance();\n this._endToken([content]);\n }\n\n private _consumePrefixAndName(): string[] {\n const nameOrPrefixStart = this._cursor.clone();\n let prefix: string = '';\n while (this._cursor.peek() !== chars.$COLON && !isPrefixEnd(this._cursor.peek())) {\n this._cursor.advance();\n }\n let nameStart: CharacterCursor;\n if (this._cursor.peek() === chars.$COLON) {\n prefix = this._cursor.getChars(nameOrPrefixStart);\n this._cursor.advance();\n nameStart = this._cursor.clone();\n } else {\n nameStart = nameOrPrefixStart;\n }\n this._requireCharCodeUntilFn(isNameEnd, prefix === '' ? 0 : 1);\n const name = this._cursor.getChars(nameStart);\n return [prefix, name];\n }\n\n private _consumeTagOpen(start: CharacterCursor) {\n let tagName: string;\n let prefix: string;\n let openTagToken: TagOpenStartToken|IncompleteTagOpenToken|undefined;\n try {\n if (!chars.isAsciiLetter(this._cursor.peek())) {\n throw this._createError(\n _unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(start));\n }\n\n openTagToken = this._consumeTagOpenStart(start);\n prefix = openTagToken.parts[0];\n tagName = openTagToken.parts[1];\n this._attemptCharCodeUntilFn(isNotWhitespace);\n while (this._cursor.peek() !== chars.$SLASH && this._cursor.peek() !== chars.$GT &&\n this._cursor.peek() !== chars.$LT && this._cursor.peek() !== chars.$EOF) {\n this._consumeAttributeName();\n this._attemptCharCodeUntilFn(isNotWhitespace);\n if (this._attemptCharCode(chars.$EQ)) {\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._consumeAttributeValue();\n }\n this._attemptCharCodeUntilFn(isNotWhitespace);\n }\n this._consumeTagOpenEnd();\n } catch (e) {\n if (e instanceof _ControlFlowError) {\n if (openTagToken) {\n // We errored before we could close the opening tag, so it is incomplete.\n openTagToken.type = TokenType.INCOMPLETE_TAG_OPEN;\n } else {\n // When the start tag is invalid, assume we want a \"<\" as text.\n // Back to back text tokens are merged at the end.\n this._beginToken(TokenType.TEXT, start);\n this._endToken(['<']);\n }\n return;\n }\n\n throw e;\n }\n\n const contentTokenType = this._getTagDefinition(tagName).getContentType(prefix);\n\n if (contentTokenType === TagContentType.RAW_TEXT) {\n this._consumeRawTextWithTagClose(prefix, tagName, false);\n } else if (contentTokenType === TagContentType.ESCAPABLE_RAW_TEXT) {\n this._consumeRawTextWithTagClose(prefix, tagName, true);\n }\n }\n\n private _consumeRawTextWithTagClose(prefix: string, tagName: string, consumeEntities: boolean) {\n this._consumeRawText(consumeEntities, () => {\n if (!this._attemptCharCode(chars.$LT)) return false;\n if (!this._attemptCharCode(chars.$SLASH)) return false;\n this._attemptCharCodeUntilFn(isNotWhitespace);\n if (!this._attemptStrCaseInsensitive(tagName)) return false;\n this._attemptCharCodeUntilFn(isNotWhitespace);\n return this._attemptCharCode(chars.$GT);\n });\n this._beginToken(TokenType.TAG_CLOSE);\n this._requireCharCodeUntilFn(code => code === chars.$GT, 3);\n this._cursor.advance(); // Consume the `>`\n this._endToken([prefix, tagName]);\n }\n\n private _consumeTagOpenStart(start: CharacterCursor): TagOpenStartToken {\n this._beginToken(TokenType.TAG_OPEN_START, start);\n const parts = this._consumePrefixAndName();\n return this._endToken(parts) as TagOpenStartToken;\n }\n\n private _consumeAttributeName() {\n const attrNameStart = this._cursor.peek();\n if (attrNameStart === chars.$SQ || attrNameStart === chars.$DQ) {\n throw this._createError(_unexpectedCharacterErrorMsg(attrNameStart), this._cursor.getSpan());\n }\n this._beginToken(TokenType.ATTR_NAME);\n const prefixAndName = this._consumePrefixAndName();\n this._endToken(prefixAndName);\n }\n\n private _consumeAttributeValue() {\n let value: string;\n if (this._cursor.peek() === chars.$SQ || this._cursor.peek() === chars.$DQ) {\n const quoteChar = this._cursor.peek();\n this._consumeQuote(quoteChar);\n // In an attribute then end of the attribute value and the premature end to an interpolation\n // are both triggered by the `quoteChar`.\n const endPredicate = () => this._cursor.peek() === quoteChar;\n this._consumeWithInterpolation(\n TokenType.ATTR_VALUE_TEXT, TokenType.ATTR_VALUE_INTERPOLATION, endPredicate,\n endPredicate);\n this._consumeQuote(quoteChar);\n } else {\n const endPredicate = () => isNameEnd(this._cursor.peek());\n this._consumeWithInterpolation(\n TokenType.ATTR_VALUE_TEXT, TokenType.ATTR_VALUE_INTERPOLATION, endPredicate,\n endPredicate);\n }\n }\n\n private _consumeQuote(quoteChar: number) {\n this._beginToken(TokenType.ATTR_QUOTE);\n this._requireCharCode(quoteChar);\n this._endToken([String.fromCodePoint(quoteChar)]);\n }\n\n private _consumeTagOpenEnd() {\n const tokenType =\n this._attemptCharCode(chars.$SLASH) ? TokenType.TAG_OPEN_END_VOID : TokenType.TAG_OPEN_END;\n this._beginToken(tokenType);\n this._requireCharCode(chars.$GT);\n this._endToken([]);\n }\n\n private _consumeTagClose(start: CharacterCursor) {\n this._beginToken(TokenType.TAG_CLOSE, start);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n const prefixAndName = this._consumePrefixAndName();\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._requireCharCode(chars.$GT);\n this._endToken(prefixAndName);\n }\n\n private _consumeExpansionFormStart() {\n this._beginToken(TokenType.EXPANSION_FORM_START);\n this._requireCharCode(chars.$LBRACE);\n this._endToken([]);\n\n this._expansionCaseStack.push(TokenType.EXPANSION_FORM_START);\n\n this._beginToken(TokenType.RAW_TEXT);\n const condition = this._readUntil(chars.$COMMA);\n const normalizedCondition = this._processCarriageReturns(condition);\n if (this._i18nNormalizeLineEndingsInICUs) {\n // We explicitly want to normalize line endings for this text.\n this._endToken([normalizedCondition]);\n } else {\n // We are not normalizing line endings.\n const conditionToken = this._endToken([condition]);\n if (normalizedCondition !== condition) {\n this.nonNormalizedIcuExpressions.push(conditionToken);\n }\n }\n this._requireCharCode(chars.$COMMA);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n\n this._beginToken(TokenType.RAW_TEXT);\n const type = this._readUntil(chars.$COMMA);\n this._endToken([type]);\n this._requireCharCode(chars.$COMMA);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n }\n\n private _consumeExpansionCaseStart() {\n this._beginToken(TokenType.EXPANSION_CASE_VALUE);\n const value = this._readUntil(chars.$LBRACE).trim();\n this._endToken([value]);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n\n this._beginToken(TokenType.EXPANSION_CASE_EXP_START);\n this._requireCharCode(chars.$LBRACE);\n this._endToken([]);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n\n this._expansionCaseStack.push(TokenType.EXPANSION_CASE_EXP_START);\n }\n\n private _consumeExpansionCaseEnd() {\n this._beginToken(TokenType.EXPANSION_CASE_EXP_END);\n this._requireCharCode(chars.$RBRACE);\n this._endToken([]);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n\n this._expansionCaseStack.pop();\n }\n\n private _consumeExpansionFormEnd() {\n this._beginToken(TokenType.EXPANSION_FORM_END);\n this._requireCharCode(chars.$RBRACE);\n this._endToken([]);\n\n this._expansionCaseStack.pop();\n }\n\n /**\n * Consume a string that may contain interpolation expressions.\n *\n * The first token consumed will be of `tokenType` and then there will be alternating\n * `interpolationTokenType` and `tokenType` tokens until the `endPredicate()` returns true.\n *\n * If an interpolation token ends prematurely it will have no end marker in its `parts` array.\n *\n * @param textTokenType the kind of tokens to interleave around interpolation tokens.\n * @param interpolationTokenType the kind of tokens that contain interpolation.\n * @param endPredicate a function that should return true when we should stop consuming.\n * @param endInterpolation a function that should return true if there is a premature end to an\n * interpolation expression - i.e. before we get to the normal interpolation closing marker.\n */\n private _consumeWithInterpolation(\n textTokenType: TokenType, interpolationTokenType: TokenType, endPredicate: () => boolean,\n endInterpolation: () => boolean) {\n this._beginToken(textTokenType);\n const parts: string[] = [];\n\n while (!endPredicate()) {\n const current = this._cursor.clone();\n if (this._interpolationConfig && this._attemptStr(this._interpolationConfig.start)) {\n this._endToken([this._processCarriageReturns(parts.join(''))], current);\n parts.length = 0;\n this._consumeInterpolation(interpolationTokenType, current, endInterpolation);\n this._beginToken(textTokenType);\n } else if (this._cursor.peek() === chars.$AMPERSAND) {\n this._endToken([this._processCarriageReturns(parts.join(''))]);\n parts.length = 0;\n this._consumeEntity(textTokenType);\n this._beginToken(textTokenType);\n } else {\n parts.push(this._readChar());\n }\n }\n\n // It is possible that an interpolation was started but not ended inside this text token.\n // Make sure that we reset the state of the lexer correctly.\n this._inInterpolation = false;\n\n this._endToken([this._processCarriageReturns(parts.join(''))]);\n }\n\n /**\n * Consume a block of text that has been interpreted as an Angular interpolation.\n *\n * @param interpolationTokenType the type of the interpolation token to generate.\n * @param interpolationStart a cursor that points to the start of this interpolation.\n * @param prematureEndPredicate a function that should return true if the next characters indicate\n * an end to the interpolation before its normal closing marker.\n */\n private _consumeInterpolation(\n interpolationTokenType: TokenType, interpolationStart: CharacterCursor,\n prematureEndPredicate: (() => boolean)|null): void {\n const parts: string[] = [];\n this._beginToken(interpolationTokenType, interpolationStart);\n parts.push(this._interpolationConfig.start);\n\n // Find the end of the interpolation, ignoring content inside quotes.\n const expressionStart = this._cursor.clone();\n let inQuote: number|null = null;\n let inComment = false;\n while (this._cursor.peek() !== chars.$EOF &&\n (prematureEndPredicate === null || !prematureEndPredicate())) {\n const current = this._cursor.clone();\n\n if (this._isTagStart()) {\n // We are starting what looks like an HTML element in the middle of this interpolation.\n // Reset the cursor to before the `<` character and end the interpolation token.\n // (This is actually wrong but here for backward compatibility).\n this._cursor = current;\n parts.push(this._getProcessedChars(expressionStart, current));\n this._endToken(parts);\n return;\n }\n\n if (inQuote === null) {\n if (this._attemptStr(this._interpolationConfig.end)) {\n // We are not in a string, and we hit the end interpolation marker\n parts.push(this._getProcessedChars(expressionStart, current));\n parts.push(this._interpolationConfig.end);\n this._endToken(parts);\n return;\n } else if (this._attemptStr('//')) {\n // Once we are in a comment we ignore any quotes\n inComment = true;\n }\n }\n\n const char = this._cursor.peek();\n this._cursor.advance();\n if (char === chars.$BACKSLASH) {\n // Skip the next character because it was escaped.\n this._cursor.advance();\n } else if (char === inQuote) {\n // Exiting the current quoted string\n inQuote = null;\n } else if (!inComment && inQuote === null && chars.isQuote(char)) {\n // Entering a new quoted string\n inQuote = char;\n }\n }\n\n // We hit EOF without finding a closing interpolation marker\n parts.push(this._getProcessedChars(expressionStart, this._cursor));\n this._endToken(parts);\n }\n\n private _getProcessedChars(start: CharacterCursor, end: CharacterCursor): string {\n return this._processCarriageReturns(end.getChars(start));\n }\n\n private _isTextEnd(): boolean {\n if (this._isTagStart() || this._cursor.peek() === chars.$EOF) {\n return true;\n }\n\n if (this._tokenizeIcu && !this._inInterpolation) {\n if (this.isExpansionFormStart()) {\n // start of an expansion form\n return true;\n }\n\n if (this._cursor.peek() === chars.$RBRACE && this._isInExpansionCase()) {\n // end of and expansion case\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Returns true if the current cursor is pointing to the start of a tag\n * (opening/closing/comments/cdata/etc).\n */\n private _isTagStart(): boolean {\n if (this._cursor.peek() === chars.$LT) {\n // We assume that `<` followed by whitespace is not the start of an HTML element.\n const tmp = this._cursor.clone();\n tmp.advance();\n // If the next character is alphabetic, ! nor / then it is a tag start\n const code = tmp.peek();\n if ((chars.$a <= code && code <= chars.$z) || (chars.$A <= code && code <= chars.$Z) ||\n code === chars.$SLASH || code === chars.$BANG) {\n return true;\n }\n }\n return false;\n }\n\n private _readUntil(char: number): string {\n const start = this._cursor.clone();\n this._attemptUntilChar(char);\n return this._cursor.getChars(start);\n }\n\n private _isInExpansionCase(): boolean {\n return this._expansionCaseStack.length > 0 &&\n this._expansionCaseStack[this._expansionCaseStack.length - 1] ===\n TokenType.EXPANSION_CASE_EXP_START;\n }\n\n private _isInExpansionForm(): boolean {\n return this._expansionCaseStack.length > 0 &&\n this._expansionCaseStack[this._expansionCaseStack.length - 1] ===\n TokenType.EXPANSION_FORM_START;\n }\n\n private isExpansionFormStart(): boolean {\n if (this._cursor.peek() !== chars.$LBRACE) {\n return false;\n }\n if (this._interpolationConfig) {\n const start = this._cursor.clone();\n const isInterpolation = this._attemptStr(this._interpolationConfig.start);\n this._cursor = start;\n return !isInterpolation;\n }\n return true;\n }\n}\n\nfunction isNotWhitespace(code: number): boolean {\n return !chars.isWhitespace(code) || code === chars.$EOF;\n}\n\nfunction isNameEnd(code: number): boolean {\n return chars.isWhitespace(code) || code === chars.$GT || code === chars.$LT ||\n code === chars.$SLASH || code === chars.$SQ || code === chars.$DQ || code === chars.$EQ ||\n code === chars.$EOF;\n}\n\nfunction isPrefixEnd(code: number): boolean {\n return (code < chars.$a || chars.$z < code) && (code < chars.$A || chars.$Z < code) &&\n (code < chars.$0 || code > chars.$9);\n}\n\nfunction isDigitEntityEnd(code: number): boolean {\n return code === chars.$SEMICOLON || code === chars.$EOF || !chars.isAsciiHexDigit(code);\n}\n\nfunction isNamedEntityEnd(code: number): boolean {\n return code === chars.$SEMICOLON || code === chars.$EOF || !chars.isAsciiLetter(code);\n}\n\nfunction isExpansionCaseStart(peek: number): boolean {\n return peek !== chars.$RBRACE;\n}\n\nfunction compareCharCodeCaseInsensitive(code1: number, code2: number): boolean {\n return toUpperCaseCharCode(code1) === toUpperCaseCharCode(code2);\n}\n\nfunction toUpperCaseCharCode(code: number): number {\n return code >= chars.$a && code <= chars.$z ? code - chars.$a + chars.$A : code;\n}\n\nfunction mergeTextTokens(srcTokens: Token[]): Token[] {\n const dstTokens: Token[] = [];\n let lastDstToken: Token|undefined = undefined;\n for (let i = 0; i < srcTokens.length; i++) {\n const token = srcTokens[i];\n if ((lastDstToken && lastDstToken.type === TokenType.TEXT && token.type === TokenType.TEXT) ||\n (lastDstToken && lastDstToken.type === TokenType.ATTR_VALUE_TEXT &&\n token.type === TokenType.ATTR_VALUE_TEXT)) {\n lastDstToken.parts[0]! += token.parts[0];\n lastDstToken.sourceSpan.end = token.sourceSpan.end;\n } else {\n lastDstToken = token;\n dstTokens.push(lastDstToken);\n }\n }\n\n return dstTokens;\n}\n\n\n/**\n * The _Tokenizer uses objects of this type to move through the input text,\n * extracting \"parsed characters\". These could be more than one actual character\n * if the text contains escape sequences.\n */\ninterface CharacterCursor {\n /** Initialize the cursor. */\n init(): void;\n /** The parsed character at the current cursor position. */\n peek(): number;\n /** Advance the cursor by one parsed character. */\n advance(): void;\n /** Get a span from the marked start point to the current point. */\n getSpan(start?: this, leadingTriviaCodePoints?: number[]): ParseSourceSpan;\n /** Get the parsed characters from the marked start point to the current point. */\n getChars(start: this): string;\n /** The number of characters left before the end of the cursor. */\n charsLeft(): number;\n /** The number of characters between `this` cursor and `other` cursor. */\n diff(other: this): number;\n /** Make a copy of this cursor */\n clone(): CharacterCursor;\n}\n\ninterface CursorState {\n peek: number;\n offset: number;\n line: number;\n column: number;\n}\n\nclass PlainCharacterCursor implements CharacterCursor {\n protected state: CursorState;\n protected file: ParseSourceFile;\n protected input: string;\n protected end: number;\n\n constructor(fileOrCursor: PlainCharacterCursor);\n constructor(fileOrCursor: ParseSourceFile, range: LexerRange);\n constructor(fileOrCursor: ParseSourceFile|PlainCharacterCursor, range?: LexerRange) {\n if (fileOrCursor instanceof PlainCharacterCursor) {\n this.file = fileOrCursor.file;\n this.input = fileOrCursor.input;\n this.end = fileOrCursor.end;\n\n const state = fileOrCursor.state;\n // Note: avoid using `{...fileOrCursor.state}` here as that has a severe performance penalty.\n // In ES5 bundles the object spread operator is translated into the `__assign` helper, which\n // is not optimized by VMs as efficiently as a raw object literal. Since this constructor is\n // called in tight loops, this difference matters.\n this.state = {\n peek: state.peek,\n offset: state.offset,\n line: state.line,\n column: state.column,\n };\n } else {\n if (!range) {\n throw new Error(\n 'Programming error: the range argument must be provided with a file argument.');\n }\n this.file = fileOrCursor;\n this.input = fileOrCursor.content;\n this.end = range.endPos;\n this.state = {\n peek: -1,\n offset: range.startPos,\n line: range.startLine,\n column: range.startCol,\n };\n }\n }\n\n clone(): PlainCharacterCursor {\n return new PlainCharacterCursor(this);\n }\n\n peek() {\n return this.state.peek;\n }\n charsLeft() {\n return this.end - this.state.offset;\n }\n diff(other: this) {\n return this.state.offset - other.state.offset;\n }\n\n advance(): void {\n this.advanceState(this.state);\n }\n\n init(): void {\n this.updatePeek(this.state);\n }\n\n getSpan(start?: this, leadingTriviaCodePoints?: number[]): ParseSourceSpan {\n start = start || this;\n let fullStart = start;\n if (leadingTriviaCodePoints) {\n while (this.diff(start) > 0 && leadingTriviaCodePoints.indexOf(start.peek()) !== -1) {\n if (fullStart === start) {\n start = start.clone() as this;\n }\n start.advance();\n }\n }\n const startLocation = this.locationFromCursor(start);\n const endLocation = this.locationFromCursor(this);\n const fullStartLocation =\n fullStart !== start ? this.locationFromCursor(fullStart) : startLocation;\n return new ParseSourceSpan(startLocation, endLocation, fullStartLocation);\n }\n\n getChars(start: this): string {\n return this.input.substring(start.state.offset, this.state.offset);\n }\n\n charAt(pos: number): number {\n return this.input.charCodeAt(pos);\n }\n\n protected advanceState(state: CursorState) {\n if (state.offset >= this.end) {\n this.state = state;\n throw new CursorError('Unexpected character \"EOF\"', this);\n }\n const currentChar = this.charAt(state.offset);\n if (currentChar === chars.$LF) {\n state.line++;\n state.column = 0;\n } else if (!chars.isNewLine(currentChar)) {\n state.column++;\n }\n state.offset++;\n this.updatePeek(state);\n }\n\n protected updatePeek(state: CursorState): void {\n state.peek = state.offset >= this.end ? chars.$EOF : this.charAt(state.offset);\n }\n\n private locationFromCursor(cursor: this): ParseLocation {\n return new ParseLocation(\n cursor.file, cursor.state.offset, cursor.state.line, cursor.state.column);\n }\n}\n\nclass EscapedCharacterCursor extends PlainCharacterCursor {\n protected internalState: CursorState;\n\n constructor(fileOrCursor: EscapedCharacterCursor);\n constructor(fileOrCursor: ParseSourceFile, range: LexerRange);\n constructor(fileOrCursor: ParseSourceFile|EscapedCharacterCursor, range?: LexerRange) {\n if (fileOrCursor instanceof EscapedCharacterCursor) {\n super(fileOrCursor);\n this.internalState = {...fileOrCursor.internalState};\n } else {\n super(fileOrCursor, range!);\n this.internalState = this.state;\n }\n }\n\n override advance(): void {\n this.state = this.internalState;\n super.advance();\n this.processEscapeSequence();\n }\n\n override init(): void {\n super.init();\n this.processEscapeSequence();\n }\n\n override clone(): EscapedCharacterCursor {\n return new EscapedCharacterCursor(this);\n }\n\n override getChars(start: this): string {\n const cursor = start.clone();\n let chars = '';\n while (cursor.internalState.offset < this.internalState.offset) {\n chars += String.fromCodePoint(cursor.peek());\n cursor.advance();\n }\n return chars;\n }\n\n /**\n * Process the escape sequence that starts at the current position in the text.\n *\n * This method is called to ensure that `peek` has the unescaped value of escape sequences.\n */\n protected processEscapeSequence(): void {\n const peek = () => this.internalState.peek;\n\n if (peek() === chars.$BACKSLASH) {\n // We have hit an escape sequence so we need the internal state to become independent\n // of the external state.\n this.internalState = {...this.state};\n\n // Move past the backslash\n this.advanceState(this.internalState);\n\n // First check for standard control char sequences\n if (peek() === chars.$n) {\n this.state.peek = chars.$LF;\n } else if (peek() === chars.$r) {\n this.state.peek = chars.$CR;\n } else if (peek() === chars.$v) {\n this.state.peek = chars.$VTAB;\n } else if (peek() === chars.$t) {\n this.state.peek = chars.$TAB;\n } else if (peek() === chars.$b) {\n this.state.peek = chars.$BSPACE;\n } else if (peek() === chars.$f) {\n this.state.peek = chars.$FF;\n }\n\n // Now consider more complex sequences\n else if (peek() === chars.$u) {\n // Unicode code-point sequence\n this.advanceState(this.internalState); // advance past the `u` char\n if (peek() === chars.$LBRACE) {\n // Variable length Unicode, e.g. `\\x{123}`\n this.advanceState(this.internalState); // advance past the `{` char\n // Advance past the variable number of hex digits until we hit a `}` char\n const digitStart = this.clone();\n let length = 0;\n while (peek() !== chars.$RBRACE) {\n this.advanceState(this.internalState);\n length++;\n }\n this.state.peek = this.decodeHexDigits(digitStart, length);\n } else {\n // Fixed length Unicode, e.g. `\\u1234`\n const digitStart = this.clone();\n this.advanceState(this.internalState);\n this.advanceState(this.internalState);\n this.advanceState(this.internalState);\n this.state.peek = this.decodeHexDigits(digitStart, 4);\n }\n }\n\n else if (peek() === chars.$x) {\n // Hex char code, e.g. `\\x2F`\n this.advanceState(this.internalState); // advance past the `x` char\n const digitStart = this.clone();\n this.advanceState(this.internalState);\n this.state.peek = this.decodeHexDigits(digitStart, 2);\n }\n\n else if (chars.isOctalDigit(peek())) {\n // Octal char code, e.g. `\\012`,\n let octal = '';\n let length = 0;\n let previous = this.clone();\n while (chars.isOctalDigit(peek()) && length < 3) {\n previous = this.clone();\n octal += String.fromCodePoint(peek());\n this.advanceState(this.internalState);\n length++;\n }\n this.state.peek = parseInt(octal, 8);\n // Backup one char\n this.internalState = previous.internalState;\n }\n\n else if (chars.isNewLine(this.internalState.peek)) {\n // Line continuation `\\` followed by a new line\n this.advanceState(this.internalState); // advance over the newline\n this.state = this.internalState;\n }\n\n else {\n // If none of the `if` blocks were executed then we just have an escaped normal character.\n // In that case we just, effectively, skip the backslash from the character.\n this.state.peek = this.internalState.peek;\n }\n }\n }\n\n protected decodeHexDigits(start: EscapedCharacterCursor, length: number): number {\n const hex = this.input.substr(start.internalState.offset, length);\n const charCode = parseInt(hex, 16);\n if (!isNaN(charCode)) {\n return charCode;\n } else {\n start.state = start.internalState;\n throw new CursorError('Invalid hexadecimal escape sequence', start);\n }\n }\n}\n\nexport class CursorError {\n constructor(public msg: string, public cursor: CharacterCursor) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport {ParseError, ParseLocation, ParseSourceSpan} from '../parse_util';\n\nimport * as html from './ast';\nimport {NAMED_ENTITIES} from './entities';\nimport {tokenize, TokenizeOptions} from './lexer';\nimport {getNsPrefix, mergeNsAndName, splitNsName, TagDefinition} from './tags';\nimport {AttributeNameToken, AttributeQuoteToken, CdataStartToken, CommentStartToken, ExpansionCaseExpressionEndToken, ExpansionCaseExpressionStartToken, ExpansionCaseValueToken, ExpansionFormStartToken, IncompleteTagOpenToken, InterpolatedAttributeToken, InterpolatedTextToken, TagCloseToken, TagOpenStartToken, TextToken, Token, TokenType} from './tokens';\n\nexport class TreeError extends ParseError {\n static create(elementName: string|null, span: ParseSourceSpan, msg: string): TreeError {\n return new TreeError(elementName, span, msg);\n }\n\n constructor(public elementName: string|null, span: ParseSourceSpan, msg: string) {\n super(span, msg);\n }\n}\n\nexport class ParseTreeResult {\n constructor(public rootNodes: html.Node[], public errors: ParseError[]) {}\n}\n\nexport class Parser {\n constructor(public getTagDefinition: (tagName: string) => TagDefinition) {}\n\n parse(source: string, url: string, options?: TokenizeOptions): ParseTreeResult {\n const tokenizeResult = tokenize(source, url, this.getTagDefinition, options);\n const parser = new _TreeBuilder(tokenizeResult.tokens, this.getTagDefinition);\n parser.build();\n return new ParseTreeResult(\n parser.rootNodes,\n (tokenizeResult.errors as ParseError[]).concat(parser.errors),\n );\n }\n}\n\nclass _TreeBuilder {\n private _index: number = -1;\n // `_peek` will be initialized by the call to `_advance()` in the constructor.\n private _peek!: Token;\n private _elementStack: html.Element[] = [];\n\n rootNodes: html.Node[] = [];\n errors: TreeError[] = [];\n\n constructor(\n private tokens: Token[], private getTagDefinition: (tagName: string) => TagDefinition) {\n this._advance();\n }\n\n build(): void {\n while (this._peek.type !== TokenType.EOF) {\n if (this._peek.type === TokenType.TAG_OPEN_START ||\n this._peek.type === TokenType.INCOMPLETE_TAG_OPEN) {\n this._consumeStartTag(this._advance());\n } else if (this._peek.type === TokenType.TAG_CLOSE) {\n this._consumeEndTag(this._advance());\n } else if (this._peek.type === TokenType.CDATA_START) {\n this._closeVoidElement();\n this._consumeCdata(this._advance());\n } else if (this._peek.type === TokenType.COMMENT_START) {\n this._closeVoidElement();\n this._consumeComment(this._advance());\n } else if (\n this._peek.type === TokenType.TEXT || this._peek.type === TokenType.RAW_TEXT ||\n this._peek.type === TokenType.ESCAPABLE_RAW_TEXT) {\n this._closeVoidElement();\n this._consumeText(this._advance());\n } else if (this._peek.type === TokenType.EXPANSION_FORM_START) {\n this._consumeExpansion(this._advance());\n } else {\n // Skip all other tokens...\n this._advance();\n }\n }\n }\n\n private _advance(): T {\n const prev = this._peek;\n if (this._index < this.tokens.length - 1) {\n // Note: there is always an EOF token at the end\n this._index++;\n }\n this._peek = this.tokens[this._index];\n return prev as T;\n }\n\n private _advanceIf(type: T): (Token&{type: T})|null {\n if (this._peek.type === type) {\n return this._advance();\n }\n return null;\n }\n\n private _consumeCdata(_startToken: CdataStartToken) {\n this._consumeText(this._advance());\n this._advanceIf(TokenType.CDATA_END);\n }\n\n private _consumeComment(token: CommentStartToken) {\n const text = this._advanceIf(TokenType.RAW_TEXT);\n this._advanceIf(TokenType.COMMENT_END);\n const value = text != null ? text.parts[0].trim() : null;\n this._addToParent(new html.Comment(value, token.sourceSpan));\n }\n\n private _consumeExpansion(token: ExpansionFormStartToken) {\n const switchValue = this._advance();\n\n const type = this._advance();\n const cases: html.ExpansionCase[] = [];\n\n // read =\n while (this._peek.type === TokenType.EXPANSION_CASE_VALUE) {\n const expCase = this._parseExpansionCase();\n if (!expCase) return; // error\n cases.push(expCase);\n }\n\n // read the final }\n if (this._peek.type !== TokenType.EXPANSION_FORM_END) {\n this.errors.push(\n TreeError.create(null, this._peek.sourceSpan, `Invalid ICU message. Missing '}'.`));\n return;\n }\n const sourceSpan = new ParseSourceSpan(\n token.sourceSpan.start, this._peek.sourceSpan.end, token.sourceSpan.fullStart);\n this._addToParent(new html.Expansion(\n switchValue.parts[0], type.parts[0], cases, sourceSpan, switchValue.sourceSpan));\n\n this._advance();\n }\n\n private _parseExpansionCase(): html.ExpansionCase|null {\n const value = this._advance();\n\n // read {\n if (this._peek.type !== TokenType.EXPANSION_CASE_EXP_START) {\n this.errors.push(\n TreeError.create(null, this._peek.sourceSpan, `Invalid ICU message. Missing '{'.`));\n return null;\n }\n\n // read until }\n const start = this._advance();\n\n const exp = this._collectExpansionExpTokens(start);\n if (!exp) return null;\n\n const end = this._advance();\n exp.push({type: TokenType.EOF, parts: [], sourceSpan: end.sourceSpan});\n\n // parse everything in between { and }\n const expansionCaseParser = new _TreeBuilder(exp, this.getTagDefinition);\n expansionCaseParser.build();\n if (expansionCaseParser.errors.length > 0) {\n this.errors = this.errors.concat(expansionCaseParser.errors);\n return null;\n }\n\n const sourceSpan =\n new ParseSourceSpan(value.sourceSpan.start, end.sourceSpan.end, value.sourceSpan.fullStart);\n const expSourceSpan =\n new ParseSourceSpan(start.sourceSpan.start, end.sourceSpan.end, start.sourceSpan.fullStart);\n return new html.ExpansionCase(\n value.parts[0], expansionCaseParser.rootNodes, sourceSpan, value.sourceSpan, expSourceSpan);\n }\n\n private _collectExpansionExpTokens(start: Token): Token[]|null {\n const exp: Token[] = [];\n const expansionFormStack = [TokenType.EXPANSION_CASE_EXP_START];\n\n while (true) {\n if (this._peek.type === TokenType.EXPANSION_FORM_START ||\n this._peek.type === TokenType.EXPANSION_CASE_EXP_START) {\n expansionFormStack.push(this._peek.type);\n }\n\n if (this._peek.type === TokenType.EXPANSION_CASE_EXP_END) {\n if (lastOnStack(expansionFormStack, TokenType.EXPANSION_CASE_EXP_START)) {\n expansionFormStack.pop();\n if (expansionFormStack.length === 0) return exp;\n\n } else {\n this.errors.push(\n TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`));\n return null;\n }\n }\n\n if (this._peek.type === TokenType.EXPANSION_FORM_END) {\n if (lastOnStack(expansionFormStack, TokenType.EXPANSION_FORM_START)) {\n expansionFormStack.pop();\n } else {\n this.errors.push(\n TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`));\n return null;\n }\n }\n\n if (this._peek.type === TokenType.EOF) {\n this.errors.push(\n TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`));\n return null;\n }\n\n exp.push(this._advance());\n }\n }\n\n private _consumeText(token: InterpolatedTextToken) {\n const tokens = [token];\n const startSpan = token.sourceSpan;\n let text = token.parts[0];\n if (text.length > 0 && text[0] === '\\n') {\n const parent = this._getParentElement();\n if (parent != null && parent.children.length === 0 &&\n this.getTagDefinition(parent.name).ignoreFirstLf) {\n text = text.substring(1);\n tokens[0] = {type: token.type, sourceSpan: token.sourceSpan, parts: [text]} as typeof token;\n }\n }\n\n while (this._peek.type === TokenType.INTERPOLATION || this._peek.type === TokenType.TEXT ||\n this._peek.type === TokenType.ENCODED_ENTITY) {\n token = this._advance();\n tokens.push(token);\n if (token.type === TokenType.INTERPOLATION) {\n // For backward compatibility we decode HTML entities that appear in interpolation\n // expressions. This is arguably a bug, but it could be a considerable breaking change to\n // fix it. It should be addressed in a larger project to refactor the entire parser/lexer\n // chain after View Engine has been removed.\n text += token.parts.join('').replace(/&([^;]+);/g, decodeEntity);\n } else if (token.type === TokenType.ENCODED_ENTITY) {\n text += token.parts[0];\n } else {\n text += token.parts.join('');\n }\n }\n\n if (text.length > 0) {\n const endSpan = token.sourceSpan;\n this._addToParent(new html.Text(\n text,\n new ParseSourceSpan(startSpan.start, endSpan.end, startSpan.fullStart, startSpan.details),\n tokens));\n }\n }\n\n private _closeVoidElement(): void {\n const el = this._getParentElement();\n if (el && this.getTagDefinition(el.name).isVoid) {\n this._elementStack.pop();\n }\n }\n\n private _consumeStartTag(startTagToken: TagOpenStartToken|IncompleteTagOpenToken) {\n const [prefix, name] = startTagToken.parts;\n const attrs: html.Attribute[] = [];\n while (this._peek.type === TokenType.ATTR_NAME) {\n attrs.push(this._consumeAttr(this._advance()));\n }\n const fullName = this._getElementFullName(prefix, name, this._getParentElement());\n let selfClosing = false;\n // Note: There could have been a tokenizer error\n // so that we don't get a token for the end tag...\n if (this._peek.type === TokenType.TAG_OPEN_END_VOID) {\n this._advance();\n selfClosing = true;\n const tagDef = this.getTagDefinition(fullName);\n if (!(tagDef.canSelfClose || getNsPrefix(fullName) !== null || tagDef.isVoid)) {\n this.errors.push(TreeError.create(\n fullName, startTagToken.sourceSpan,\n `Only void and foreign elements can be self closed \"${startTagToken.parts[1]}\"`));\n }\n } else if (this._peek.type === TokenType.TAG_OPEN_END) {\n this._advance();\n selfClosing = false;\n }\n const end = this._peek.sourceSpan.fullStart;\n const span = new ParseSourceSpan(\n startTagToken.sourceSpan.start, end, startTagToken.sourceSpan.fullStart);\n // Create a separate `startSpan` because `span` will be modified when there is an `end` span.\n const startSpan = new ParseSourceSpan(\n startTagToken.sourceSpan.start, end, startTagToken.sourceSpan.fullStart);\n const el = new html.Element(fullName, attrs, [], span, startSpan, undefined);\n this._pushElement(el);\n if (selfClosing) {\n // Elements that are self-closed have their `endSourceSpan` set to the full span, as the\n // element start tag also represents the end tag.\n this._popElement(fullName, span);\n } else if (startTagToken.type === TokenType.INCOMPLETE_TAG_OPEN) {\n // We already know the opening tag is not complete, so it is unlikely it has a corresponding\n // close tag. Let's optimistically parse it as a full element and emit an error.\n this._popElement(fullName, null);\n this.errors.push(\n TreeError.create(fullName, span, `Opening tag \"${fullName}\" not terminated.`));\n }\n }\n\n private _pushElement(el: html.Element) {\n const parentEl = this._getParentElement();\n\n if (parentEl && this.getTagDefinition(parentEl.name).isClosedByChild(el.name)) {\n this._elementStack.pop();\n }\n\n this._addToParent(el);\n this._elementStack.push(el);\n }\n\n private _consumeEndTag(endTagToken: TagCloseToken) {\n const fullName = this._getElementFullName(\n endTagToken.parts[0], endTagToken.parts[1], this._getParentElement());\n\n if (this.getTagDefinition(fullName).isVoid) {\n this.errors.push(TreeError.create(\n fullName, endTagToken.sourceSpan,\n `Void elements do not have end tags \"${endTagToken.parts[1]}\"`));\n } else if (!this._popElement(fullName, endTagToken.sourceSpan)) {\n const errMsg = `Unexpected closing tag \"${\n fullName}\". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`;\n this.errors.push(TreeError.create(fullName, endTagToken.sourceSpan, errMsg));\n }\n }\n\n /**\n * Closes the nearest element with the tag name `fullName` in the parse tree.\n * `endSourceSpan` is the span of the closing tag, or null if the element does\n * not have a closing tag (for example, this happens when an incomplete\n * opening tag is recovered).\n */\n private _popElement(fullName: string, endSourceSpan: ParseSourceSpan|null): boolean {\n let unexpectedCloseTagDetected = false;\n for (let stackIndex = this._elementStack.length - 1; stackIndex >= 0; stackIndex--) {\n const el = this._elementStack[stackIndex];\n if (el.name === fullName) {\n // Record the parse span with the element that is being closed. Any elements that are\n // removed from the element stack at this point are closed implicitly, so they won't get\n // an end source span (as there is no explicit closing element).\n el.endSourceSpan = endSourceSpan;\n el.sourceSpan.end = endSourceSpan !== null ? endSourceSpan.end : el.sourceSpan.end;\n\n this._elementStack.splice(stackIndex, this._elementStack.length - stackIndex);\n return !unexpectedCloseTagDetected;\n }\n\n if (!this.getTagDefinition(el.name).closedByParent) {\n // Note that we encountered an unexpected close tag but continue processing the element\n // stack so we can assign an `endSourceSpan` if there is a corresponding start tag for this\n // end tag in the stack.\n unexpectedCloseTagDetected = true;\n }\n }\n return false;\n }\n\n private _consumeAttr(attrName: AttributeNameToken): html.Attribute {\n const fullName = mergeNsAndName(attrName.parts[0], attrName.parts[1]);\n let attrEnd = attrName.sourceSpan.end;\n\n // Consume any quote\n if (this._peek.type === TokenType.ATTR_QUOTE) {\n this._advance();\n }\n\n // Consume the attribute value\n let value = '';\n const valueTokens: InterpolatedAttributeToken[] = [];\n let valueStartSpan: ParseSourceSpan|undefined = undefined;\n let valueEnd: ParseLocation|undefined = undefined;\n // NOTE: We need to use a new variable `nextTokenType` here to hide the actual type of\n // `_peek.type` from TS. Otherwise TS will narrow the type of `_peek.type` preventing it from\n // being able to consider `ATTR_VALUE_INTERPOLATION` as an option. This is because TS is not\n // able to see that `_advance()` will actually mutate `_peek`.\n const nextTokenType = this._peek.type as TokenType;\n if (nextTokenType === TokenType.ATTR_VALUE_TEXT) {\n valueStartSpan = this._peek.sourceSpan;\n valueEnd = this._peek.sourceSpan.end;\n while (this._peek.type === TokenType.ATTR_VALUE_TEXT ||\n this._peek.type === TokenType.ATTR_VALUE_INTERPOLATION ||\n this._peek.type === TokenType.ENCODED_ENTITY) {\n const valueToken = this._advance();\n valueTokens.push(valueToken);\n if (valueToken.type === TokenType.ATTR_VALUE_INTERPOLATION) {\n // For backward compatibility we decode HTML entities that appear in interpolation\n // expressions. This is arguably a bug, but it could be a considerable breaking change to\n // fix it. It should be addressed in a larger project to refactor the entire parser/lexer\n // chain after View Engine has been removed.\n value += valueToken.parts.join('').replace(/&([^;]+);/g, decodeEntity);\n } else if (valueToken.type === TokenType.ENCODED_ENTITY) {\n value += valueToken.parts[0];\n } else {\n value += valueToken.parts.join('');\n }\n valueEnd = attrEnd = valueToken.sourceSpan.end;\n }\n }\n\n // Consume any quote\n if (this._peek.type === TokenType.ATTR_QUOTE) {\n const quoteToken = this._advance();\n attrEnd = quoteToken.sourceSpan.end;\n }\n\n const valueSpan = valueStartSpan && valueEnd &&\n new ParseSourceSpan(valueStartSpan.start, valueEnd, valueStartSpan.fullStart);\n return new html.Attribute(\n fullName, value,\n new ParseSourceSpan(attrName.sourceSpan.start, attrEnd, attrName.sourceSpan.fullStart),\n attrName.sourceSpan, valueSpan, valueTokens.length > 0 ? valueTokens : undefined,\n undefined);\n }\n\n private _getParentElement(): html.Element|null {\n return this._elementStack.length > 0 ? this._elementStack[this._elementStack.length - 1] : null;\n }\n\n private _addToParent(node: html.Node) {\n const parent = this._getParentElement();\n if (parent != null) {\n parent.children.push(node);\n } else {\n this.rootNodes.push(node);\n }\n }\n\n private _getElementFullName(prefix: string, localName: string, parentElement: html.Element|null):\n string {\n if (prefix === '') {\n prefix = this.getTagDefinition(localName).implicitNamespacePrefix || '';\n if (prefix === '' && parentElement != null) {\n const parentTagName = splitNsName(parentElement.name)[1];\n const parentTagDefinition = this.getTagDefinition(parentTagName);\n if (!parentTagDefinition.preventNamespaceInheritance) {\n prefix = getNsPrefix(parentElement.name);\n }\n }\n }\n\n return mergeNsAndName(prefix, localName);\n }\n}\n\nfunction lastOnStack(stack: any[], element: any): boolean {\n return stack.length > 0 && stack[stack.length - 1] === element;\n}\n\n/**\n * Decode the `entity` string, which we believe is the contents of an HTML entity.\n *\n * If the string is not actually a valid/known entity then just return the original `match` string.\n */\nfunction decodeEntity(match: string, entity: string): string {\n if (NAMED_ENTITIES[entity] !== undefined) {\n return NAMED_ENTITIES[entity] || match;\n }\n if (/^#x[a-f0-9]+$/i.test(entity)) {\n return String.fromCodePoint(parseInt(entity.slice(2), 16));\n }\n if (/^#\\d+$/.test(entity)) {\n return String.fromCodePoint(parseInt(entity.slice(1), 10));\n }\n return match;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport {getHtmlTagDefinition} from './html_tags';\nimport {TokenizeOptions} from './lexer';\nimport {Parser, ParseTreeResult} from './parser';\n\nexport class HtmlParser extends Parser {\n constructor() {\n super(getHtmlTagDefinition);\n }\n\n override parse(source: string, url: string, options?: TokenizeOptions): ParseTreeResult {\n return super.parse(source, url, options);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport * as html from './ast';\nimport {NGSP_UNICODE} from './entities';\nimport {ParseTreeResult} from './parser';\nimport {TextToken, TokenType} from './tokens';\n\nexport const PRESERVE_WS_ATTR_NAME = 'ngPreserveWhitespaces';\n\nconst SKIP_WS_TRIM_TAGS = new Set(['pre', 'template', 'textarea', 'script', 'style']);\n\n// Equivalent to \\s with \\u00a0 (non-breaking space) excluded.\n// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\nconst WS_CHARS = ' \\f\\n\\r\\t\\v\\u1680\\u180e\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff';\nconst NO_WS_REGEXP = new RegExp(`[^${WS_CHARS}]`);\nconst WS_REPLACE_REGEXP = new RegExp(`[${WS_CHARS}]{2,}`, 'g');\n\nfunction hasPreserveWhitespacesAttr(attrs: html.Attribute[]): boolean {\n return attrs.some((attr: html.Attribute) => attr.name === PRESERVE_WS_ATTR_NAME);\n}\n\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.\n */\nexport function replaceNgsp(value: string): string {\n // lexer is replacing the &ngsp; pseudo-entity with NGSP_UNICODE\n return value.replace(new RegExp(NGSP_UNICODE, 'g'), ' ');\n}\n\n/**\n * This visitor can walk HTML parse tree and remove / trim text nodes using the following rules:\n * - consider spaces, tabs and new lines as whitespace characters;\n * - drop text nodes consisting of whitespace characters only;\n * - for all other text nodes replace consecutive whitespace characters with one space;\n * - convert &ngsp; pseudo-entity to a single space;\n *\n * Removal and trimming of whitespaces have positive performance impact (less code to generate\n * while compiling templates, faster view creation). At the same time it can be \"destructive\"\n * in some cases (whitespaces can influence layout). Because of the potential of breaking layout\n * this visitor is not activated by default in Angular 5 and people need to explicitly opt-in for\n * whitespace removal. The default option for whitespace removal will be revisited in Angular 6\n * and might be changed to \"on\" by default.\n */\nexport class WhitespaceVisitor implements html.Visitor {\n visitElement(element: html.Element, context: any): any {\n if (SKIP_WS_TRIM_TAGS.has(element.name) || hasPreserveWhitespacesAttr(element.attrs)) {\n // don't descent into elements where we need to preserve whitespaces\n // but still visit all attributes to eliminate one used as a market to preserve WS\n return new html.Element(\n element.name, html.visitAll(this, element.attrs), element.children, element.sourceSpan,\n element.startSourceSpan, element.endSourceSpan, element.i18n);\n }\n\n return new html.Element(\n element.name, element.attrs, visitAllWithSiblings(this, element.children),\n element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n);\n }\n\n visitAttribute(attribute: html.Attribute, context: any): any {\n return attribute.name !== PRESERVE_WS_ATTR_NAME ? attribute : null;\n }\n\n visitText(text: html.Text, context: SiblingVisitorContext|null): any {\n const isNotBlank = text.value.match(NO_WS_REGEXP);\n const hasExpansionSibling = context &&\n (context.prev instanceof html.Expansion || context.next instanceof html.Expansion);\n\n if (isNotBlank || hasExpansionSibling) {\n // Process the whitespace in the tokens of this Text node\n const tokens = text.tokens.map(\n token =>\n token.type === TokenType.TEXT ? createWhitespaceProcessedTextToken(token) : token);\n // Process the whitespace of the value of this Text node\n const value = processWhitespace(text.value);\n return new html.Text(value, text.sourceSpan, tokens, text.i18n);\n }\n\n return null;\n }\n\n visitComment(comment: html.Comment, context: any): any {\n return comment;\n }\n\n visitExpansion(expansion: html.Expansion, context: any): any {\n return expansion;\n }\n\n visitExpansionCase(expansionCase: html.ExpansionCase, context: any): any {\n return expansionCase;\n }\n}\n\nfunction createWhitespaceProcessedTextToken({type, parts, sourceSpan}: TextToken): TextToken {\n return {type, parts: [processWhitespace(parts[0])], sourceSpan};\n}\n\nfunction processWhitespace(text: string): string {\n return replaceNgsp(text).replace(WS_REPLACE_REGEXP, ' ');\n}\n\nexport function removeWhitespaces(htmlAstWithErrors: ParseTreeResult): ParseTreeResult {\n return new ParseTreeResult(\n html.visitAll(new WhitespaceVisitor(), htmlAstWithErrors.rootNodes),\n htmlAstWithErrors.errors);\n}\n\ninterface SiblingVisitorContext {\n prev: html.Node|undefined;\n next: html.Node|undefined;\n}\n\nfunction visitAllWithSiblings(visitor: WhitespaceVisitor, nodes: html.Node[]): any[] {\n const result: any[] = [];\n\n nodes.forEach((ast, i) => {\n const context: SiblingVisitorContext = {prev: nodes[i - 1], next: nodes[i + 1]};\n const astResult = ast.visit(visitor, context);\n if (astResult) {\n result.push(astResult);\n }\n });\n return result;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport * as o from './output_ast';\n\nexport type MapEntry = {\n key: string,\n quoted: boolean,\n value: o.Expression\n};\n\nexport type MapLiteral = MapEntry[];\n\nexport function mapEntry(key: string, value: o.Expression): MapEntry {\n return {key, value, quoted: false};\n}\n\nexport function mapLiteral(\n obj: {[key: string]: o.Expression}, quoted: boolean = false): o.Expression {\n return o.literalMap(Object.keys(obj).map(key => ({\n key,\n quoted,\n value: obj[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 */\n\nimport {SecurityContext} from '../core';\n\n// =================================================================================================\n// =================================================================================================\n// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P ===========\n// =================================================================================================\n// =================================================================================================\n//\n// DO NOT EDIT THIS LIST OF SECURITY SENSITIVE PROPERTIES WITHOUT A SECURITY REVIEW!\n// Reach out to mprobst for details.\n//\n// =================================================================================================\n\n/** Map from tagName|propertyName to SecurityContext. Properties applying to all tags use '*'. */\nlet _SECURITY_SCHEMA!: {[k: string]: SecurityContext};\n\nexport function SECURITY_SCHEMA(): {[k: string]: SecurityContext} {\n if (!_SECURITY_SCHEMA) {\n _SECURITY_SCHEMA = {};\n // Case is insignificant below, all element and attribute names are lower-cased for lookup.\n\n registerContext(SecurityContext.HTML, [\n 'iframe|srcdoc',\n '*|innerHTML',\n '*|outerHTML',\n ]);\n registerContext(SecurityContext.STYLE, ['*|style']);\n // NB: no SCRIPT contexts here, they are never allowed due to the parser stripping them.\n registerContext(SecurityContext.URL, [\n '*|formAction', 'area|href', 'area|ping', 'audio|src', 'a|href',\n 'a|ping', 'blockquote|cite', 'body|background', 'del|cite', 'form|action',\n 'img|src', 'img|srcset', 'input|src', 'ins|cite', 'q|cite',\n 'source|src', 'source|srcset', 'track|src', 'video|poster', 'video|src',\n ]);\n registerContext(SecurityContext.RESOURCE_URL, [\n 'applet|code',\n 'applet|codebase',\n 'base|href',\n 'embed|src',\n 'frame|src',\n 'head|profile',\n 'html|manifest',\n 'iframe|src',\n 'link|href',\n 'media|src',\n 'object|codebase',\n 'object|data',\n 'script|src',\n ]);\n }\n return _SECURITY_SCHEMA;\n}\n\nfunction registerContext(ctx: SecurityContext, specs: string[]) {\n for (const spec of specs) _SECURITY_SCHEMA[spec.toLowerCase()] = ctx;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport {SchemaMetadata, SecurityContext} from '../core';\n\nexport abstract class ElementSchemaRegistry {\n abstract hasProperty(tagName: string, propName: string, schemaMetas: SchemaMetadata[]): boolean;\n abstract hasElement(tagName: string, schemaMetas: SchemaMetadata[]): boolean;\n abstract securityContext(elementName: string, propName: string, isAttribute: boolean):\n SecurityContext;\n abstract allKnownElementNames(): string[];\n abstract getMappedPropName(propName: string): string;\n abstract getDefaultComponentElementName(): string;\n abstract validateProperty(name: string): {error: boolean, msg?: string};\n abstract validateAttribute(name: string): {error: boolean, msg?: string};\n abstract normalizeAnimationStyleProperty(propName: string): string;\n abstract normalizeAnimationStyleValue(\n camelCaseProp: string, userProvidedProp: string,\n val: string|number): {error: string, value: string};\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport {CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, SchemaMetadata, SecurityContext} from '../core';\n\nimport {isNgContainer, isNgContent} from '../ml_parser/tags';\nimport {dashCaseToCamelCase} from '../util';\n\nimport {SECURITY_SCHEMA} from './dom_security_schema';\nimport {ElementSchemaRegistry} from './element_schema_registry';\n\nconst EVENT = 'event';\nconst BOOLEAN = 'boolean';\nconst NUMBER = 'number';\nconst STRING = 'string';\nconst OBJECT = 'object';\n\n/**\n * This array represents the DOM schema. It encodes inheritance, properties, and events.\n *\n * ## Overview\n *\n * Each line represents one kind of element. The `element_inheritance` and properties are joined\n * using `element_inheritance|properties` syntax.\n *\n * ## Element Inheritance\n *\n * The `element_inheritance` can be further subdivided as `element1,element2,...^parentElement`.\n * Here the individual elements are separated by `,` (commas). Every element in the list\n * has identical properties.\n *\n * An `element` may inherit additional properties from `parentElement` If no `^parentElement` is\n * specified then `\"\"` (blank) element is assumed.\n *\n * NOTE: The blank element inherits from root `[Element]` element, the super element of all\n * elements.\n *\n * NOTE an element prefix such as `:svg:` has no special meaning to the schema.\n *\n * ## Properties\n *\n * Each element has a set of properties separated by `,` (commas). Each property can be prefixed\n * by a special character designating its type:\n *\n * - (no prefix): property is a string.\n * - `*`: property represents an event.\n * - `!`: property is a boolean.\n * - `#`: property is a number.\n * - `%`: property is an object.\n *\n * ## Query\n *\n * The class creates an internal squas representation which allows to easily answer the query of\n * if a given property exist on a given element.\n *\n * NOTE: We don't yet support querying for types or events.\n * NOTE: This schema is auto extracted from `schema_extractor.ts` located in the test folder,\n * see dom_element_schema_registry_spec.ts\n */\n\n// =================================================================================================\n// =================================================================================================\n// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P ===========\n// =================================================================================================\n// =================================================================================================\n//\n// DO NOT EDIT THIS DOM SCHEMA WITHOUT A SECURITY REVIEW!\n//\n// Newly added properties must be security reviewed and assigned an appropriate SecurityContext in\n// dom_security_schema.ts. Reach out to mprobst & rjamet for details.\n//\n// =================================================================================================\n\nconst SCHEMA: string[] = [\n '[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop,slot' +\n /* added manually to avoid breaking changes */\n ',*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored',\n '[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',\n 'abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',\n 'media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,src,%srcObject,#volume',\n ':svg:^[HTMLElement]|*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex',\n ':svg:graphics^:svg:|',\n ':svg:animation^:svg:|*begin,*end,*repeat',\n ':svg:geometry^:svg:|',\n ':svg:componentTransferFunction^:svg:|',\n ':svg:gradient^:svg:|',\n ':svg:textContent^:svg:graphics|',\n ':svg:textPositioning^:svg:textContent|',\n 'a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username',\n 'area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,search,shape,target,username',\n 'audio^media|',\n 'br^[HTMLElement]|clear',\n 'base^[HTMLElement]|href,target',\n 'body^[HTMLElement]|aLink,background,bgColor,link,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink',\n 'button^[HTMLElement]|!autofocus,!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value',\n 'canvas^[HTMLElement]|#height,#width',\n 'content^[HTMLElement]|select',\n 'dl^[HTMLElement]|!compact',\n 'datalist^[HTMLElement]|',\n 'details^[HTMLElement]|!open',\n 'dialog^[HTMLElement]|!open,returnValue',\n 'dir^[HTMLElement]|!compact',\n 'div^[HTMLElement]|align',\n 'embed^[HTMLElement]|align,height,name,src,type,width',\n 'fieldset^[HTMLElement]|!disabled,name',\n 'font^[HTMLElement]|color,face,size',\n 'form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target',\n 'frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src',\n 'frameset^[HTMLElement]|cols,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows',\n 'hr^[HTMLElement]|align,color,!noShade,size,width',\n 'head^[HTMLElement]|',\n 'h1,h2,h3,h4,h5,h6^[HTMLElement]|align',\n 'html^[HTMLElement]|version',\n 'iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width',\n 'img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width',\n 'input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width',\n 'li^[HTMLElement]|type,#value',\n 'label^[HTMLElement]|htmlFor',\n 'legend^[HTMLElement]|align',\n 'link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type',\n 'map^[HTMLElement]|name',\n 'marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width',\n 'menu^[HTMLElement]|!compact',\n 'meta^[HTMLElement]|content,httpEquiv,name,scheme',\n 'meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value',\n 'ins,del^[HTMLElement]|cite,dateTime',\n 'ol^[HTMLElement]|!compact,!reversed,#start,type',\n 'object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width',\n 'optgroup^[HTMLElement]|!disabled,label',\n 'option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value',\n 'output^[HTMLElement]|defaultValue,%htmlFor,name,value',\n 'p^[HTMLElement]|align',\n 'param^[HTMLElement]|name,type,value,valueType',\n 'picture^[HTMLElement]|',\n 'pre^[HTMLElement]|#width',\n 'progress^[HTMLElement]|#max,#value',\n 'q,blockquote,cite^[HTMLElement]|',\n 'script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type',\n 'select^[HTMLElement]|autocomplete,!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value',\n 'shadow^[HTMLElement]|',\n 'slot^[HTMLElement]|name',\n 'source^[HTMLElement]|media,sizes,src,srcset,type',\n 'span^[HTMLElement]|',\n 'style^[HTMLElement]|!disabled,media,type',\n 'caption^[HTMLElement]|align',\n 'th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width',\n 'col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width',\n 'table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width',\n 'tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign',\n 'tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign',\n 'template^[HTMLElement]|',\n 'textarea^[HTMLElement]|autocapitalize,autocomplete,!autofocus,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap',\n 'title^[HTMLElement]|text',\n 'track^[HTMLElement]|!default,kind,label,src,srclang',\n 'ul^[HTMLElement]|!compact,type',\n 'unknown^[HTMLElement]|',\n 'video^media|#height,poster,#width',\n ':svg:a^:svg:graphics|',\n ':svg:animate^:svg:animation|',\n ':svg:animateMotion^:svg:animation|',\n ':svg:animateTransform^:svg:animation|',\n ':svg:circle^:svg:geometry|',\n ':svg:clipPath^:svg:graphics|',\n ':svg:defs^:svg:graphics|',\n ':svg:desc^:svg:|',\n ':svg:discard^:svg:|',\n ':svg:ellipse^:svg:geometry|',\n ':svg:feBlend^:svg:|',\n ':svg:feColorMatrix^:svg:|',\n ':svg:feComponentTransfer^:svg:|',\n ':svg:feComposite^:svg:|',\n ':svg:feConvolveMatrix^:svg:|',\n ':svg:feDiffuseLighting^:svg:|',\n ':svg:feDisplacementMap^:svg:|',\n ':svg:feDistantLight^:svg:|',\n ':svg:feDropShadow^:svg:|',\n ':svg:feFlood^:svg:|',\n ':svg:feFuncA^:svg:componentTransferFunction|',\n ':svg:feFuncB^:svg:componentTransferFunction|',\n ':svg:feFuncG^:svg:componentTransferFunction|',\n ':svg:feFuncR^:svg:componentTransferFunction|',\n ':svg:feGaussianBlur^:svg:|',\n ':svg:feImage^:svg:|',\n ':svg:feMerge^:svg:|',\n ':svg:feMergeNode^:svg:|',\n ':svg:feMorphology^:svg:|',\n ':svg:feOffset^:svg:|',\n ':svg:fePointLight^:svg:|',\n ':svg:feSpecularLighting^:svg:|',\n ':svg:feSpotLight^:svg:|',\n ':svg:feTile^:svg:|',\n ':svg:feTurbulence^:svg:|',\n ':svg:filter^:svg:|',\n ':svg:foreignObject^:svg:graphics|',\n ':svg:g^:svg:graphics|',\n ':svg:image^:svg:graphics|',\n ':svg:line^:svg:geometry|',\n ':svg:linearGradient^:svg:gradient|',\n ':svg:mpath^:svg:|',\n ':svg:marker^:svg:|',\n ':svg:mask^:svg:|',\n ':svg:metadata^:svg:|',\n ':svg:path^:svg:geometry|',\n ':svg:pattern^:svg:|',\n ':svg:polygon^:svg:geometry|',\n ':svg:polyline^:svg:geometry|',\n ':svg:radialGradient^:svg:gradient|',\n ':svg:rect^:svg:geometry|',\n ':svg:svg^:svg:graphics|#currentScale,#zoomAndPan',\n ':svg:script^:svg:|type',\n ':svg:set^:svg:animation|',\n ':svg:stop^:svg:|',\n ':svg:style^:svg:|!disabled,media,title,type',\n ':svg:switch^:svg:graphics|',\n ':svg:symbol^:svg:|',\n ':svg:tspan^:svg:textPositioning|',\n ':svg:text^:svg:textPositioning|',\n ':svg:textPath^:svg:textContent|',\n ':svg:title^:svg:|',\n ':svg:use^:svg:graphics|',\n ':svg:view^:svg:|#zoomAndPan',\n 'data^[HTMLElement]|value',\n 'keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name',\n 'menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default',\n 'summary^[HTMLElement]|',\n 'time^[HTMLElement]|dateTime',\n ':svg:cursor^:svg:|',\n];\n\nconst _ATTR_TO_PROP: {[name: string]: string} = {\n 'class': 'className',\n 'for': 'htmlFor',\n 'formaction': 'formAction',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n};\n\n// Invert _ATTR_TO_PROP.\nconst _PROP_TO_ATTR: {[name: string]: string} =\n Object.keys(_ATTR_TO_PROP).reduce((inverted, attr) => {\n inverted[_ATTR_TO_PROP[attr]] = attr;\n return inverted;\n }, {} as {[prop: string]: string});\n\nexport class DomElementSchemaRegistry extends ElementSchemaRegistry {\n private _schema: {[element: string]: {[property: string]: string}} = {};\n // We don't allow binding to events for security reasons. Allowing event bindings would almost\n // certainly introduce bad XSS vulnerabilities. Instead, we store events in a separate schema.\n private _eventSchema: {[element: string]: Set} = {};\n\n constructor() {\n super();\n SCHEMA.forEach(encodedType => {\n const type: {[property: string]: string} = {};\n const events: Set = new Set();\n const [strType, strProperties] = encodedType.split('|');\n const properties = strProperties.split(',');\n const [typeNames, superName] = strType.split('^');\n typeNames.split(',').forEach(tag => {\n this._schema[tag.toLowerCase()] = type;\n this._eventSchema[tag.toLowerCase()] = events;\n });\n const superType = superName && this._schema[superName.toLowerCase()];\n if (superType) {\n Object.keys(superType).forEach((prop: string) => {\n type[prop] = superType[prop];\n });\n for (const superEvent of this._eventSchema[superName.toLowerCase()]) {\n events.add(superEvent);\n }\n }\n properties.forEach((property: string) => {\n if (property.length > 0) {\n switch (property[0]) {\n case '*':\n events.add(property.substring(1));\n break;\n case '!':\n type[property.substring(1)] = BOOLEAN;\n break;\n case '#':\n type[property.substring(1)] = NUMBER;\n break;\n case '%':\n type[property.substring(1)] = OBJECT;\n break;\n default:\n type[property] = STRING;\n }\n }\n });\n });\n }\n\n override hasProperty(tagName: string, propName: string, schemaMetas: SchemaMetadata[]): boolean {\n if (schemaMetas.some((schema) => schema.name === NO_ERRORS_SCHEMA.name)) {\n return true;\n }\n\n if (tagName.indexOf('-') > -1) {\n if (isNgContainer(tagName) || isNgContent(tagName)) {\n return false;\n }\n\n if (schemaMetas.some((schema) => schema.name === CUSTOM_ELEMENTS_SCHEMA.name)) {\n // Can't tell now as we don't know which properties a custom element will get\n // once it is instantiated\n return true;\n }\n }\n\n const elementProperties = this._schema[tagName.toLowerCase()] || this._schema['unknown'];\n return !!elementProperties[propName];\n }\n\n override hasElement(tagName: string, schemaMetas: SchemaMetadata[]): boolean {\n if (schemaMetas.some((schema) => schema.name === NO_ERRORS_SCHEMA.name)) {\n return true;\n }\n\n if (tagName.indexOf('-') > -1) {\n if (isNgContainer(tagName) || isNgContent(tagName)) {\n return true;\n }\n\n if (schemaMetas.some((schema) => schema.name === CUSTOM_ELEMENTS_SCHEMA.name)) {\n // Allow any custom elements\n return true;\n }\n }\n\n return !!this._schema[tagName.toLowerCase()];\n }\n\n /**\n * securityContext returns the security context for the given property on the given DOM tag.\n *\n * Tag and property name are statically known and cannot change at runtime, i.e. it is not\n * possible to bind a value into a changing attribute or tag name.\n *\n * The filtering is based on a list of allowed tags|attributes. All attributes in the schema\n * above are assumed to have the 'NONE' security context, i.e. that they are safe inert\n * string values. Only specific well known attack vectors are assigned their appropriate context.\n */\n override securityContext(tagName: string, propName: string, isAttribute: boolean):\n SecurityContext {\n if (isAttribute) {\n // NB: For security purposes, use the mapped property name, not the attribute name.\n propName = this.getMappedPropName(propName);\n }\n\n // Make sure comparisons are case insensitive, so that case differences between attribute and\n // property names do not have a security impact.\n tagName = tagName.toLowerCase();\n propName = propName.toLowerCase();\n let ctx = SECURITY_SCHEMA()[tagName + '|' + propName];\n if (ctx) {\n return ctx;\n }\n ctx = SECURITY_SCHEMA()['*|' + propName];\n return ctx ? ctx : SecurityContext.NONE;\n }\n\n override getMappedPropName(propName: string): string {\n return _ATTR_TO_PROP[propName] || propName;\n }\n\n override getDefaultComponentElementName(): string {\n return 'ng-component';\n }\n\n override validateProperty(name: string): {error: boolean, msg?: string} {\n if (name.toLowerCase().startsWith('on')) {\n const msg = `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 return {error: true, msg: msg};\n } else {\n return {error: false};\n }\n }\n\n override validateAttribute(name: string): {error: boolean, msg?: string} {\n if (name.toLowerCase().startsWith('on')) {\n const msg = `Binding to event attribute '${name}' is disallowed for security reasons, ` +\n `please use (${name.slice(2)})=...`;\n return {error: true, msg: msg};\n } else {\n return {error: false};\n }\n }\n\n override allKnownElementNames(): string[] {\n return Object.keys(this._schema);\n }\n\n allKnownAttributesOfElement(tagName: string): string[] {\n const elementProperties = this._schema[tagName.toLowerCase()] || this._schema['unknown'];\n // Convert properties to attributes.\n return Object.keys(elementProperties).map(prop => _PROP_TO_ATTR[prop] ?? prop);\n }\n\n allKnownEventsOfElement(tagName: string): string[] {\n return Array.from(this._eventSchema[tagName.toLowerCase()] ?? []);\n }\n\n override normalizeAnimationStyleProperty(propName: string): string {\n return dashCaseToCamelCase(propName);\n }\n\n override normalizeAnimationStyleValue(\n camelCaseProp: string, userProvidedProp: string,\n val: string|number): {error: string, value: string} {\n let unit: string = '';\n const strVal = val.toString().trim();\n let errorMsg: string = null!;\n\n if (_isPixelDimensionStyle(camelCaseProp) && val !== 0 && val !== '0') {\n if (typeof val === 'number') {\n unit = 'px';\n } else {\n const valAndSuffixMatch = val.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errorMsg = `Please provide a CSS unit value for ${userProvidedProp}:${val}`;\n }\n }\n }\n return {error: errorMsg, value: strVal + unit};\n }\n}\n\nfunction _isPixelDimensionStyle(prop: string): boolean {\n switch (prop) {\n case 'width':\n case 'height':\n case 'minWidth':\n case 'minHeight':\n case 'maxWidth':\n case 'maxHeight':\n case 'left':\n case 'top':\n case 'bottom':\n case 'right':\n case 'fontSize':\n case 'outlineWidth':\n case 'outlineOffset':\n case 'paddingTop':\n case 'paddingLeft':\n case 'paddingBottom':\n case 'paddingRight':\n case 'marginTop':\n case 'marginLeft':\n case 'marginBottom':\n case 'marginRight':\n case 'borderRadius':\n case 'borderWidth':\n case 'borderTopWidth':\n case 'borderLeftWidth':\n case 'borderRightWidth':\n case 'borderBottomWidth':\n case 'textIndent':\n return true;\n\n default:\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/**\n * Set of tagName|propertyName corresponding to Trusted Types sinks. Properties applying to all\n * tags use '*'.\n *\n * Extracted from, and should be kept in sync with\n * https://w3c.github.io/webappsec-trusted-types/dist/spec/#integrations\n */\nconst TRUSTED_TYPES_SINKS = new Set([\n // NOTE: All strings in this set *must* be lowercase!\n\n // TrustedHTML\n 'iframe|srcdoc',\n '*|innerhtml',\n '*|outerhtml',\n\n // NB: no TrustedScript here, as the corresponding tags are stripped by the compiler.\n\n // TrustedScriptURL\n 'embed|src',\n 'object|codebase',\n 'object|data',\n]);\n\n/**\n * isTrustedTypesSink returns true if the given property on the given DOM tag is a Trusted Types\n * sink. In that case, use `ElementSchemaRegistry.securityContext` to determine which particular\n * Trusted Type is required for values passed to the sink:\n * - SecurityContext.HTML corresponds to TrustedHTML\n * - SecurityContext.RESOURCE_URL corresponds to TrustedScriptURL\n */\nexport function isTrustedTypesSink(tagName: string, propName: string): boolean {\n // Make sure comparisons are case insensitive, so that case differences between attribute and\n // property names do not have a security impact.\n tagName = tagName.toLowerCase();\n propName = propName.toLowerCase();\n\n return TRUSTED_TYPES_SINKS.has(tagName + '|' + propName) ||\n TRUSTED_TYPES_SINKS.has('*|' + propName);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport {SecurityContext} from '../core';\nimport {AbsoluteSourceSpan, ASTWithSource, BindingPipe, BindingType, BoundElementProperty, EmptyExpr, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, ParserError, RecursiveAstVisitor, TemplateBinding, VariableBinding} from '../expression_parser/ast';\nimport {Parser} from '../expression_parser/parser';\nimport {InterpolationConfig} from '../ml_parser/interpolation_config';\nimport {mergeNsAndName} from '../ml_parser/tags';\nimport {ParseError, ParseErrorLevel, ParseLocation, ParseSourceSpan} from '../parse_util';\nimport {ElementSchemaRegistry} from '../schema/element_schema_registry';\nimport {CssSelector} from '../selector';\nimport {splitAtColon, splitAtPeriod} from '../util';\n\nconst PROPERTY_PARTS_SEPARATOR = '.';\nconst ATTRIBUTE_PREFIX = 'attr';\nconst CLASS_PREFIX = 'class';\nconst STYLE_PREFIX = 'style';\nconst TEMPLATE_ATTR_PREFIX = '*';\nconst ANIMATE_PROP_PREFIX = 'animate-';\n\nexport interface HostProperties {\n [key: string]: string;\n}\n\nexport interface HostListeners {\n [key: string]: string;\n}\n\n/**\n * Parses bindings in templates and in the directive host area.\n */\nexport class BindingParser {\n constructor(\n private _exprParser: Parser, private _interpolationConfig: InterpolationConfig,\n private _schemaRegistry: ElementSchemaRegistry, public errors: ParseError[]) {}\n\n get interpolationConfig(): InterpolationConfig {\n return this._interpolationConfig;\n }\n\n createBoundHostProperties(properties: HostProperties, sourceSpan: ParseSourceSpan):\n ParsedProperty[]|null {\n const boundProps: ParsedProperty[] = [];\n for (const propName of Object.keys(properties)) {\n const expression = properties[propName];\n if (typeof expression === 'string') {\n this.parsePropertyBinding(\n propName, expression, true, sourceSpan, sourceSpan.start.offset, undefined, [],\n // Use the `sourceSpan` for `keySpan`. This isn't really accurate, but neither is the\n // sourceSpan, as it represents the sourceSpan of the host itself rather than the\n // source of the host binding (which doesn't exist in the template). Regardless,\n // neither of these values are used in Ivy but are only here to satisfy the function\n // signature. This should likely be refactored in the future so that `sourceSpan`\n // isn't being used inaccurately.\n boundProps, sourceSpan);\n } else {\n this._reportError(\n `Value of the host property binding \"${\n propName}\" needs to be a string representing an expression but got \"${\n expression}\" (${typeof expression})`,\n sourceSpan);\n }\n }\n return boundProps;\n }\n\n createDirectiveHostPropertyAsts(\n hostProperties: HostProperties, elementSelector: string,\n sourceSpan: ParseSourceSpan): BoundElementProperty[]|null {\n const boundProps = this.createBoundHostProperties(hostProperties, sourceSpan);\n return boundProps &&\n boundProps.map((prop) => this.createBoundElementProperty(elementSelector, prop));\n }\n\n createDirectiveHostEventAsts(hostListeners: HostListeners, sourceSpan: ParseSourceSpan):\n ParsedEvent[]|null {\n const targetEvents: ParsedEvent[] = [];\n for (const propName of Object.keys(hostListeners)) {\n const expression = hostListeners[propName];\n if (typeof expression === 'string') {\n // Use the `sourceSpan` for `keySpan` and `handlerSpan`. This isn't really accurate, but\n // neither is the `sourceSpan`, as it represents the `sourceSpan` of the host itself\n // rather than the source of the host binding (which doesn't exist in the template).\n // Regardless, neither of these values are used in Ivy but are only here to satisfy the\n // function signature. This should likely be refactored in the future so that `sourceSpan`\n // isn't being used inaccurately.\n this.parseEvent(propName, expression, sourceSpan, sourceSpan, [], targetEvents, sourceSpan);\n } else {\n this._reportError(\n `Value of the host listener \"${\n propName}\" needs to be a string representing an expression but got \"${\n expression}\" (${typeof expression})`,\n sourceSpan);\n }\n }\n return targetEvents;\n }\n\n parseInterpolation(value: string, sourceSpan: ParseSourceSpan): ASTWithSource {\n const sourceInfo = sourceSpan.start.toString();\n const absoluteOffset = sourceSpan.fullStart.offset;\n\n try {\n const ast = this._exprParser.parseInterpolation(\n value, sourceInfo, absoluteOffset, this._interpolationConfig)!;\n if (ast) this._reportExpressionParserErrors(ast.errors, sourceSpan);\n return ast;\n } catch (e) {\n this._reportError(`${e}`, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset);\n }\n }\n\n /**\n * Similar to `parseInterpolation`, but treats the provided string as a single expression\n * element that would normally appear within the interpolation prefix and suffix (`{{` and `}}`).\n * This is used for parsing the switch expression in ICUs.\n */\n parseInterpolationExpression(expression: string, sourceSpan: ParseSourceSpan): ASTWithSource {\n const sourceInfo = sourceSpan.start.toString();\n const absoluteOffset = sourceSpan.start.offset;\n\n try {\n const ast =\n this._exprParser.parseInterpolationExpression(expression, sourceInfo, absoluteOffset);\n if (ast) this._reportExpressionParserErrors(ast.errors, sourceSpan);\n return ast;\n } catch (e) {\n this._reportError(`${e}`, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset);\n }\n }\n\n /**\n * Parses the bindings in a microsyntax expression, and converts them to\n * `ParsedProperty` or `ParsedVariable`.\n *\n * @param tplKey template binding name\n * @param tplValue template binding value\n * @param sourceSpan span of template binding relative to entire the template\n * @param absoluteValueOffset start of the tplValue relative to the entire template\n * @param targetMatchableAttrs potential attributes to match in the template\n * @param targetProps target property bindings in the template\n * @param targetVars target variables in the template\n */\n parseInlineTemplateBinding(\n tplKey: string, tplValue: string, sourceSpan: ParseSourceSpan, absoluteValueOffset: number,\n targetMatchableAttrs: string[][], targetProps: ParsedProperty[], targetVars: ParsedVariable[],\n isIvyAst: boolean) {\n const absoluteKeyOffset = sourceSpan.start.offset + TEMPLATE_ATTR_PREFIX.length;\n const bindings = this._parseTemplateBindings(\n tplKey, tplValue, sourceSpan, absoluteKeyOffset, absoluteValueOffset);\n\n for (const binding of bindings) {\n // sourceSpan is for the entire HTML attribute. bindingSpan is for a particular\n // binding within the microsyntax expression so it's more narrow than sourceSpan.\n const bindingSpan = moveParseSourceSpan(sourceSpan, binding.sourceSpan);\n const key = binding.key.source;\n const keySpan = moveParseSourceSpan(sourceSpan, binding.key.span);\n if (binding instanceof VariableBinding) {\n const value = binding.value ? binding.value.source : '$implicit';\n const valueSpan =\n binding.value ? moveParseSourceSpan(sourceSpan, binding.value.span) : undefined;\n targetVars.push(new ParsedVariable(key, value, bindingSpan, keySpan, valueSpan));\n } else if (binding.value) {\n const srcSpan = isIvyAst ? bindingSpan : sourceSpan;\n const valueSpan = moveParseSourceSpan(sourceSpan, binding.value.ast.sourceSpan);\n this._parsePropertyAst(\n key, binding.value, srcSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps);\n } else {\n targetMatchableAttrs.push([key, '' /* value */]);\n // Since this is a literal attribute with no RHS, source span should be\n // just the key span.\n this.parseLiteralAttr(\n key, null /* value */, keySpan, absoluteValueOffset, undefined /* valueSpan */,\n targetMatchableAttrs, targetProps, keySpan);\n }\n }\n }\n\n /**\n * Parses the bindings in a microsyntax expression, e.g.\n * ```\n * \n * ```\n *\n * @param tplKey template binding name\n * @param tplValue template binding value\n * @param sourceSpan span of template binding relative to entire the template\n * @param absoluteKeyOffset start of the `tplKey`\n * @param absoluteValueOffset start of the `tplValue`\n */\n private _parseTemplateBindings(\n tplKey: string, tplValue: string, sourceSpan: ParseSourceSpan, absoluteKeyOffset: number,\n absoluteValueOffset: number): TemplateBinding[] {\n const sourceInfo = sourceSpan.start.toString();\n\n try {\n const bindingsResult = this._exprParser.parseTemplateBindings(\n tplKey, tplValue, sourceInfo, absoluteKeyOffset, absoluteValueOffset);\n this._reportExpressionParserErrors(bindingsResult.errors, sourceSpan);\n bindingsResult.warnings.forEach((warning) => {\n this._reportError(warning, sourceSpan, ParseErrorLevel.WARNING);\n });\n return bindingsResult.templateBindings;\n } catch (e) {\n this._reportError(`${e}`, sourceSpan);\n return [];\n }\n }\n\n parseLiteralAttr(\n name: string, value: string|null, sourceSpan: ParseSourceSpan, absoluteOffset: number,\n valueSpan: ParseSourceSpan|undefined, targetMatchableAttrs: string[][],\n // TODO(atscott): keySpan is only optional here so VE template parser implementation does not\n // have to change This should be required when VE is removed.\n targetProps: ParsedProperty[], keySpan?: ParseSourceSpan) {\n if (isAnimationLabel(name)) {\n name = name.substring(1);\n if (keySpan !== undefined) {\n keySpan = moveParseSourceSpan(\n keySpan, new AbsoluteSourceSpan(keySpan.start.offset + 1, keySpan.end.offset));\n }\n if (value) {\n this._reportError(\n `Assigning animation triggers via @prop=\"exp\" attributes with an expression is invalid.` +\n ` Use property bindings (e.g. [@prop]=\"exp\") or use an attribute without a value (e.g. @prop) instead.`,\n sourceSpan, ParseErrorLevel.ERROR);\n }\n this._parseAnimation(\n name, value, sourceSpan, absoluteOffset, keySpan, valueSpan, targetMatchableAttrs,\n targetProps);\n } else {\n targetProps.push(new ParsedProperty(\n name, this._exprParser.wrapLiteralPrimitive(value, '', absoluteOffset),\n ParsedPropertyType.LITERAL_ATTR, sourceSpan, keySpan, valueSpan));\n }\n }\n\n parsePropertyBinding(\n name: string, expression: string, isHost: boolean, sourceSpan: ParseSourceSpan,\n absoluteOffset: number, valueSpan: ParseSourceSpan|undefined,\n // TODO(atscott): keySpan is only optional here so VE template parser implementation does not\n // have to change This should be required when VE is removed.\n targetMatchableAttrs: string[][], targetProps: ParsedProperty[], keySpan?: ParseSourceSpan) {\n if (name.length === 0) {\n this._reportError(`Property name is missing in binding`, sourceSpan);\n }\n\n let isAnimationProp = false;\n if (name.startsWith(ANIMATE_PROP_PREFIX)) {\n isAnimationProp = true;\n name = name.substring(ANIMATE_PROP_PREFIX.length);\n if (keySpan !== undefined) {\n keySpan = moveParseSourceSpan(\n keySpan,\n new AbsoluteSourceSpan(\n keySpan.start.offset + ANIMATE_PROP_PREFIX.length, keySpan.end.offset));\n }\n } else if (isAnimationLabel(name)) {\n isAnimationProp = true;\n name = name.substring(1);\n if (keySpan !== undefined) {\n keySpan = moveParseSourceSpan(\n keySpan, new AbsoluteSourceSpan(keySpan.start.offset + 1, keySpan.end.offset));\n }\n }\n\n if (isAnimationProp) {\n this._parseAnimation(\n name, expression, sourceSpan, absoluteOffset, keySpan, valueSpan, targetMatchableAttrs,\n targetProps);\n } else {\n this._parsePropertyAst(\n name, this._parseBinding(expression, isHost, valueSpan || sourceSpan, absoluteOffset),\n sourceSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps);\n }\n }\n\n parsePropertyInterpolation(\n name: string, value: string, sourceSpan: ParseSourceSpan,\n valueSpan: ParseSourceSpan|undefined, targetMatchableAttrs: string[][],\n // TODO(atscott): keySpan is only optional here so VE template parser implementation does not\n // have to change This should be required when VE is removed.\n targetProps: ParsedProperty[], keySpan?: ParseSourceSpan): boolean {\n const expr = this.parseInterpolation(value, valueSpan || sourceSpan);\n if (expr) {\n this._parsePropertyAst(\n name, expr, sourceSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps);\n return true;\n }\n return false;\n }\n\n private _parsePropertyAst(\n name: string, ast: ASTWithSource, sourceSpan: ParseSourceSpan,\n keySpan: ParseSourceSpan|undefined, valueSpan: ParseSourceSpan|undefined,\n targetMatchableAttrs: string[][], targetProps: ParsedProperty[]) {\n targetMatchableAttrs.push([name, ast.source!]);\n targetProps.push(\n new ParsedProperty(name, ast, ParsedPropertyType.DEFAULT, sourceSpan, keySpan, valueSpan));\n }\n\n private _parseAnimation(\n name: string, expression: string|null, sourceSpan: ParseSourceSpan, absoluteOffset: number,\n keySpan: ParseSourceSpan|undefined, valueSpan: ParseSourceSpan|undefined,\n targetMatchableAttrs: string[][], targetProps: ParsedProperty[]) {\n if (name.length === 0) {\n this._reportError('Animation trigger is missing', sourceSpan);\n }\n\n // This will occur when a @trigger is not paired with an expression.\n // For animations it is valid to not have an expression since */void\n // states will be applied by angular when the element is attached/detached\n const ast = this._parseBinding(\n expression || 'undefined', false, valueSpan || sourceSpan, absoluteOffset);\n targetMatchableAttrs.push([name, ast.source!]);\n targetProps.push(new ParsedProperty(\n name, ast, ParsedPropertyType.ANIMATION, sourceSpan, keySpan, valueSpan));\n }\n\n private _parseBinding(\n value: string, isHostBinding: boolean, sourceSpan: ParseSourceSpan,\n absoluteOffset: number): ASTWithSource {\n const sourceInfo = (sourceSpan && sourceSpan.start || '(unknown)').toString();\n\n try {\n const ast = isHostBinding ?\n this._exprParser.parseSimpleBinding(\n value, sourceInfo, absoluteOffset, this._interpolationConfig) :\n this._exprParser.parseBinding(\n value, sourceInfo, absoluteOffset, this._interpolationConfig);\n if (ast) this._reportExpressionParserErrors(ast.errors, sourceSpan);\n return ast;\n } catch (e) {\n this._reportError(`${e}`, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset);\n }\n }\n\n createBoundElementProperty(\n elementSelector: string, boundProp: ParsedProperty, skipValidation: boolean = false,\n mapPropertyName: boolean = true): BoundElementProperty {\n if (boundProp.isAnimation) {\n return new BoundElementProperty(\n boundProp.name, BindingType.Animation, SecurityContext.NONE, boundProp.expression, null,\n boundProp.sourceSpan, boundProp.keySpan, boundProp.valueSpan);\n }\n\n let unit: string|null = null;\n let bindingType: BindingType = undefined!;\n let boundPropertyName: string|null = null;\n const parts = boundProp.name.split(PROPERTY_PARTS_SEPARATOR);\n let securityContexts: SecurityContext[] = undefined!;\n\n // Check for special cases (prefix style, attr, class)\n if (parts.length > 1) {\n if (parts[0] == ATTRIBUTE_PREFIX) {\n boundPropertyName = parts.slice(1).join(PROPERTY_PARTS_SEPARATOR);\n if (!skipValidation) {\n this._validatePropertyOrAttributeName(boundPropertyName, boundProp.sourceSpan, true);\n }\n securityContexts = calcPossibleSecurityContexts(\n this._schemaRegistry, elementSelector, boundPropertyName, true);\n\n const nsSeparatorIdx = boundPropertyName.indexOf(':');\n if (nsSeparatorIdx > -1) {\n const ns = boundPropertyName.substring(0, nsSeparatorIdx);\n const name = boundPropertyName.substring(nsSeparatorIdx + 1);\n boundPropertyName = mergeNsAndName(ns, name);\n }\n\n bindingType = BindingType.Attribute;\n } else if (parts[0] == CLASS_PREFIX) {\n boundPropertyName = parts[1];\n bindingType = BindingType.Class;\n securityContexts = [SecurityContext.NONE];\n } else if (parts[0] == STYLE_PREFIX) {\n unit = parts.length > 2 ? parts[2] : null;\n boundPropertyName = parts[1];\n bindingType = BindingType.Style;\n securityContexts = [SecurityContext.STYLE];\n }\n }\n\n // If not a special case, use the full property name\n if (boundPropertyName === null) {\n const mappedPropName = this._schemaRegistry.getMappedPropName(boundProp.name);\n boundPropertyName = mapPropertyName ? mappedPropName : boundProp.name;\n securityContexts = calcPossibleSecurityContexts(\n this._schemaRegistry, elementSelector, mappedPropName, false);\n bindingType = BindingType.Property;\n if (!skipValidation) {\n this._validatePropertyOrAttributeName(mappedPropName, boundProp.sourceSpan, false);\n }\n }\n\n return new BoundElementProperty(\n boundPropertyName, bindingType, securityContexts[0], boundProp.expression, unit,\n boundProp.sourceSpan, boundProp.keySpan, boundProp.valueSpan);\n }\n\n // TODO: keySpan should be required but was made optional to avoid changing VE parser.\n parseEvent(\n name: string, expression: string, sourceSpan: ParseSourceSpan, handlerSpan: ParseSourceSpan,\n targetMatchableAttrs: string[][], targetEvents: ParsedEvent[], keySpan?: ParseSourceSpan) {\n if (name.length === 0) {\n this._reportError(`Event name is missing in binding`, sourceSpan);\n }\n\n if (isAnimationLabel(name)) {\n name = name.substr(1);\n if (keySpan !== undefined) {\n keySpan = moveParseSourceSpan(\n keySpan, new AbsoluteSourceSpan(keySpan.start.offset + 1, keySpan.end.offset));\n }\n this._parseAnimationEvent(name, expression, sourceSpan, handlerSpan, targetEvents, keySpan);\n } else {\n this._parseRegularEvent(\n name, expression, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan);\n }\n }\n\n calcPossibleSecurityContexts(selector: string, propName: string, isAttribute: boolean):\n SecurityContext[] {\n const prop = this._schemaRegistry.getMappedPropName(propName);\n return calcPossibleSecurityContexts(this._schemaRegistry, selector, prop, isAttribute);\n }\n\n private _parseAnimationEvent(\n name: string, expression: string, sourceSpan: ParseSourceSpan, handlerSpan: ParseSourceSpan,\n targetEvents: ParsedEvent[], keySpan?: ParseSourceSpan) {\n const matches = splitAtPeriod(name, [name, '']);\n const eventName = matches[0];\n const phase = matches[1].toLowerCase();\n const ast = this._parseAction(expression, handlerSpan);\n targetEvents.push(new ParsedEvent(\n eventName, phase, ParsedEventType.Animation, ast, sourceSpan, handlerSpan, keySpan));\n\n if (eventName.length === 0) {\n this._reportError(`Animation event name is missing in binding`, sourceSpan);\n }\n if (phase) {\n if (phase !== 'start' && phase !== 'done') {\n this._reportError(\n `The provided animation output phase value \"${phase}\" for \"@${\n eventName}\" is not supported (use start or done)`,\n sourceSpan);\n }\n } else {\n this._reportError(\n `The animation trigger output event (@${\n eventName}) is missing its phase value name (start or done are currently supported)`,\n sourceSpan);\n }\n }\n\n private _parseRegularEvent(\n name: string, expression: string, sourceSpan: ParseSourceSpan, handlerSpan: ParseSourceSpan,\n targetMatchableAttrs: string[][], targetEvents: ParsedEvent[], keySpan?: ParseSourceSpan) {\n // long format: 'target: eventName'\n const [target, eventName] = splitAtColon(name, [null!, name]);\n const ast = this._parseAction(expression, handlerSpan);\n targetMatchableAttrs.push([name!, ast.source!]);\n targetEvents.push(new ParsedEvent(\n eventName, target, ParsedEventType.Regular, ast, sourceSpan, handlerSpan, keySpan));\n // Don't detect directives for event names for now,\n // so don't add the event name to the matchableAttrs\n }\n\n private _parseAction(value: string, sourceSpan: ParseSourceSpan): ASTWithSource {\n const sourceInfo = (sourceSpan && sourceSpan.start || '(unknown').toString();\n const absoluteOffset = (sourceSpan && sourceSpan.start) ? sourceSpan.start.offset : 0;\n\n try {\n const ast = this._exprParser.parseAction(\n value, sourceInfo, absoluteOffset, this._interpolationConfig);\n if (ast) {\n this._reportExpressionParserErrors(ast.errors, sourceSpan);\n }\n if (!ast || ast.ast instanceof EmptyExpr) {\n this._reportError(`Empty expressions are not allowed`, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset);\n }\n return ast;\n } catch (e) {\n this._reportError(`${e}`, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset);\n }\n }\n\n private _reportError(\n message: string, sourceSpan: ParseSourceSpan,\n level: ParseErrorLevel = ParseErrorLevel.ERROR) {\n this.errors.push(new ParseError(sourceSpan, message, level));\n }\n\n private _reportExpressionParserErrors(errors: ParserError[], sourceSpan: ParseSourceSpan) {\n for (const error of errors) {\n this._reportError(error.message, sourceSpan);\n }\n }\n\n /**\n * @param propName the name of the property / attribute\n * @param sourceSpan\n * @param isAttr true when binding to an attribute\n */\n private _validatePropertyOrAttributeName(\n propName: string, sourceSpan: ParseSourceSpan, isAttr: boolean): void {\n const report = isAttr ? this._schemaRegistry.validateAttribute(propName) :\n this._schemaRegistry.validateProperty(propName);\n if (report.error) {\n this._reportError(report.msg!, sourceSpan, ParseErrorLevel.ERROR);\n }\n }\n}\n\nexport class PipeCollector extends RecursiveAstVisitor {\n pipes = new Map();\n override visitPipe(ast: BindingPipe, context: any): any {\n this.pipes.set(ast.name, ast);\n ast.exp.visit(this);\n this.visitAll(ast.args, context);\n return null;\n }\n}\n\nfunction isAnimationLabel(name: string): boolean {\n return name[0] == '@';\n}\n\nexport function calcPossibleSecurityContexts(\n registry: ElementSchemaRegistry, selector: string, propName: string,\n isAttribute: boolean): SecurityContext[] {\n const ctxs: SecurityContext[] = [];\n CssSelector.parse(selector).forEach((selector) => {\n const elementNames = selector.element ? [selector.element] : registry.allKnownElementNames();\n const notElementNames =\n new Set(selector.notSelectors.filter(selector => selector.isElementSelector())\n .map((selector) => selector.element));\n const possibleElementNames =\n elementNames.filter(elementName => !notElementNames.has(elementName));\n\n ctxs.push(...possibleElementNames.map(\n elementName => registry.securityContext(elementName, propName, isAttribute)));\n });\n return ctxs.length === 0 ? [SecurityContext.NONE] : Array.from(new Set(ctxs)).sort();\n}\n\n/**\n * Compute a new ParseSourceSpan based off an original `sourceSpan` by using\n * absolute offsets from the specified `absoluteSpan`.\n *\n * @param sourceSpan original source span\n * @param absoluteSpan absolute source span to move to\n */\nfunction moveParseSourceSpan(\n sourceSpan: ParseSourceSpan, absoluteSpan: AbsoluteSourceSpan): ParseSourceSpan {\n // The difference of two absolute offsets provide the relative offset\n const startDiff = absoluteSpan.start - sourceSpan.start.offset;\n const endDiff = absoluteSpan.end - sourceSpan.end.offset;\n return new ParseSourceSpan(\n sourceSpan.start.moveBy(startDiff), sourceSpan.end.moveBy(endDiff),\n sourceSpan.fullStart.moveBy(startDiff), sourceSpan.details);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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// Some of the code comes from WebComponents.JS\n// https://github.com/webcomponents/webcomponentsjs/blob/master/src/HTMLImports/path.js\n\nexport function isStyleUrlResolvable(url: string): boolean {\n if (url == null || url.length === 0 || url[0] == '/') return false;\n const schemeMatch = url.match(URL_WITH_SCHEMA_REGEXP);\n return schemeMatch === null || schemeMatch[1] == 'package' || schemeMatch[1] == 'asset';\n}\n\nconst URL_WITH_SCHEMA_REGEXP = /^([^:/?#]+):/;\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport * as html from '../ml_parser/ast';\nimport {isNgContent} from '../ml_parser/tags';\n\nconst NG_CONTENT_SELECT_ATTR = 'select';\nconst LINK_ELEMENT = 'link';\nconst LINK_STYLE_REL_ATTR = 'rel';\nconst LINK_STYLE_HREF_ATTR = 'href';\nconst LINK_STYLE_REL_VALUE = 'stylesheet';\nconst STYLE_ELEMENT = 'style';\nconst SCRIPT_ELEMENT = 'script';\nconst NG_NON_BINDABLE_ATTR = 'ngNonBindable';\nconst NG_PROJECT_AS = 'ngProjectAs';\n\nexport function preparseElement(ast: html.Element): PreparsedElement {\n let selectAttr: string = null!;\n let hrefAttr: string = null!;\n let relAttr: string = null!;\n let nonBindable = false;\n let projectAs = '';\n ast.attrs.forEach(attr => {\n const lcAttrName = attr.name.toLowerCase();\n if (lcAttrName == NG_CONTENT_SELECT_ATTR) {\n selectAttr = attr.value;\n } else if (lcAttrName == LINK_STYLE_HREF_ATTR) {\n hrefAttr = attr.value;\n } else if (lcAttrName == LINK_STYLE_REL_ATTR) {\n relAttr = attr.value;\n } else if (attr.name == NG_NON_BINDABLE_ATTR) {\n nonBindable = true;\n } else if (attr.name == NG_PROJECT_AS) {\n if (attr.value.length > 0) {\n projectAs = attr.value;\n }\n }\n });\n selectAttr = normalizeNgContentSelect(selectAttr);\n const nodeName = ast.name.toLowerCase();\n let type = PreparsedElementType.OTHER;\n if (isNgContent(nodeName)) {\n type = PreparsedElementType.NG_CONTENT;\n } else if (nodeName == STYLE_ELEMENT) {\n type = PreparsedElementType.STYLE;\n } else if (nodeName == SCRIPT_ELEMENT) {\n type = PreparsedElementType.SCRIPT;\n } else if (nodeName == LINK_ELEMENT && relAttr == LINK_STYLE_REL_VALUE) {\n type = PreparsedElementType.STYLESHEET;\n }\n return new PreparsedElement(type, selectAttr, hrefAttr, nonBindable, projectAs);\n}\n\nexport enum PreparsedElementType {\n NG_CONTENT,\n STYLE,\n STYLESHEET,\n SCRIPT,\n OTHER\n}\n\nexport class PreparsedElement {\n constructor(\n public type: PreparsedElementType, public selectAttr: string, public hrefAttr: string,\n public nonBindable: boolean, public projectAs: string) {}\n}\n\n\nfunction normalizeNgContentSelect(selectAttr: string): string {\n if (selectAttr === null || selectAttr.length === 0) {\n return '*';\n }\n return selectAttr;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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\nimport {ParsedEvent, ParsedProperty, ParsedVariable} from '../expression_parser/ast';\nimport * as i18n from '../i18n/i18n_ast';\nimport * as html from '../ml_parser/ast';\nimport {replaceNgsp} from '../ml_parser/html_whitespaces';\nimport {isNgTemplate} from '../ml_parser/tags';\nimport {ParseError, ParseErrorLevel, ParseSourceSpan} from '../parse_util';\nimport {isStyleUrlResolvable} from '../style_url_resolver';\nimport {BindingParser} from '../template_parser/binding_parser';\nimport {PreparsedElementType, preparseElement} from '../template_parser/template_preparser';\n\nimport * as t from './r3_ast';\nimport {I18N_ICU_VAR_PREFIX, isI18nRootNode} from './view/i18n/util';\n\nconst BIND_NAME_REGEXP = /^(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*)$/;\n\n// Group 1 = \"bind-\"\nconst KW_BIND_IDX = 1;\n// Group 2 = \"let-\"\nconst KW_LET_IDX = 2;\n// Group 3 = \"ref-/#\"\nconst KW_REF_IDX = 3;\n// Group 4 = \"on-\"\nconst KW_ON_IDX = 4;\n// Group 5 = \"bindon-\"\nconst KW_BINDON_IDX = 5;\n// Group 6 = \"@\"\nconst KW_AT_IDX = 6;\n// Group 7 = the identifier after \"bind-\", \"let-\", \"ref-/#\", \"on-\", \"bindon-\" or \"@\"\nconst IDENT_KW_IDX = 7;\n\nconst BINDING_DELIMS = {\n BANANA_BOX: {start: '[(', end: ')]'},\n PROPERTY: {start: '[', end: ']'},\n EVENT: {start: '(', end: ')'},\n};\n\nconst TEMPLATE_ATTR_PREFIX = '*';\n\n// Result of the html AST to Ivy AST transformation\nexport interface Render3ParseResult {\n nodes: t.Node[];\n errors: ParseError[];\n styles: string[];\n styleUrls: string[];\n ngContentSelectors: string[];\n // Will be defined if `Render3ParseOptions['collectCommentNodes']` is true\n commentNodes?: t.Comment[];\n}\n\ninterface Render3ParseOptions {\n collectCommentNodes: boolean;\n}\n\nexport function htmlAstToRender3Ast(\n htmlNodes: html.Node[], bindingParser: BindingParser,\n options: Render3ParseOptions): Render3ParseResult {\n const transformer = new HtmlAstToIvyAst(bindingParser, options);\n const ivyNodes = html.visitAll(transformer, htmlNodes);\n\n // Errors might originate in either the binding parser or the html to ivy transformer\n const allErrors = bindingParser.errors.concat(transformer.errors);\n\n const result: Render3ParseResult = {\n nodes: ivyNodes,\n errors: allErrors,\n styleUrls: transformer.styleUrls,\n styles: transformer.styles,\n ngContentSelectors: transformer.ngContentSelectors\n };\n if (options.collectCommentNodes) {\n result.commentNodes = transformer.commentNodes;\n }\n return result;\n}\n\nclass HtmlAstToIvyAst implements html.Visitor {\n errors: ParseError[] = [];\n styles: string[] = [];\n styleUrls: string[] = [];\n ngContentSelectors: string[] = [];\n // This array will be populated if `Render3ParseOptions['collectCommentNodes']` is true\n commentNodes: t.Comment[] = [];\n private inI18nBlock: boolean = false;\n\n constructor(private bindingParser: BindingParser, private options: Render3ParseOptions) {}\n\n // HTML visitor\n visitElement(element: html.Element): t.Node|null {\n const isI18nRootElement = isI18nRootNode(element.i18n);\n if (isI18nRootElement) {\n if (this.inI18nBlock) {\n this.reportError(\n 'Cannot mark an element as translatable inside of a translatable section. Please remove the nested i18n marker.',\n element.sourceSpan);\n }\n this.inI18nBlock = true;\n }\n const preparsedElement = preparseElement(element);\n if (preparsedElement.type === PreparsedElementType.SCRIPT) {\n return null;\n } else if (preparsedElement.type === PreparsedElementType.STYLE) {\n const contents = textContents(element);\n if (contents !== null) {\n this.styles.push(contents);\n }\n return null;\n } else if (\n preparsedElement.type === PreparsedElementType.STYLESHEET &&\n isStyleUrlResolvable(preparsedElement.hrefAttr)) {\n this.styleUrls.push(preparsedElement.hrefAttr);\n return null;\n }\n\n // Whether the element is a ``\n const isTemplateElement = isNgTemplate(element.name);\n\n const parsedProperties: ParsedProperty[] = [];\n const boundEvents: t.BoundEvent[] = [];\n const variables: t.Variable[] = [];\n const references: t.Reference[] = [];\n const attributes: t.TextAttribute[] = [];\n const i18nAttrsMeta: {[key: string]: i18n.I18nMeta} = {};\n\n const templateParsedProperties: ParsedProperty[] = [];\n const templateVariables: t.Variable[] = [];\n\n // Whether the element has any *-attribute\n let elementHasInlineTemplate = false;\n\n for (const attribute of element.attrs) {\n let hasBinding = false;\n const normalizedName = normalizeAttributeName(attribute.name);\n\n // `*attr` defines template bindings\n let isTemplateBinding = false;\n\n if (attribute.i18n) {\n i18nAttrsMeta[attribute.name] = attribute.i18n;\n }\n\n if (normalizedName.startsWith(TEMPLATE_ATTR_PREFIX)) {\n // *-attributes\n if (elementHasInlineTemplate) {\n this.reportError(\n `Can't have multiple template bindings on one element. Use only one attribute prefixed with *`,\n attribute.sourceSpan);\n }\n isTemplateBinding = true;\n elementHasInlineTemplate = true;\n const templateValue = attribute.value;\n const templateKey = normalizedName.substring(TEMPLATE_ATTR_PREFIX.length);\n\n const parsedVariables: ParsedVariable[] = [];\n const absoluteValueOffset = attribute.valueSpan ?\n attribute.valueSpan.start.offset :\n // If there is no value span the attribute does not have a value, like `attr` in\n //`
    `. In this case, point to one character beyond the last character of\n // the attribute name.\n attribute.sourceSpan.start.offset + attribute.name.length;\n\n this.bindingParser.parseInlineTemplateBinding(\n templateKey, templateValue, attribute.sourceSpan, absoluteValueOffset, [],\n templateParsedProperties, parsedVariables, true /* isIvyAst */);\n templateVariables.push(...parsedVariables.map(\n v => new t.Variable(v.name, v.value, v.sourceSpan, v.keySpan, v.valueSpan)));\n } else {\n // Check for variables, events, property bindings, interpolation\n hasBinding = this.parseAttribute(\n isTemplateElement, attribute, [], parsedProperties, boundEvents, variables, references);\n }\n\n if (!hasBinding && !isTemplateBinding) {\n // don't include the bindings as attributes as well in the AST\n attributes.push(this.visitAttribute(attribute));\n }\n }\n\n const children: t.Node[] =\n html.visitAll(preparsedElement.nonBindable ? NON_BINDABLE_VISITOR : this, element.children);\n\n let parsedElement: t.Node|undefined;\n if (preparsedElement.type === PreparsedElementType.NG_CONTENT) {\n // ``\n if (element.children &&\n !element.children.every(\n (node: html.Node) => isEmptyTextNode(node) || isCommentNode(node))) {\n this.reportError(` element cannot have content.`, element.sourceSpan);\n }\n const selector = preparsedElement.selectAttr;\n const attrs: t.TextAttribute[] = element.attrs.map(attr => this.visitAttribute(attr));\n parsedElement = new t.Content(selector, attrs, element.sourceSpan, element.i18n);\n\n this.ngContentSelectors.push(selector);\n } else if (isTemplateElement) {\n // ``\n const attrs = this.extractAttributes(element.name, parsedProperties, i18nAttrsMeta);\n\n parsedElement = new t.Template(\n element.name, attributes, attrs.bound, boundEvents, [/* no template attributes */],\n children, references, variables, element.sourceSpan, element.startSourceSpan,\n element.endSourceSpan, element.i18n);\n } else {\n const attrs = this.extractAttributes(element.name, parsedProperties, i18nAttrsMeta);\n parsedElement = new t.Element(\n element.name, attributes, attrs.bound, boundEvents, children, references,\n element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n);\n }\n\n if (elementHasInlineTemplate) {\n // If this node is an inline-template (e.g. has *ngFor) then we need to create a template\n // node that contains this node.\n // Moreover, if the node is an element, then we need to hoist its attributes to the template\n // node for matching against content projection selectors.\n const attrs = this.extractAttributes('ng-template', templateParsedProperties, i18nAttrsMeta);\n const templateAttrs: (t.TextAttribute|t.BoundAttribute)[] = [];\n attrs.literal.forEach(attr => templateAttrs.push(attr));\n attrs.bound.forEach(attr => templateAttrs.push(attr));\n const hoistedAttrs = parsedElement instanceof t.Element ?\n {\n attributes: parsedElement.attributes,\n inputs: parsedElement.inputs,\n outputs: parsedElement.outputs,\n } :\n {attributes: [], inputs: [], outputs: []};\n\n // For s with structural directives on them, avoid passing i18n information to\n // the wrapping template to prevent unnecessary i18n instructions from being generated. The\n // necessary i18n meta information will be extracted from child elements.\n const i18n = isTemplateElement && isI18nRootElement ? undefined : element.i18n;\n\n // TODO(pk): test for this case\n parsedElement = new t.Template(\n (parsedElement as t.Element | t.Content).name, hoistedAttrs.attributes,\n hoistedAttrs.inputs, hoistedAttrs.outputs, templateAttrs, [parsedElement],\n [/* no references */], templateVariables, element.sourceSpan, element.startSourceSpan,\n element.endSourceSpan, i18n);\n }\n if (isI18nRootElement) {\n this.inI18nBlock = false;\n }\n return parsedElement;\n }\n\n visitAttribute(attribute: html.Attribute): t.TextAttribute {\n return new t.TextAttribute(\n attribute.name, attribute.value, attribute.sourceSpan, attribute.keySpan,\n attribute.valueSpan, attribute.i18n);\n }\n\n visitText(text: html.Text): t.Node {\n return this._visitTextWithInterpolation(text.value, text.sourceSpan, text.i18n);\n }\n\n visitExpansion(expansion: html.Expansion): t.Icu|null {\n if (!expansion.i18n) {\n // do not generate Icu in case it was created\n // outside of i18n block in a template\n return null;\n }\n if (!isI18nRootNode(expansion.i18n)) {\n throw new Error(`Invalid type \"${expansion.i18n.constructor}\" for \"i18n\" property of ${\n expansion.sourceSpan.toString()}. Expected a \"Message\"`);\n }\n const message = expansion.i18n;\n const vars: {[name: string]: t.BoundText} = {};\n const placeholders: {[name: string]: t.Text|t.BoundText} = {};\n // extract VARs from ICUs - we process them separately while\n // assembling resulting message via goog.getMsg function, since\n // we need to pass them to top-level goog.getMsg call\n Object.keys(message.placeholders).forEach(key => {\n const value = message.placeholders[key];\n if (key.startsWith(I18N_ICU_VAR_PREFIX)) {\n // Currently when the `plural` or `select` keywords in an ICU contain trailing spaces (e.g.\n // `{count, select , ...}`), these spaces are also included into the key names in ICU vars\n // (e.g. \"VAR_SELECT \"). These trailing spaces are not desirable, since they will later be\n // converted into `_` symbols while normalizing placeholder names, which might lead to\n // mismatches at runtime (i.e. placeholder will not be replaced with the correct value).\n const formattedKey = key.trim();\n\n const ast = this.bindingParser.parseInterpolationExpression(value.text, value.sourceSpan);\n\n vars[formattedKey] = new t.BoundText(ast, value.sourceSpan);\n } else {\n placeholders[key] = this._visitTextWithInterpolation(value.text, value.sourceSpan);\n }\n });\n return new t.Icu(vars, placeholders, expansion.sourceSpan, message);\n }\n\n visitExpansionCase(expansionCase: html.ExpansionCase): null {\n return null;\n }\n\n visitComment(comment: html.Comment): null {\n if (this.options.collectCommentNodes) {\n this.commentNodes.push(new t.Comment(comment.value || '', comment.sourceSpan));\n }\n return null;\n }\n\n // convert view engine `ParsedProperty` to a format suitable for IVY\n private extractAttributes(\n elementName: string, properties: ParsedProperty[],\n i18nPropsMeta: {[key: string]: i18n.I18nMeta}):\n {bound: t.BoundAttribute[], literal: t.TextAttribute[]} {\n const bound: t.BoundAttribute[] = [];\n const literal: t.TextAttribute[] = [];\n\n properties.forEach(prop => {\n const i18n = i18nPropsMeta[prop.name];\n if (prop.isLiteral) {\n literal.push(new t.TextAttribute(\n prop.name, prop.expression.source || '', prop.sourceSpan, prop.keySpan, prop.valueSpan,\n i18n));\n } else {\n // Note that validation is skipped and property mapping is disabled\n // due to the fact that we need to make sure a given prop is not an\n // input of a directive and directive matching happens at runtime.\n const bep = this.bindingParser.createBoundElementProperty(\n elementName, prop, /* skipValidation */ true, /* mapPropertyName */ false);\n bound.push(t.BoundAttribute.fromBoundElementProperty(bep, i18n));\n }\n });\n\n return {bound, literal};\n }\n\n private parseAttribute(\n isTemplateElement: boolean, attribute: html.Attribute, matchableAttributes: string[][],\n parsedProperties: ParsedProperty[], boundEvents: t.BoundEvent[], variables: t.Variable[],\n references: t.Reference[]) {\n const name = normalizeAttributeName(attribute.name);\n const value = attribute.value;\n const srcSpan = attribute.sourceSpan;\n const absoluteOffset =\n attribute.valueSpan ? attribute.valueSpan.start.offset : srcSpan.start.offset;\n\n function createKeySpan(srcSpan: ParseSourceSpan, prefix: string, identifier: string) {\n // We need to adjust the start location for the keySpan to account for the removed 'data-'\n // prefix from `normalizeAttributeName`.\n const normalizationAdjustment = attribute.name.length - name.length;\n const keySpanStart = srcSpan.start.moveBy(prefix.length + normalizationAdjustment);\n const keySpanEnd = keySpanStart.moveBy(identifier.length);\n return new ParseSourceSpan(keySpanStart, keySpanEnd, keySpanStart, identifier);\n }\n\n const bindParts = name.match(BIND_NAME_REGEXP);\n\n if (bindParts) {\n if (bindParts[KW_BIND_IDX] != null) {\n const identifier = bindParts[IDENT_KW_IDX];\n const keySpan = createKeySpan(srcSpan, bindParts[KW_BIND_IDX], identifier);\n this.bindingParser.parsePropertyBinding(\n identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan,\n matchableAttributes, parsedProperties, keySpan);\n\n } else if (bindParts[KW_LET_IDX]) {\n if (isTemplateElement) {\n const identifier = bindParts[IDENT_KW_IDX];\n const keySpan = createKeySpan(srcSpan, bindParts[KW_LET_IDX], identifier);\n this.parseVariable(identifier, value, srcSpan, keySpan, attribute.valueSpan, variables);\n } else {\n this.reportError(`\"let-\" is only supported on ng-template elements.`, srcSpan);\n }\n\n } else if (bindParts[KW_REF_IDX]) {\n const identifier = bindParts[IDENT_KW_IDX];\n const keySpan = createKeySpan(srcSpan, bindParts[KW_REF_IDX], identifier);\n this.parseReference(identifier, value, srcSpan, keySpan, attribute.valueSpan, references);\n } else if (bindParts[KW_ON_IDX]) {\n const events: ParsedEvent[] = [];\n const identifier = bindParts[IDENT_KW_IDX];\n const keySpan = createKeySpan(srcSpan, bindParts[KW_ON_IDX], identifier);\n this.bindingParser.parseEvent(\n identifier, value, srcSpan, attribute.valueSpan || srcSpan, matchableAttributes, events,\n keySpan);\n addEvents(events, boundEvents);\n } else if (bindParts[KW_BINDON_IDX]) {\n const identifier = bindParts[IDENT_KW_IDX];\n const keySpan = createKeySpan(srcSpan, bindParts[KW_BINDON_IDX], identifier);\n this.bindingParser.parsePropertyBinding(\n identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan,\n matchableAttributes, parsedProperties, keySpan);\n this.parseAssignmentEvent(\n identifier, value, srcSpan, attribute.valueSpan, matchableAttributes, boundEvents,\n keySpan);\n } else if (bindParts[KW_AT_IDX]) {\n const keySpan = createKeySpan(srcSpan, '', name);\n this.bindingParser.parseLiteralAttr(\n name, value, srcSpan, absoluteOffset, attribute.valueSpan, matchableAttributes,\n parsedProperties, keySpan);\n }\n return true;\n }\n\n // We didn't see a kw-prefixed property binding, but we have not yet checked\n // for the []/()/[()] syntax.\n let delims: {start: string, end: string}|null = null;\n if (name.startsWith(BINDING_DELIMS.BANANA_BOX.start)) {\n delims = BINDING_DELIMS.BANANA_BOX;\n } else if (name.startsWith(BINDING_DELIMS.PROPERTY.start)) {\n delims = BINDING_DELIMS.PROPERTY;\n } else if (name.startsWith(BINDING_DELIMS.EVENT.start)) {\n delims = BINDING_DELIMS.EVENT;\n }\n if (delims !== null &&\n // NOTE: older versions of the parser would match a start/end delimited\n // binding iff the property name was terminated by the ending delimiter\n // and the identifier in the binding was non-empty.\n // TODO(ayazhafiz): update this to handle malformed bindings.\n name.endsWith(delims.end) && name.length > delims.start.length + delims.end.length) {\n const identifier = name.substring(delims.start.length, name.length - delims.end.length);\n const keySpan = createKeySpan(srcSpan, delims.start, identifier);\n if (delims.start === BINDING_DELIMS.BANANA_BOX.start) {\n this.bindingParser.parsePropertyBinding(\n identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan,\n matchableAttributes, parsedProperties, keySpan);\n this.parseAssignmentEvent(\n identifier, value, srcSpan, attribute.valueSpan, matchableAttributes, boundEvents,\n keySpan);\n } else if (delims.start === BINDING_DELIMS.PROPERTY.start) {\n this.bindingParser.parsePropertyBinding(\n identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan,\n matchableAttributes, parsedProperties, keySpan);\n } else {\n const events: ParsedEvent[] = [];\n this.bindingParser.parseEvent(\n identifier, value, srcSpan, attribute.valueSpan || srcSpan, matchableAttributes, events,\n keySpan);\n addEvents(events, boundEvents);\n }\n\n return true;\n }\n\n // No explicit binding found.\n const keySpan = createKeySpan(srcSpan, '' /* prefix */, name);\n const hasBinding = this.bindingParser.parsePropertyInterpolation(\n name, value, srcSpan, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan);\n return hasBinding;\n }\n\n private _visitTextWithInterpolation(\n value: string, sourceSpan: ParseSourceSpan, i18n?: i18n.I18nMeta): t.Text|t.BoundText {\n const valueNoNgsp = replaceNgsp(value);\n const expr = this.bindingParser.parseInterpolation(valueNoNgsp, sourceSpan);\n return expr ? new t.BoundText(expr, sourceSpan, i18n) : new t.Text(valueNoNgsp, sourceSpan);\n }\n\n private parseVariable(\n identifier: string, value: string, sourceSpan: ParseSourceSpan, keySpan: ParseSourceSpan,\n valueSpan: ParseSourceSpan|undefined, variables: t.Variable[]) {\n if (identifier.indexOf('-') > -1) {\n this.reportError(`\"-\" is not allowed in variable names`, sourceSpan);\n } else if (identifier.length === 0) {\n this.reportError(`Variable does not have a name`, sourceSpan);\n }\n\n variables.push(new t.Variable(identifier, value, sourceSpan, keySpan, valueSpan));\n }\n\n private parseReference(\n identifier: string, value: string, sourceSpan: ParseSourceSpan, keySpan: ParseSourceSpan,\n valueSpan: ParseSourceSpan|undefined, references: t.Reference[]) {\n if (identifier.indexOf('-') > -1) {\n this.reportError(`\"-\" is not allowed in reference names`, sourceSpan);\n } else if (identifier.length === 0) {\n this.reportError(`Reference does not have a name`, sourceSpan);\n } else if (references.some(reference => reference.name === identifier)) {\n this.reportError(`Reference \"#${identifier}\" is defined more than once`, sourceSpan);\n }\n\n references.push(new t.Reference(identifier, value, sourceSpan, keySpan, valueSpan));\n }\n\n private parseAssignmentEvent(\n name: string, expression: string, sourceSpan: ParseSourceSpan,\n valueSpan: ParseSourceSpan|undefined, targetMatchableAttrs: string[][],\n boundEvents: t.BoundEvent[], keySpan: ParseSourceSpan) {\n const events: ParsedEvent[] = [];\n this.bindingParser.parseEvent(\n `${name}Change`, `${expression}=$event`, sourceSpan, valueSpan || sourceSpan,\n targetMatchableAttrs, events, keySpan);\n addEvents(events, boundEvents);\n }\n\n private reportError(\n message: string, sourceSpan: ParseSourceSpan,\n level: ParseErrorLevel = ParseErrorLevel.ERROR) {\n this.errors.push(new ParseError(sourceSpan, message, level));\n }\n}\n\nclass NonBindableVisitor implements html.Visitor {\n visitElement(ast: html.Element): t.Element|null {\n const preparsedElement = preparseElement(ast);\n if (preparsedElement.type === PreparsedElementType.SCRIPT ||\n preparsedElement.type === PreparsedElementType.STYLE ||\n preparsedElement.type === PreparsedElementType.STYLESHEET) {\n // Skipping